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ć:
-
Klucze SSH na swoim komputerze. Jeśli nie masz pary kluczy SSH działających na systemie Linux/MacOS/BSD, możesz ją utworzyć, postępując zgodnie z naszym samouczkiem Przegląd SSH – Serwery, klienci i klucze SSH.
-
Będziesz także potrzebować uruchomionego klastra Kubernetes. Ponadto powinieneś mieć zainstalowane kubectl na swoim komputerze. Jeśli nie masz klastra Kubernetes, możesz postępować zgodnie z Jak utworzyć klaster Kubernetes za pomocą Kubeadm na Ubuntu 18.04.
-
Powinieneś posiadać podstawową wiedzę na temat pojęć związanych z Kubernetes. Jeśli chcesz lepiej zapoznać się z Kubernetes, możesz postępować zgodnie z Poznawanie podstaw narzędzia Kubernetes.
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:
|
1 |
kubectl 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:
|
1 |
kubectl create namespace argocd |
Następnie zainstaluj skrypty Argo CD w nowo utworzonej powyżej przestrzeni nazw, uruchamiając poniższe polecenie:
|
1 |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml |

Aby sprawdzić status podów Kubernetes, uruchom poniższe polecenie:
|
1 |
watch kubectl get pods -n argocd |
Otrzymasz wynik podobny do poniższego:

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:
|
1 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
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:
|
1 |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
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:
|
1 |
brew install argocd |
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:
|
1 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo |
Teraz, gdy masz już zainstalowane Argo CD, możesz zalogować się za pomocą polecenia argocd login poniżej:
|
1 |
argocd login localhost:8080 |
Będziesz musiał się zalogować, aby wdrożyć aplikację przy użyciu wiersza poleceń:

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:
|
1 |
kubectl config get-contexts -o name |
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:
|
1 |
argocd cluster add target-k8s |
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:
|
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 |
Możesz sprawdzić status nowo utworzonej aplikacji, uruchamiając polecenie argocd app get:
|
1 |
argocd app get helm-guestbook |
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:
|
1 |
argocd app sync helm-guestbook |

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:

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:
|
1 |
kubectl port-forward svc/helm-guestbook 9090:80 |
Na koniec otwórz adres URL localhost:9090 w przeglądarce internetowej, aby zobaczyć działającą aplikację:

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:
- Usługa DNS w Kubernetes: Przewodnik dla początkujących
- Konfiguracja WordPressa z MySQL na Kubernetesie za pomocą Helm
- Instalacja Jenkinsa na Kubernetesie
- Poznaj CloudSigma PaaS: Jak uzyskać dostęp do aplikacji Kubernetes za pomocą publicznego IP
Miłego korzystania!
Komentarze
Brak komentarzy. Bądź pierwszy.