Udostępnij za pośrednictwem


Szybki start: programowanie w usłudze Azure Kubernetes Service (AKS) za pomocą programu 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 szybkim rozpoczęciu użyjesz narzędzia Helm, aby spakować i uruchomić aplikację na 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

Utwórz Azure Container Registry

Aby uruchomić aplikację w klastrze usługi AKS przy użyciu narzędzia Helm, musisz przechowywać obrazy kontenerów w Azure Container Registry (ACR). Nazwa rejestru musi być unikatowa w 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ą.

  1. Utwórz grupę zasobów 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
    
  2. Utwórz Azure Container Registry o unikatowej nazwie, wywołując polecenie az acr create. Poniższy przykład tworzy repozytorium ACR o nazwie myhelmacr z parametrem SKU Basic.

    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 do użycia dla ACR w późniejszym etapie.

    {
      "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 AKS o nazwie myAKSCluster i przyznaje mu dostęp do ACR myhelmacr. Pamiętaj, aby zastąpić myhelmacr nazwą 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 jest już zainstalowany, jeśli używasz Azure Cloud Shell.

  1. Zainstaluj kubectl lokalnie używając polecenia az aks install-cli .

    az aks install-cli
    
  2. 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 AKS o nazwie myAKSCluster w myResourceGroup.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Pobieranie przykładowej aplikacji

Ten szybki start używa aplikacji Azure Vote.

  1. Sklonuj aplikację z GitHub przy użyciu polecenia git clone.

    git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
    
  2. Przejdź do azure-vote katalogu przy użyciu cd polecenia .

    cd azure-voting-app-redis/azure-vote/
    

Kompilowanie i wypychanie przykładowej aplikacji do usługi ACR

  • Zbuduj i wypchnij obraz do ACR przy użyciu polecenia az acr build. Poniższy przykład tworzy obraz o nazwie azure-vote-front:v1 i wypycha go do myhelmacr ACR. Pamiętaj, aby zastąpić myhelmacr nazwą 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 Wysyłanie i pobieranie diagramów Helm do rejestru kontenerów Azure.

Tworzenie wykresu programu Helm

  1. Wygeneruj wykres Helm, używając polecenia helm create.

    helm create azure-vote-front
    
  2. Zaktualizuj azure-vote-front/Chart.yaml, aby dodać zależność dla chartu redis z https://charts.bitnami.com/bitnami repozytorium chartów i zaktualizować appVersion do v1, 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
    
  3. Użyciu polecenia helm dependency update, aby zaktualizować zależności wykresu Helm.

    helm dependency update azure-vote-front
    
  4. 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 backendName w celu połączenia części frontendowej z wdrożeniem Redis.
    • Zmień plik image.repository na <loginServer>/azure-vote-front.
    • Zmień wartość image.tag na v1.
    • Zmień 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
    ...
    
  5. Dodaj sekcję env do pliku azure-vote-front/templates/deployment.yaml, aby przekazać nazwę wdrożenia 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 }}
    ...
    

Uruchom wykres Helm

  1. Zainstaluj aplikację za pomocą wykresu Helm, korzystając z polecenia helm install.

    helm install azure-vote-front azure-vote-front/
    
  2. Usługa potrzebuje kilku minut, aby zwrócić publiczny adres IP. 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 monitorowania kubectl.

      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
    
  3. 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 Azure, obrazy kontenerów przechowywane w rejestrze ACR i wszystkie powiązane zasoby przy użyciu polecenia az group delete z parametrem --yes w celu potwierdzenia usunięcia oraz z parametrem --no-wait powracającego do wiersza poleceń 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 szybkim przewodniku), 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 Rozważania dotyczące jednostki usługi AKS i jej usuwania.

Następne kroki

Aby uzyskać więcej informacji na temat korzystania z programu Helm, zobacz dokumentację programu Helm.