Powrót do bloga

Wdrażanie aplikacji na Kubernetes przy użyciu Argo CD i GitOps

Wdrażanie aplikacji na Kubernetes przy użyciu Argo CD i GitOps

Wprowadzenie

Kubernetes stał się standardem wdrażania dużych aplikacji. Pomaga programistom uzyskać znaczące korzyści i oferuje funkcje, które nie są dostępne w tradycyjnym hostingu serwerów. Kubernetes umożliwia skalowanie poziome bez kłopotów związanych z infrastrukturą. Ponadto zmniejsza koszty pozyskania i utrzymania infrastruktury w miarę rozwoju aplikacji.

Jednak zarządzanie aplikacjami w Kubernetes może być również skomplikowane i wymaga zaawansowanych umiejętności. Wdrażanie aplikacji przy użyciu Kubernetes oraz Ciągłej Integracji i Ciągłego Wdrażania (CI/CD) pomaga w pokonaniu tego skomplikowanego procesu poprzez zapewnienie abstrakcji. GitOps jest jednym z narzędzi, które mogą pomóc w osiągnięciu abstrakcji.

W tym samouczku zademonstrujemy, jak używać Argo CD do ciągłej integracji i wdrażania aplikacji na Kubernetes. Za każdym razem, gdy jakakolwiek zmiana zostanie przesłana do repozytorium, jest ona wdrażana na klastrze docelowym. Argo CD zapewnia również kontrolę wersji, konfiguracje i środowiska aplikacji poprzez integrację z całym cyklem życia oprogramowania. Jeśli posiadasz menedżery pakietów dla Kubernetes, takie jak Helm, lub jeśli Twoje repozytorium jest hostowane na BitBucket lub GitLab, Argo CD może bezproblemowo zintegrować się również ze wszystkimi tymi platformami.

Wymagania wstępne

Aby ukończyć ten samouczek, musisz posiadać:

Krok 1 – Instalacja Argo CD

Zanim będziemy mogli zainstalować Argo CD, musimy mieć uruchomione środowisko Kubernetes z kubectl. Możesz to przetestować, uruchamiając poniższe polecenie:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Nodes

Powinieneś zobaczyć co najmniej jeden węzeł Kubernetes działający w statusie Ready. Jeśli żaden węzeł nie jest dostępny, należy ponownie sprawdzić instalację Kubernetes. Następnie utworzymy osobną przestrzeń nazw dla naszej instalacji Kubernetes. Nazwijmy ją argocd. W tej przestrzeni nazw będziemy przechowywać usługi powiązane z Argo CD:

Następnie zainstaluj skrypty Argo CD w nowo utworzonej powyżej przestrzeni nazw, uruchamiając poniższe polecenie:

Deploying Applications on Kubernetes Using Argo CD and GitOps Install ArgoCD

Aby sprawdzić status podów Kubernetes, uruchom poniższe polecenie:

Otrzymasz wynik podobny do poniższego:

Deploying Applications on Kubernetes Using Argo CD and GitOps Get Pods

W tym miejscu pomyślnie zakończyłeś instalację Argo CD. Aby wyjść z interfejsu watch, możesz nacisnąć Ctrl + C. Aby uzyskać dostęp do usług w tym klastrze Kubernetes, będziemy musieli przekierować porty. Pokażemy, jak to zrobić w następnym kroku.

Krok 2 – Przekierowanie portów w celu uzyskania dostępu do Argo CD

Kubernetes może wdrożyć Twoją aplikację na dowolnie wybranym porcie. Dlatego konieczne jest przekierowanie portów aplikacji Kubernetes, aby uzyskać do nich dostęp z lokalnego komputera. Argo CD udostępnia usługę o nazwie argocd-server która korzysta z portu 443. Port 443 jest domyślnym portem dla usług HTTPS i HTTP. Możesz przekierować porty Kubernetes na wybrany przez siebie port. W naszym poniższym przykładzie przekierowaliśmy port na 8080. Aby przekierować porty, uruchom poniższe polecenie w terminalu:

Po przekierowaniu portu zostanie on zablokowany, aby inne usługi nie miały do niego dostępu. Aby mieć nieprzerwany dostęp, zawsze zaleca się uruchomienie wyżej wymienionego polecenia w nowym terminalu. Po zakończeniu możesz nacisnąć Ctrl+C , aby zakończyć proces przekierowywania portów.

Po przekierowaniu portu możesz przejść do Argo CD, przechodząc do localhost:8080. Zostaniesz poproszony o dane uwierzytelniające, które możesz uzyskać z wiersza poleceń w następnym kroku.

Krok 3 – Zarządzanie Argo CD z poziomu wiersza poleceń

Musimy zainstalować interfejs wiersza poleceń Argo CD do zarządzania instalacją Argo CD. Zalecanym sposobem instalacji Argo CD jest użycie menedżera pakietów, takiego jak Homebrew. Homebrew to popularne narzędzie do zarządzania pakietami przeznaczone do instalacji w systemach macOS i Linux. Możesz zainstalować Homebrew za pomocą poniższego polecenia:

Powinieneś mieć brew zainstalowany na swoim komputerze. Może pojawić się monit o hasło do logowania. Możesz go uruchomić, wykonując poniższe polecenie:

Otrzymasz polecenie argocd po powyższej instalacji. Będziemy musieli pobrać hasło administratora za pomocą polecenia kubectl . Zostało ono automatycznie wygenerowane podczas instalacji. Poniżej znajduje się polecenie służące do jego uzyskania:

Teraz, gdy masz już zainstalowane Argo CD, możesz zalogować się za pomocą polecenia argocd login poniżej:

Będziesz musiał się zalogować, aby wdrożyć aplikację przy użyciu wiersza poleceń:

Applications

Możesz otrzymać ostrzeżenie o zabezpieczeniach. Jeśli tak, naciśnij y , aby przejść dalej. Wielu użytkowników może chcieć zmienić hasło po zalogowaniu. Jeśli tak, uruchom polecenie argocd account update-password , aby zmienić hasło. Mamy teraz w pełni funkcjonalną konfigurację Argo CD.

Na koniec wdrożymy aplikację w klastrze Kubernetes przy użyciu zainstalowanego Argo CD.

Step 4 – Korzystanie z wielu klastrów

Zanim przejdziesz do konfiguracji aplikacji, musisz znać maszynę docelową, na której chcesz ją wdrożyć. W wielu scenariuszach Argo CD i wdrażana aplikacja mogą działać w tym samym klastrze. Jest to domyślne zachowanie Argo CD, ale nie jest to ograniczenie. Jeśli chcesz wdrożyć aplikację na innych maszynach docelowych, najpierw uruchom kubectl config na swoim komputerze:

Załóżmy, że otrzymasz dwa klastry: test-deploy-cluster oraz test-target-cluster. Teraz, jeśli test-deploy-cluster to miejsce, w którym znajduje się Twoje Argo CD, a chcesz wdrożyć aplikację na test-target-cluster, uruchom poniższe polecenie:

Powyższe polecenie doda szczegóły dodatkowego klastra w Argo CD. Umożliwi to również wdrażanie usług w klastrze docelowym Argo CD.

Step 5 – Wdrażanie przykładowej aplikacji

Nadszedł wreszcie czas na wdrożenie aplikacji w klastrze Kubernetes. Użyjemy przykładowych aplikacji dostarczonych przez Argo CD. Wykorzystamy również helm-guestbook zbudowaną przy użyciu Helm chartów.

Aby zainstalować aplikację, użyjemy polecenia argo app create . Określimy repozytorium Git, helm-guestbook oraz przekażemy domyślne miejsce docelowe i przestrzeń nazw:

Możesz sprawdzić status nowo utworzonej aplikacji, uruchamiając polecenie argocd app get:

Nie zdziw się, jeśli zobaczysz OutOfSync statusu. Do tej pory pobraliśmy chart Helm i utworzyliśmy dla niego punkt wejścia dla Argo CD. Jednak po stronie Kubernetes nie ma przypisanego do niego żadnego zasobu. Aby zsynchronizować tę aplikację, uruchom poniższe polecenie:

Deploying Applications on Kubernetes Using Argo CD and GitOps App Sync

Podczas pracy z GitOps zawsze konieczne jest zsynchronizowanie aplikacji z repozytorium nadrzędnym (upstream). Dlatego za każdym razem, gdy w repozytorium pojawia się zmiana, Argo CD wdraża aplikację.

Wdrożyliśmy aplikację za pomocą wiersza poleceń Argo CD. Ten sam rezultat można osiągnąć, korzystając z interfejsu webowego Argo CD. Interfejs webowy jest bardzo pomocny, jeśli chcesz sprawdzić status i działanie aplikacji. Aby otworzyć interfejs webowy, otwórz localhost:8080:

Deploying Applications on Kubernetes Using Argo CD and GitOps Application UI

Aby zweryfikować instalację, otworzymy aplikację w przeglądarce. Nasz helm-guestbook działa na porcie 80. Jeśli masz inną aplikację korzystającą z portu 80, możesz przekierować port, aby nie zakłócać działania innych aplikacji:

Na koniec otwórz adres URL localhost:9090 w przeglądarce internetowej, aby zobaczyć działającą aplikację:

 Guestbook UI

Teraz, jeśli programista prześle jakikolwiek kod do zdalnego repozytorium GitHub, ArgoCD go przechwyci i odzwierciedli. Twoje wdrożenia ArgoCD zostaną odpowiednio zaktualizowane, zapewniając ciągłą dostępność.

Podsumowanie

W tym samouczku pokazaliśmy, jak instalować i wdrażać aplikacje na Kubernetesie za pomocą Argo CD. Ważne jest, aby upewnić się, że wdrożenia na Kubernetesie są łatwe w utrzymaniu. GitOps może bardzo pomóc w tym zakresie.

Kubernetes jest obecnie standardem wdrożeń w chmurze. CloudSigma ma świetne samouczki dotyczące Kubernetesa, które możesz sprawdzić w następnej kolejności:

Miłego korzystania!

author

Preslav Dobrev

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.