Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 w przypadku menedżerów pakietów systemu Linux, takich jak APT i Yum, można użyć narzędzia Helm do zarządzania wykresami Kubernetes, które są pakietami wstępnie skonfigurowanych zasobów Kubernetes.
W tym artykule przedstawiono sposób konfigurowania i używania narzędzia Helm w klastrze Kubernetes w usłudze Azure Kubernetes Service (AKS).
Zanim rozpoczniesz
- Artykuł zakłada, że masz istniejący klaster AKS. Jeśli potrzebujesz klastra usługi AKS, utwórz go przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal.
- Klaster AKS musi mieć zintegrowany ACR. Aby uzyskać szczegółowe informacje na temat tworzenia klastra usługi AKS za pomocą zintegrowanego rejestru ACR, zobacz Uwierzytelnianie za pomocą usługi Azure Container Registry z usługi Azure Kubernetes Service.
- Potrzebny jest również zainstalowany interfejs wiersza polecenia programu Helm, który jest klientem uruchomionym w Twoim systemie developerskim. Umożliwia uruchamianie, zatrzymywanie i zarządzanie aplikacjami za pomocą programu Helm. Jeśli używasz usługi Azure Cloud Shell, interfejs wiersza polecenia programu Helm jest już zainstalowany. Aby uzyskać instrukcje dotyczące instalacji na platformie lokalnej, zobacz Instalowanie programu Helm.
Ważne
Program Helm jest przeznaczony do uruchamiania w węzłach systemu Linux. Jeśli w klastrze znajdują się 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 również 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ą przydzielone odpowiednim węzłom, ale nie wszystkie wykresy programu Helm mogą udostępniać selektor węzłów. Możesz również rozważyć użycie innych opcji w klastrze, takich jak skażenia.
Weryfikowanie wersji programu Helm
helm version
Użyj polecenia , aby sprawdzić, czy masz zainstalowany program Helm 3.helm version
Następujące przykładowe dane wyjściowe pokazują zainstalowane narzędzie Helm w wersji 3.0.0:
version.BuildInfo{Version:"v3.0.0", GitCommit:"e29ce2a54e96cd02ccfce88bee4f58bb6e2a28b6", GitTreeState:"clean", GoVersion:"go1.13.4"}
Instalowanie aplikacji za pomocą programu Helm w wersji 3
Dodawanie repozytoriów programu Helm
Dodaj repozytorium ingress-nginx przy użyciu polecenia helm repo.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
Znajdowanie wykresów programu Helm
Wyszukaj wstępnie utworzone wykresy Helm stosując helm search.
helm search repo ingress-nginx
Następujące skrócone przykładowe dane wyjściowe pokazują niektóre z wykresów Helm dostępnych do użycia:
NAME CHART VERSION APP VERSION DESCRIPTION ingress-nginx/ingress-nginx 4.7.0 1.8.0 Ingress controller for Kubernetes using NGINX a...
Zaktualizuj listę wykresów przy użyciu polecenia helm repo update.
helm repo update
W poniższych przykładowych danych wyjściowych 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!⎈
Importowanie obrazów wykresów Helm do usługi ACR
W tym artykule użyto Helm chart kontrolera NGINX ingress, który opiera się na trzech obrazach.
Użyj
az acr import
aby zaimportować obrazy kontrolera ruchu przychodzącego NGINX do ACR.REGISTRY_NAME=<REGISTRY_NAME> CONTROLLER_REGISTRY=registry.k8s.io CONTROLLER_IMAGE=ingress-nginx/controller CONTROLLER_TAG=v1.8.0 PATCH_REGISTRY=registry.k8s.io PATCH_IMAGE=ingress-nginx/kube-webhook-certgen PATCH_TAG=v20230407 DEFAULTBACKEND_REGISTRY=registry.k8s.io DEFAULTBACKEND_IMAGE=defaultbackend-amd64 DEFAULTBACKEND_TAG=1.5 az acr import --name $REGISTRY_NAME --source $CONTROLLER_REGISTRY/$CONTROLLER_IMAGE:$CONTROLLER_TAG --image $CONTROLLER_IMAGE:$CONTROLLER_TAG az acr import --name $REGISTRY_NAME --source $PATCH_REGISTRY/$PATCH_IMAGE:$PATCH_TAG --image $PATCH_IMAGE:$PATCH_TAG az acr import --name $REGISTRY_NAME --source $DEFAULTBACKEND_REGISTRY/$DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG --image $DEFAULTBACKEND_IMAGE:$DEFAULTBACKEND_TAG
Uwaga
Oprócz importowania obrazów kontenerów do usługi ACR można również zaimportować chart'y Helm do usługi ACR. Aby uzyskać więcej informacji, zobacz Wypychanie i ściąganie wykresów Helm do rejestru kontenerów platformy Azure.
Uruchamianie wykresów programu Helm
Zainstaluj wykresy programu Helm przy użyciu polecenia instalacji narzędzia Helm i określ nazwę wydania oraz nazwę wykresu do zainstalowania.
Napiwek
Poniższy przykład tworzy przestrzeń nazw Kubernetes dla zasobów ingress o nazwie ingress-basic i ma działać w obrębie tej przestrzeni nazw. Określ przestrzeń nazw dla własnego środowiska zgodnie z potrzebami.
ACR_URL=<REGISTRY_URL> # Create a namespace for your ingress resources kubectl create namespace ingress-basic # Use Helm to deploy an NGINX ingress controller helm install ingress-nginx ingress-nginx/ingress-nginx \ --version 4.0.13 \ --namespace ingress-basic \ --set controller.replicaCount=2 \ --set controller.nodeSelector."kubernetes\.io/os"=linux \ --set controller.image.registry=$ACR_URL \ --set controller.image.image=$CONTROLLER_IMAGE \ --set controller.image.tag=$CONTROLLER_TAG \ --set controller.image.digest="" \ --set controller.admissionWebhooks.patch.nodeSelector."kubernetes\.io/os"=linux \ --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz \ --set controller.admissionWebhooks.patch.image.registry=$ACR_URL \ --set controller.admissionWebhooks.patch.image.image=$PATCH_IMAGE \ --set controller.admissionWebhooks.patch.image.tag=$PATCH_TAG \ --set defaultBackend.nodeSelector."kubernetes\.io/os"=linux \ --set defaultBackend.image.registry=$ACR_URL \ --set defaultBackend.image.image=$DEFAULTBACKEND_IMAGE \ --set defaultBackend.image.tag=$DEFAULTBACKEND_TAG \ --set defaultBackend.image.digest=""
Następujący skrótowy przykład danych wyjściowych pokazuje stan wdrożenia zasobów Kubernetes utworzonych przez chart Helm.
NAME: nginx-ingress LAST DEPLOYED: Wed Jul 28 11:35:29 2021 NAMESPACE: ingress-basic STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: The ingress-nginx 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 ingress-basic get services -o wide -w nginx-ingress-ingress-nginx-controller' ...
Pobierz zewnętrzny adres IP usługi przy użyciu
kubectl get services
polecenia .kubectl --namespace ingress-basic get services -o wide -w ingress-nginx-ingress-nginx-controller
Następujące przykładowe dane wyjściowe pokazują adres EXTERNAL-IP dla usługi ingress-nginx-ingress-nginx-controller :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR nginx-ingress-ingress-nginx-controller LoadBalancer 10.0.254.93 <EXTERNAL_IP> 80:30004/TCP,443:30348/TCP 61s app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx
Lista wydań
Pobierz listę wersji zainstalowanych w klastrze przy użyciu
helm list
polecenia .helm list --namespace ingress-basic
Następujące przykładowe dane wyjściowe pokazują wydanie ingress-nginx wdrożone w poprzednim kroku:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ingress-nginx ingress-basic 1 2021-07-28 11:35:29.9623734 -0500 CDT deployed ingress-nginx-3.34.0 0.47.0
Czyszczenie zasobów
Wdrożenie wykresu programu Helm powoduje utworzenie zasobów kubernetes, takich jak zasobniki, wdrożenia i usługi.
Wyczyść zasoby, używając polecenia helm uninstall i określ swoją nazwę wydania.
helm uninstall --namespace ingress-basic ingress-nginx
Następujące przykładowe dane wyjściowe pokazują, że wersja o nazwie ingress-nginx została odinstalowana:
release "nginx-ingress" uninstalled
Usuń całą przykładową przestrzeń nazw wraz z zasobami przy użyciu
kubectl delete
polecenia i określ nazwę przestrzeni nazw.kubectl delete namespace ingress-basic
Następne kroki
Aby uzyskać więcej informacji na temat zarządzania wdrożeniami aplikacji Kubernetes za pomocą programu Helm, zobacz dokumentację programu Helm.
Azure Kubernetes Service