# MongoDB Sharded Deployment Tento repozitár obsahuje konfiguráciu a inštalačné súbory pre nasadenie sharded (distribuovaného) MongoDB klastra v prostredí Kubernetes. Nasadenie využíva priložený Helm chart (založený na Bitnami) a vlastné definície pre StorageClass, Persistent Volume Claims (PVC) a prístupové údaje (Secrety). ## Štruktúra repozitára - `sc-thin-disk-ds-tp.yaml`: Definícia Kubernetes StorageClass (`thin-disk`). - `pvcshards-tp.yaml`: Predvytvorené PersistentVolumeClaim (PVC) pre Config servery a Shardovacie uzly (data uzly). - `mongodb-tp-sharded-secret.yaml`: Secret obsahujúci root heslo a kľúč pre replika set. - `mongodb-pmm-credentials-secret.yaml`: Secret s prístupovými údajmi pre PMM (Percona Monitoring and Management). - `mongodb-sharded/`: Priečinok obsahujúci Helm chart pre nasadenie MongoDB. - `mongodb-sharded/values.tp_v2_init.yaml`: Konfiguračný súbor pre **prvotnú inštaláciu** (s vypnutým PMM). - `mongodb-sharded/values.tp_v2.yaml`: Konfiguračný súbor pre **finálny stav** (so zapnutým PMM). ## Postup nasadenia (s PMM integráciou) Nasadenie prebieha v 3 hlavných krokoch: 1. Prvotná inštalácia MongoDB klastra. 2. Manuálna konfigurácia používateľa pre PMM v databáze. 3. Upgrade Helm inštalácie pre aktiváciu PMM klienta. ### Časť 1: Prvotná inštalácia MongoDB #### 1. Vytvorenie namespace Najprv je potrebné vytvoriť dedikovaný namespace, do ktorého budeme všetky prostriedky nasadzovať: ```bash kubectl create ns mongodb ``` ### 2. Vytvorenie StorageClass (voliteľné) Ak vo vašom klastri ešte neexistuje požadovaný StorageClass, aplikujte ho. **Tento krok spustite iba ak `thin-disk` StorageClass ešte neexistuje.** ```bash kubectl apply -f sc-thin-disk-ds-tp.yaml ``` ### 3. Vytvorenie Persistent Volume Claims (PVC) Aplikujte definície pre PVC. Po spustení príkazu overte, či sa PVC (a k nim prislúchajúce PV) úspešne vytvorili a naviazali. ```bash kubectl apply -f pvcshards-tp.yaml -n mongodb # Overenie stavu PVC (hľadajte status 'Bound'): kubectl get pvc -n mongodb ``` ### 4. Vytvorenie Secretov Aplikujte Kubernetes secrety obsahujúce heslá a autentifikačné kľúče pre MongoDB a PMM: ```bash kubectl apply -f mongodb-tp-sharded-secret.yaml -n mongodb kubectl apply -f mongodb-pmm-credentials-secret.yaml -n mongodb ``` ### 5. Nasadenie Helm chartu Presuňte sa do priečinka s Helm chartom a spustite inštaláciu. Pri inštalácii sa použijú vami definované hodnoty zo súboru `values.tp_v2.yaml`: ```bash cd mongodb-sharded helm install mongodb -f ./values.tp_v2.yaml . -n mongodb ``` ### 6. Kontrola stavu nasadenia Po spustení inštalácie môžete sledovať proces vytvárania podov pomocou: ```bash kubectl get pods -n mongodb -w ```