Szybki start: programowanie w usłudze Azure Kubernetes Service (AKS) przy użyciu narzędzia Helm
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 Yum, program Helm zarządza wykresami Kubernetes, które są pakietami wstępnie skonfigurowanych zasobów Kubernetes.
W tym przewodniku Szybki start użyjesz narzędzia Helm, aby spakować i uruchomić aplikację w usłudze AKS. Aby uzyskać informacje na temat instalowania istniejącej aplikacji przy użyciu programu Helm, zobacz Instalowanie istniejących aplikacji za pomocą programu Helm w usłudze AKS.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
- Zainstalowany interfejs wiersza polecenia platformy Azure lub program Azure PowerShell .
- Zainstalowano program Helm w wersji 3.
Tworzenie rejestru Azure Container Registry
Aby uruchomić aplikację w klastrze usługi AKS przy użyciu narzędzia Helm, musisz przechowywać obrazy kontenerów w usłudze Azure Container Registry (ACR). Nazwa rejestru musi być unikatowa na platformie Azure i zawierać od 5 do 50 znaków alfanumerycznych. Dozwolone są tylko małe litery. Podstawowa jednostka SKU to zoptymalizowany pod kątem kosztów punkt wejścia do celów programistycznych zapewniający równowagę między przestrzenią dyskową i przepływnością.
Utwórz grupę zasobów platformy Azure przy użyciu polecenia az group create . W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus.
az group create --name myResourceGroup --location eastus
Utwórz usługę Azure Container Registry o unikatowej nazwie, wywołując polecenie az acr create . Poniższy przykład tworzy rekord ACR o nazwie myhelmacr z podstawową jednostkę SKU.
az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
Dane wyjściowe powinny wyglądać podobnie do następujących skróconych przykładowych danych wyjściowych. Zanotuj wartość loginServer dla usługi ACR, która ma być używana w późniejszym kroku.
{ "adminUserEnabled": false, "creationDate": "2023-12-26T22:36:23.998425+00:00", "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr", "location": "eastus", "loginServer": "myhelmacr.azurecr.io", "name": "myhelmacr", "networkRuleSet": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", "sku": { "name": "Basic", "tier": "Basic" }, "status": null, "storageAccount": null, "tags": {}, "type": "Microsoft.ContainerRegistry/registries" }
Tworzenie klastra AKS
Nowy klaster usługi AKS musi mieć dostęp do usługi ACR, aby ściągnąć obrazy kontenerów i uruchomić je.
Utwórz klaster usługi AKS przy użyciu polecenia az aks create z parametrem
--attach-acr
w celu udzielenia klastrowi dostępu do usługi ACR. Poniższy przykład tworzy klaster usługi AKS o nazwie myAKSCluster i udziela mu dostępu do usługi ACR myhelmacr . Pamiętaj, aby zastąpićmyhelmacr
ciąg nazwą usługi ACR.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Nawiązywanie połączenia z klastrem usługi AKS
Aby połączyć klaster Kubernetes lokalnie, należy użyć klienta wiersza polecenia Kubernetes, kubectl. kubectl
program jest już zainstalowany, jeśli używasz usługi Azure Cloud Shell.
Zainstaluj
kubectl
lokalnie za pomocą polecenia az aks install-cli .az aks install-cli
Skonfiguruj,
kubectl
aby nawiązać połączenie z klastrem Kubernetes przy użyciu polecenia az aks get-credentials . Następujące polecenie pobiera poświadczenia dla klastra usługi AKS o nazwie myAKSCluster w grupie myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Pobieranie przykładowej aplikacji
W tym przewodniku Szybki start jest używana aplikacja Azure Vote.
Sklonuj aplikację z usługi GitHub przy użyciu
git clone
polecenia .git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Przejdź do
azure-vote
katalogu przy użyciucd
polecenia .cd azure-voting-app-redis/azure-vote/
Kompilowanie i wypychanie przykładowej aplikacji do usługi ACR
Skompiluj i wypchnij obraz do usługi ACR przy użyciu polecenia az acr build . Poniższy przykład tworzy obraz o nazwie azure-vote-front:v1 i wypycha go do usługi ACR myhelmacr . Pamiętaj, aby zastąpić
myhelmacr
ciąg nazwą usługi ACR.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Uwaga
Możesz również zaimportować wykresy programu Helm do usługi ACR. Aby uzyskać więcej informacji, zobacz Wypychanie i ściąganie wykresów Helm do rejestru kontenerów platformy Azure.
Tworzenie wykresu programu Helm
Wygeneruj
helm create
wykres Helm przy użyciu polecenia .helm create azure-vote-front
Zaktualizuj plik azure-vote-front/Chart.yaml , aby dodać zależność dla wykresu redis z
https://charts.bitnami.com/bitnami
repozytorium wykresu i zaktualizowaćappVersion
go dov1
elementu , jak pokazano w poniższym przykładzie:Uwaga
Wersje obrazów kontenera pokazane w tym przewodniku zostały przetestowane pod kątem pracy z tym przykładem, ale mogą nie być najnowszą dostępną wersją.
apiVersion: v2 name: azure-vote-front description: A Helm chart for Kubernetes dependencies: - name: redis version: 17.3.17 repository: https://charts.bitnami.com/bitnami ... # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: v1
Zaktualizuj zależności wykresu helm przy
helm dependency update
użyciu polecenia .helm dependency update azure-vote-front
Zaktualizuj plik azure-vote-front/values.yaml , wykonując następujące zmiany.
- Dodaj sekcję redis, aby ustawić szczegóły obrazu, port kontenera i nazwę wdrożenia.
- Dodaj element backendName na potrzeby łączenia części frontonu z wdrożeniem usługi Redis.
- Zmień plik image.repository na
<loginServer>/azure-vote-front
. - Zmień wartość image.tag na
v1
. - Zmień wartość service.type na LoadBalancer.
Na przykład:
replicaCount: 1 backendName: azure-vote-backend-master redis: image: registry: mcr.microsoft.com repository: oss/bitnami/redis tag: 6.0.8 fullnameOverride: azure-vote-backend auth: enabled: false image: repository: myhelmacr.azurecr.io/azure-vote-front pullPolicy: IfNotPresent tag: "v1" ... service: type: LoadBalancer port: 80 ...
Dodaj sekcję
env
do pliku azure-vote-front/templates/deployment.yaml , aby przekazać nazwę wdrożenia usługi Redis .... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: REDIS value: {{ .Values.backendName }} ...
Uruchamianie wykresu helm
Zainstaluj aplikację przy użyciu pakietu Helm przy użyciu
helm install
polecenia .helm install azure-vote-front azure-vote-front/
Zwrócenie publicznego adresu IP przez usługę może potrwać kilka minut. Monitoruj postęp za pomocą
kubectl get service
polecenia z argumentem--watch
.kubectl get service azure-vote-front --watch
Gdy usługa jest gotowa,
EXTERNAL-IP
wartość zmienia się z<pending>
na adres IP. Naciśnij ,CTRL+C
aby zatrzymać proces zegarkakubectl
.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-front LoadBalancer 10.0.18.228 <pending> 80:32021/TCP 6s ... azure-vote-front LoadBalancer 10.0.18.228 52.188.140.81 80:32021/TCP 2m6s
Przejdź do modułu równoważenia obciążenia aplikacji w przeglądarce przy użyciu polecenia ,
<EXTERNAL-IP>
aby wyświetlić przykładową aplikację.
Usuwanie klastra
Usuń grupę zasobów, klaster usługi AKS, rejestr kontenerów platformy Azure, obrazy kontenerów przechowywane w usłudze ACR i wszystkie powiązane zasoby przy użyciu polecenia az group delete z
--yes
parametrem w celu potwierdzenia usunięcia i--no-wait
parametru, aby powrócić do wiersza polecenia bez oczekiwania na zakończenie operacji.az group delete --name myResourceGroup --yes --no-wait
Uwaga
Jeśli klaster usługi AKS został utworzony przy użyciu tożsamości zarządzanej przypisanej przez system (domyślna opcja tożsamości w tym przewodniku Szybki start), tożsamość jest zarządzana przez platformę i nie wymaga usunięcia.
Jeśli klaster usługi AKS został utworzony przy użyciu jednostki usługi, jednostka usługi nie zostanie usunięta po usunięciu klastra. Aby usunąć jednostkę usługi, zobacz Zagadnienia i usuwanie jednostki usługi AKS.
Następne kroki
Aby uzyskać więcej informacji na temat korzystania z programu Helm, zobacz dokumentację programu Helm.
Azure Kubernetes Service