Úvod
Kubernetes se stal standardem pro nasazování velkých aplikací. Pomáhá vývojářům získat významné výhody a nabízí funkce, které nejsou dostupné v tradičním serverovém hostingu. Kubernetes umožňuje horizontální škálování bez starostí s infrastrukturou. Navíc snižuje náklady na pořízení a údržbu infrastruktury s tím, jak aplikace roste.
Správa aplikací na Kubernetes však může být také složitá a vyžaduje pokročilé dovednosti. Nasazování aplikací pomocí Kubernetes a kontinuální integrace a kontinuálního nasazování procesu (CI/CD) pomáhá překonat tento složitý proces poskytnutím abstrakce. GitOps je jedním z nástrojů, které mohou pomoci dosáhnout abstrakce.
V tomto návodu si ukážeme, jak používat Argo CD ke kontinuální integraci a nasazování aplikací na Kubernetes. Kdykoli je jakákoli změna odeslána do repozitáře, je nasazena na cílový cluster. Argo CD také poskytuje správu verzí, konfigurace a aplikační prostředí díky integraci s celým životním cyklem vývoje softwaru. Pokud používáte správce balíčků pro Kubernetes, jako je například Helm, nebo pokud máte svůj repozitář hostovaný na BitBucket nebo GitLab, Argo CD se dokáže bezproblémově integrovat i se všemi těmito platformami.
Požadavky
K dokončení tohoto návodu musíte mít:
-
SSH klíče na svém počítači. Pokud nemáte dvojici SSH klíčů spuštěnou na Linuxu/MacOS/BSD, můžete si ji vytvořit podle našeho návodu Přehled SSH – SSH servery, klienti a klíče.
-
Budete také potřebovat spuštěný Kubernetes cluster. Kromě toho byste měli mít na svém počítači spuštěný kubectl běžící na vašem stroji. Pokud nemáte Kubernetes cluster, můžete postupovat podle Jak vytvořit Kubernetes cluster pomocí Kubeadm na Ubuntu 18.04.
-
Měli byste mít základní znalosti konceptů Kubernetes. Pokud se chcete s Kubernetes seznámit blíže, můžete postupovat podle Seznámení se základy nástroje Kubernetes.
Krok 1 – Instalace Argo CD
Před instalací Argo CD musíme mít spuštěné prostředí Kubernetes s kubectl. To můžete otestovat spuštěním níže uvedeného příkazu:
|
1 |
kubectl get nodes |

Měli byste vidět alespoň jeden uzel Kubernetes běžící ve stavu Ready. Pokud není k dispozici žádný uzel, měli byste znovu zkontrolovat instalaci Kubernetes. Dále vytvoříme samostatný jmenný prostor pro naši instalaci Kubernetes. Pojmenujme ho argocd. V tomto jmenném prostoru ponecháme služby související s Argo CD:
|
1 |
kubectl create namespace argocd |
Poté nainstalujte skripty Argo CD do výše nově vytvořeného jmenného prostoru spuštěním níže uvedeného příkazu:
|
1 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |

Chcete-li zkontrolovat stav podů Kubernetes, spusťte níže uvedený příkaz:
|
1 |
watch kubectl get pods -n argocd |
Získáte výsledek podobný tomuto:

Zde jste úspěšně dokončili instalaci Argo CD. Chcete-li ukončit rozhraní watch, můžete stisknout Ctrl + C. Pro přístup ke službám v tomto Kubernetes clusteru budeme muset přesměrovat porty. Jak na to, si ukážeme v dalším kroku.
Krok 2 – Přesměrování portů pro přístup k Argo CD
Kubernetes může vaši aplikaci nasadit na libovolný port podle svého výběru. Proto je nutné přesměrovat porty aplikace Kubernetes, abyste k nim měli přístup z lokálního počítače. Argo CD vystavuje službu s názvem argocd-server, která používá port 443. Port 443 je výchozí port pro služby HTTPS a HTTP. Porty Kubernetes můžete přesměrovat na port podle svého výběru. V našem níže uvedeném příkladu jsme port přesměrovali na 8080. Chcete-li přesměrovat porty, spusťte v terminálu níže uvedený příkaz:
|
1 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
Jakmile port přesměrujete, bude zablokován, takže k němu ostatní služby nebudou mít přístup. Pro nepřerušený přístup se vždy doporučuje spustit výše uvedený příkaz v novém terminálu. Jakmile skončíte, můžete stisknout Ctrl+C pro ukončení procesu přesměrování portů.
Po přesměrování portu můžete přejít do Argo CD otevřením localhost:8080. Budete požádáni o přihlašovací údaje, které můžete získat z příkazové řádky v dalším kroku.
Step 3 – Správa Argo CD z příkazové řádky
Pro správu instalace Argo CD musíme nainstalovat příkazovou řádku Argo CD. Doporučený způsob instalace Argo CD je použít správce balíčků, jako je Homebrew. Homebrew je populární správce balíčků pro instalaci na macOS a Linux. Homebrew můžete nainstalovat pomocí níže uvedeného příkazu:
|
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
Měli byste mít brew nainstalovaný na vašem počítači. Může se zobrazit výzva k zadání hesla pro přihlášení. Můžete jej spustit spuštěním níže uvedeného příkazu:
|
1 |
brew install argocd |
Po výše uvedené instalaci získáte příkaz argocd . Budeme muset získat heslo administrátora pomocí příkazu kubectl . Bylo automaticky vygenerováno během instalace. Níže je příkaz k jeho získání:
|
1 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo |
Nyní, když máte Argo CD nainstalované, se můžete přihlásit pomocí níže uvedeného příkazu argocd login :
|
1 |
argocd login localhost:8080 |
Při použití příkazové řádky se budete muset pro nasazení aplikace přihlásit:

Může se zobrazit bezpečnostní varování. Pokud ano, stiskněte y pro pokračování. Mnoho uživatelů si po přihlášení může přát změnit heslo. Pokud ano, spusťte příkaz argocd account update-password pro změnu hesla. Nyní máme plně funkční konfiguraci Argo CD.
Nakonec nasadíme aplikaci na Kubernetes cluster pomocí nainstalovaného Argo CD.
Step 4 – Využití více clusterů
Než budete pokračovat v nastavení aplikace, je nutné znát cílový stroj, kam ji chcete nasadit. V mnoha scénářích mohou Argo CD a nasazená aplikace běžet na stejném clusteru. Toto je výchozí chování Argo CD, ale není to omezení. Pokud chcete aplikaci nasadit na jiné cílové stroje, nejprve spusťte kubectl config na vašem stroji:
|
1 |
kubectl config get-contexts -o name |
Předpokládejme, že získáte dva clustery: test-deploy-cluster a test-target-cluster. Nyní, pokud je test-deploy-cluster tím místem, kde se nachází vaše Argo CD, a chcete provést nasazení na test-target-cluster, pak spusťte níže uvedený příkaz:
|
1 |
argocd cluster add target-k8s |
Výše uvedený příkaz přidá podrobnosti o dalším clusteru do Argo CD. Umožní také nasazení služeb na cílový cluster Argo CD.
Step 5 – Nasazení ukázkové aplikace
Konečně je čas nasadit aplikace na Kubernetes cluster. Použijeme ukázkové aplikace, které poskytuje Argo CD. Využijeme také helm-guestbook která je vytvořena pomocí Helm chartů.
K instalaci aplikace použijeme příkaz argo app create . Specifikujeme Git repository, helm-guestbook a předáme vaši výchozí destinaci a jmenný prostor (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 nově vytvořené aplikace můžete zkontrolovat spuštěním argocd app get:
|
1 |
argocd app get helm-guestbook |
Nebuďte překvapeni, pokud uvidíte OutOfSync stav. Dosud jsme stáhli Helm chart a vytvořili pro něj vstupní bod pro Argo CD. Na straně Kubernetes pro něj však není vyhrazen žádný prostředek. Chcete-li synchronizovat tuto aplikaci, spusťte níže uvedený příkaz:
|
1 |
argocd app sync helm-guestbook |

Při práci s GitOps je vždy nutné synchronizovat aplikaci s upstreamem. Proto kdykoli dojde ke změně v repozitáři, Argo CD aplikaci nasadí.
Aplikaci jsme nasadili pomocí příkazového řádku Argo CD. Stejného výsledku můžete dosáhnout pomocí webového rozhraní Argo CD. Webové rozhraní je velmi užitečné, pokud chcete zkontrolovat stav a běh aplikace. Chcete-li webové rozhraní otevřít, otevřete localhost:8080:

Pro ověření instalace otevřeme aplikaci v prohlížeči. Naše helm-guestbook běží na portu 80. Pokud máte jinou aplikaci, která používá port 80, můžete port přesměrovat, aby nedošlo k přerušení ostatních aplikací:
|
1 |
kubectl port-forward svc/helm-guestbook 9090:80 |
Nakonec otevřete URL localhost:9090 ve svém webovém prohlížeči, abyste viděli běžící aplikaci:

Pokud nyní vývojář odešle jakýkoli kód do vzdáleného repozitáře na GitHubu, ArgoCD jej zachytí a promítne. Vaše nasazení v ArgoCD se podle toho aktualizují, což zajistí nepřetržitou dostupnost.
Závěr
V tomto návodu jsme vám ukázali, jak instalovat a nasazovat aplikace na Kubernetes pomocí Argo CD. Je důležité zajistit, aby vaše nasazení na Kubernetes byla udržovatelná. V tomto ohledu by vám mohl výrazně pomoci GitOps.
Kubernetes je nyní standardem pro nasazení v cloudu. CloudSigma má skvělé návody na Kubernetes, na které se můžete podívat příště:
- Kubernetes DNS služba: Průvodce pro začátečníky
- Nastavení WordPressu s MySQL na Kubernetes pomocí Helm
- Instalace Jenkins na Kubernetes
- Průzkum CloudSigma PaaS: Jak přistupovat k aplikaci v Kubernetes přes veřejnou IP adresu
Příjemnou práci s počítačem!
Komentáře
Zatím žádné komentáře. Buďte první.