Úvod
Kubernetes sa stal štandardom pre nasadzovanie veľkých aplikácií. Pomáha vývojárom získať významné výhody a ponúka funkcie, ktoré nie sú dostupné v tradičnom serverovom hostingu. Kubernetes umožňuje horizontálne škálovanie bez starostí s infraštruktúrou. Okrem toho znižuje náklady na zaobstaranie a údržbu infraštruktúry s rastom aplikácie.
Správa aplikácií v Kubernetes však môže byť tiež zložitá a vyžaduje si pokročilé zručnosti. Nasadzovanie aplikácií pomocou Kubernetes a kontinuálnej integrácie a kontinuálneho nasadzovania (CI/CD) pomáha prekonať tento zložitý proces poskytnutím abstrakcie. GitOps je jedným z nástrojov, ktoré môžu pomôcť dosiahnuť abstrakciu.
V tomto návode ukážeme, ako používať Argo CD na kontinuálnu integráciu a nasadzovanie aplikácií na Kubernetes. Vždy, keď sa do repozitára odošle akákoľvek zmena, nasadí sa do cieľového klastra. Argo CD poskytuje aj správu verzií, konfigurácie a aplikačné prostredia prostredníctvom integrácie s celým životným cyklom vývoja softvéru. Ak používate správcov balíkov pre Kubernetes, ako je napríklad Helm, alebo ak máte svoj repozitár hostovaný na BitBucket alebo GitLab, Argo CD sa dokáže bezproblémovo integrovať aj so všetkými týmito platformami.
Požiadavky
Na dokončenie tohto návodu musíte mať:
-
SSH kľúče na vašom počítači. Ak nemáte dvojicu SSH kľúčov v systéme Linux/MacOS/BSD, môžete si ich vytvoriť podľa nášho návodu Prehľad SSH – SSH servery, klienti a kľúče.
-
Budete tiež potrebovať spustený Kubernetes klaster. Okrem toho by ste mali mať spustený kubectl na vašom počítači. Ak nemáte Kubernetes klaster, môžete postupovať podľa Ako vytvoriť Kubernetes klaster pomocou Kubeadm na Ubuntu 18.04.
-
Mali by ste mať základné znalosti o konceptoch Kubernetes. Ak sa chcete s Kubernetes oboznámiť bližšie, môžete postupovať podľa Zoznámenie sa so základmi nástroja Kubernetes.
Krok 1 – Inštalácia Argo CD
Pred inštaláciou Argo CD musíme mať spustené prostredie Kubernetes s kubectl. Môžete to otestovať spustením príkazu nižšie:
|
1 |
kubectl get nodes |

Mali by ste vidieť aspoň jeden uzol Kubernetes spustený v stave Ready . Ak nie je k dispozícii žiadny uzol, mali by ste znova skontrolovať inštaláciu Kubernetes. Ďalej vytvoríme samostatný menný priestor pre našu inštaláciu Kubernetes. Nazvime ho argocd. V tomto mennom priestore ponecháme služby súvisiace s Argo CD:
|
1 |
kubectl create namespace argocd |
Potom nainštalujte skripty Argo CD do vyššie vytvoreného nového menného priestoru spustením príkazu nižšie:
|
1 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |

Ak chcete skontrolovať stav podov Kubernetes, spustite príkaz nižšie:
|
1 |
watch kubectl get pods -n argocd |
Získate výsledok podobný tomuto:

Týmto ste úspešne dokončili inštaláciu Argo CD. Ak chcete ukončiť rozhranie watch , môžete stlačiť Ctrl + C. Na prístup k službám v tomto klastri Kubernetes budeme musieť presmerovať porty. Ako na to, vám ukážeme v nasledujúcom kroku.
Krok 2 – Presmerovanie portov pre prístup k Argo CD
Kubernetes môže nasadiť vašu aplikáciu na akýkoľvek port podľa vlastného výberu. Preto je potrebné presmerovať porty aplikácie Kubernetes, aby ste k nim mali prístup z lokálneho počítača. Argo CD sprístupňuje službu s názvom argocd-server ktorá používa port 443. Port 443 je predvolený port pre služby HTTPS a HTTP. Porty Kubernetes môžete presmerovať na port podľa vlastného výberu. V našom príklade nižšie sme port presmerovali na 8080. Ak chcete presmerovať porty, spustite v termináli príkaz nižšie:
|
1 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
Po presmerovaní portu bude tento port zablokovaný, takže ostatné služby k nemu nebudú mať prístup. Pre neprerušený prístup sa vždy odporúča spustiť vyššie uvedený príkaz v novom termináli. Po dokončení môžete stlačiť Ctrl+C na ukončenie procesu presmerovania portu.
Po presmerovaní portu môžete prejsť do Argo CD otvorením localhost:8080. Budete požiadaní o prihlasovacie údaje, ktoré môžete získať z príkazového riadku v nasledujúcom kroku.
Krok 3 – Správa Argo CD z príkazového riadku
Na správu inštalácie Argo CD musíme nainštalovať príkazový riadok Argo CD. Odporúčaný spôsob inštalácie Argo CD je použiť správcu balíkov, ako je napríklad Homebrew. Homebrew je populárny nástroj na správu balíkov pre inštaláciu na macOS a Linuxe. Homebrew môžete nainštalovať pomocou príkazu nižšie:
|
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
Mali by ste mať brew nainštalovaný na vašom počítači. Môže sa zobraziť výzva na zadanie hesla pre prihlásenie. Môžete ho spustiť spustením príkazu nižšie:
|
1 |
brew install argocd |
Po vyššie uvedenej inštalácii získate príkaz argocd . Budeme musieť získať heslo správcu (admin) pomocou príkazu kubectl . Bolo automaticky vygenerované počas inštalácie. Nižšie je príkaz na jeho získanie:
|
1 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo |
Teraz, keď máte nainštalované Argo CD, môžete sa prihlásiť pomocou príkazu argocd login nižšie:
|
1 |
argocd login localhost:8080 |
Pri použití príkazového riadku sa budete musieť prihlásiť na nasadenie aplikácie:

Môže sa zobraziť bezpečnostné varovanie. Ak áno, stlačte y pre pokračovanie. Mnohí používatelia si po prihlásení môžu priať zmeniť heslo. Ak áno, spustite príkaz argocd account update-password na zmenu hesla. Teraz máme plne funkčnú konfiguráciu Argo CD.
Nakoniec nasadíme aplikáciu do Kubernetes klastra pomocou nainštalovaného Argo CD.
Krok 4 – Využitie viacerých klastrov
Predtým, ako budete pokračovať v nastavení vašej aplikácie, je potrebné poznať cieľový stroj, na ktorý ju chcete nasadiť. V mnohých scenároch môžu Argo CD a nasadená aplikácia bežať na rovnakom klastri. Toto je predvolené správanie Argo CD, ale nie je to obmedzenie. Ak chcete aplikáciu nasadiť na iné cieľové stroje, najprv spustite kubectl config na vašom počítači:
|
1 |
kubectl config get-contexts -o name |
Predpokladajme, že získate dva klastre: test-deploy-cluster a test-target-cluster. Ak sa teraz test-deploy-cluster nachádza tam, kde je vaše Argo CD, a chcete nasadzovať na test-target-cluster, potom spustite príkaz nižšie:
|
1 |
argocd cluster add target-k8s |
Vyššie uvedený príkaz pridá podrobnosti o ďalšom klastri do Argo CD. Umožní tiež nasadzovať služby na cieľový klaster Argo CD.
Krok 5 – Nasadenie ukážkovej aplikácie
Konečne je čas nasadiť aplikácie do Kubernetes klastra. Použijeme ukážkové aplikácie, ktoré poskytuje Argo CD. Využijeme tiež helm-guestbook ktorá je vytvorená pomocou Helm chartov.
Na inštaláciu aplikácie použijeme príkaz argo app create . Špecifikujeme Git repozitár, helm-guestbook a odovzdáme vašu predvolenú destináciu a menný priestor (namespace):
|
1 |
argocd app create helm-guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path helm-guestbook --dest-server https://kubernetes.default.svc --dest-namespace default |
Stav novovytvorenej aplikácie môžete skontrolovať spustením argocd app get:
|
1 |
argocd app get helm-guestbook |
Nebuďte prekvapení, ak uvidíte OutOfSync stav. Doteraz sme stiahli Helm chart a vytvorili preň vstupný bod pre Argo CD. Na strane Kubernetes mu však nie je pridelený žiadny prostriedok. Na synchronizáciu tejto aplikácie spustite nasledujúci príkaz:
|
1 |
argocd app sync helm-guestbook |

Pri práci s GitOps je vždy potrebné synchronizovať aplikáciu s upstreamom. Preto kedykoľvek dôjde k zmene v repozitári, Argo CD aplikáciu nasadí.
Aplikáciu sme nasadili pomocou príkazového riadku Argo CD. Rovnaký výsledok môžete dosiahnuť pomocou webového rozhrania Argo CD. Webové rozhranie je veľmi užitočné, ak chcete skontrolovať stav a beh aplikácie. Ak chcete otvoriť webové rozhranie, otvorte localhost:8080:

Na overenie inštalácie otvoríme aplikáciu v prehliadači. Naša helm-guestbook beží na porte 80. Ak máte akúkoľvek inú aplikáciu, ktorá používa port 80, môžete port presmerovať, aby neboli prerušené ostatné aplikácie:
|
1 |
kubectl port-forward svc/helm-guestbook 9090:80 |
Nakoniec otvorte URL adresu localhost:9090 vo vašom webovom prehliadači, aby ste videli spustenú aplikáciu:

Teraz, ak vývojár odošle akýkoľvek kód do vzdialeného repozitára GitHub, ArgoCD ho zachytí a premietne. Vaše nasadenia v ArgoCD sa podľa toho aktualizujú, čo zabezpečí nepretržitú dostupnosť.
Záver
V tomto návode sme vám ukázali, ako nainštalovať a nasadiť aplikácie na Kubernetes pomocou Argo CD. Je dôležité uistiť sa, že vaše nasadenia na Kubernetes sú udržiavateľné. GitOps by vám v tomto smere mohol výrazne pomôcť.
Kubernetes je teraz štandardom pre nasadenia v cloude. Cloudsigma má niekoľko skvelých návodov na Kubernetes ktoré si môžete pozrieť ako ďalšie:
- Kubernetes DNS služba: Príručka pre začiatočníkov
- Nastavenie WordPressu s MySQL na Kubernetes pomocou Helm
- Inštalácia Jenkinsu na Kubernetes
- Skúmanie CloudSigma PaaS: Ako pristupovať k aplikácii Kubernetes cez verejnú IP adresu
Príjemnú prácu!
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.