Zpět na blog

Nasazování aplikací na Kubernetes pomocí Argo CD a GitOps

Nasazování aplikací na Kubernetes pomocí Argo CD a GitOps

Ú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:

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:

Deploying Applications on Kubernetes Using Argo CD and GitOps 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:

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:

Deploying Applications on Kubernetes Using Argo CD and GitOps Install ArgoCD

Chcete-li zkontrolovat stav podů Kubernetes, spusťte níže uvedený příkaz:

Získáte výsledek podobný tomuto:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Pods

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:

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:

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:

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í:

Nyní, když máte Argo CD nainstalované, se můžete přihlásit pomocí níže uvedeného příkazu argocd login :

Při použití příkazové řádky se budete muset pro nasazení aplikace přihlásit:

Applications

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:

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:

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):

Stav nově vytvořené aplikace můžete zkontrolovat spuštěním argocd app get:

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:

Deploying Applications on Kubernetes Using Argo CD and GitOps App Sync

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:

Deploying Applications on Kubernetes Using Argo CD and GitOps Application UI

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í:

Nakonec otevřete URL localhost:9090 ve svém webovém prohlížeči, abyste viděli běžící aplikaci:

 Guestbook UI

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ě:

Příjemnou práci s počítačem!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.