Instalowanie istniejących aplikacji za pomocą zestawu Helm
Dotyczy: AKS na platformie Azure Local 22H2, AKS na Windows Server
W tym artykule opisano sposób konfigurowania i używania programu Helm do instalowania aplikacji Kubernetes i zarządzania nimi w klastrze Kubernetes w usłudze AKS włączonej przez usługę Azure Arc.
Helm to narzędzie do tworzenia pakietów typu open source, które ułatwia instalowanie cyklu życia aplikacji Kubernetes i zarządzanie nim. Podobnie jak menedżerowie pakietów systemu Linux, tacy jak APT i Sum, program Helm zarządza wykresami Kubernetes, które są pakietami wstępnie skonfigurowanych zasobów Kubernetes.
Zanim rozpoczniesz
Sprawdź, czy skonfigurowaliśmy następujące wymagania:
- Klaster Kubernetes z co najmniej jednym węzłem procesu roboczego systemu Linux, który jest uruchomiony.
- Skonfigurowano środowisko lokalne
kubectl
tak, aby wskazywało klaster. Aby uzyskać dostęp do klastra, możesz użyć polecenia Get-AksHciCredential programu PowerShell przy użyciu poleceniakubectl
. - Zainstalowano wiersz polecenia i wymagania wstępne programu Helm w wersji 3 .
- Jeśli wolisz, możesz użyć interfejsu wiersza polecenia platformy Azure do uruchamiania poleceń.
Ważne
Program Helm jest przeznaczony do uruchamiania w węzłach systemu Linux. Jeśli klaster ma węzły systemu Windows Server, należy upewnić się, że zasobniki programu Helm mają być uruchamiane tylko w węzłach systemu Linux. Należy również upewnić się, że wszystkie zainstalowane wykresy programu Helm mają być uruchamiane na odpowiednich węzłach. Polecenia w tym artykule używają selektorów węzłów, aby upewnić się, że zasobniki są zaplanowane do odpowiednich węzłów, ale nie wszystkie wykresy programu Helm uwidaczniają selektor węzła. Możesz również użyć innych opcji, takich jak defekty, w klastrze.
Weryfikowanie wersji programu Helm
helm version
Użyj polecenia , aby sprawdzić, czy masz zainstalowane narzędzie Helm 3:
helm version
Poniższy przykład przedstawia zainstalowany program Helm w wersji 3.5.4:
version.BuildInfo{Version:"v3.5.4", GitCommit:"1b5edb69df3d3a08df77c9902dc17af864ff05d1", GitTreeState:"clean", GoVersion:"go1.15.11"}
Instalowanie aplikacji za pomocą programu Helm w wersji 3
Dodawanie repozytoriów programu Helm
Użyj polecenia helm repo, aby dodać repozytorium ingress-nginx.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Znajdowanie wykresów programu Helm
Wykresy helm służą do wdrażania aplikacji w klastrze Kubernetes. Aby wyszukać wstępnie utworzone wykresy helm, użyj polecenia wyszukiwania helm:
helm search repo ingress-nginx
Następujące skrócone przykładowe dane wyjściowe pokazują niektóre wykresy helm dostępne do użycia:
NAME CHART VERSION APP VERSION DESCRIPTION
ingress-nginx/ingress-nginx 3.30.0 0.46.0 Ingress controller for Kubernetes using NGINX a...
Aby zaktualizować listę wykresów, użyj polecenia update repozytorium helm.
helm repo update
W poniższym przykładzie przedstawiono pomyślną aktualizację repozytorium:
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "ingress-nginx" chart repository
Update Complete. Happy Helming!
Uruchamianie wykresów programu Helm
Aby zainstalować wykresy za pomocą programu Helm, użyj polecenia instalacji narzędzia Helm i określ nazwę wydania oraz nazwę wykresu do zainstalowania. Aby zobaczyć instalację pakietu Helm w akcji, zainstaluj podstawowe wdrożenie serwera nginx przy użyciu pakietu Helm.
Następujące polecenie jest udostępniane dwa razy, jedno do użycia w interfejsie wiersza polecenia platformy Azure i jedno do użycia w konsoli programu PowerShell:
helm install my-nginx-ingress ingress-nginx/ingress-nginx \
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
helm install my-nginx-ingress ingress-nginx/ingress-nginx `
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux `
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
Następujące skrócone przykładowe dane wyjściowe pokazują stan wdrożenia zasobów Kubernetes utworzonych przez pakiet Helm:
> --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
> --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
NAME: my-nginx-ingress
LAST DEPLOYED: Fri May 14 17:43:27 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The nginx-ingress controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace default get services -o wide -w my-nginx-ingress-ingress-nginx-controller'
...
kubectl get services
Użyj polecenia , aby uzyskać zewnętrzny adres IP usługi:
kubectl --namespace default get services -o wide -w my-nginx-ingress-ingress-nginx-controller
Na przykład następujące polecenie pokazuje adres EXTERNAL-IP dla usługi my-nginx-ingress-ingress-nginx-controller :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
my-nginx-ingress-ingress-nginx-controller LoadBalancer 10.98.53.215 <EXTERNAL-IP> 80:31553/TCP,443:30784/TCP 72s app.kubernetes.io/component=controller,app.kubernetes.io/instance=my-nginx-ingress,app.kubernetes.io/name=ingress-nginx
Wyświetlanie listy wydań
Aby wyświetlić listę wersji zainstalowanych w klastrze, użyj helm list
polecenia .
helm list
W poniższym przykładzie pokazano wydanie ruchu przychodzącego my-nginx wdrożone w poprzednim kroku:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
my-nginx-ingress default 1 2021-05-14 17:43:27.1670709 +0000 UTC deployed nginx-ingress-3.30.0 0.46.0
Czyszczenie zasobów
Podczas wdrażania wykresu programu Helm jest tworzonych wiele zasobów kubernetes. Te zasoby obejmują zasobniki, wdrożenia i usługi. Aby wyczyścić te zasoby, użyj polecenia dezinstalacji narzędzia Helm i określ nazwę wydania, jak znaleziono w poprzednim helm list
poleceniu:
helm uninstall my-nginx-ingress
Następujące przykładowe dane wyjściowe pokazują, że wersja my-nginx-ingress została odinstalowana:
release "my-nginx-ingress" uninstalled
Następne kroki
Aby uzyskać więcej informacji na temat zarządzania wdrożeniami aplikacji Kubernetes za pomocą programu Helm, zobacz dokumentację programu Helm.