Partilhar via


Guia de início rápido: desenvolver no Serviço Kubernetes do Azure (AKS) com o Helm

O Helm é uma ferramenta de empacotamento de código aberto que ajuda você a instalar e gerenciar o ciclo de vida dos aplicativos Kubernetes. Semelhante aos gerenciadores de pacotes Linux como APT e Yum, o Helm gerencia gráficos Kubernetes, que são pacotes de recursos Kubernetes pré-configurados.

Neste início rápido, você usa o Helm para empacotar e executar um aplicativo no AKS. Para obter informações sobre como instalar um aplicativo existente usando o Helm, consulte Instalar aplicativos existentes com o Helm no AKS.

Prerequisites

Criar um Registo de Contentores do Azure

Você precisa armazenar suas imagens de contêiner em um Registro de Contêiner do Azure (ACR) para executar seu aplicativo em seu cluster AKS usando o Helm. Seu nome do Registro deve ser exclusivo no Azure e conter de 5 a 50 caracteres alfanuméricos. Apenas caracteres minúsculos são permitidos. O SKU básico é um ponto de entrada com custo otimizado para fins de desenvolvimento que fornece um equilíbrio entre armazenamento e taxa de transferência.

  1. Crie um grupo de recursos do Azure usando o comando az group create . O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.

    az group create --name myResourceGroup --location eastus
    
  2. Crie um Registro de Contêiner do Azure com um nome exclusivo chamando o comando az acr create . O exemplo a seguir cria um ACR chamado myhelmacr com a SKU básica .

    az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
    

    Sua saída deve ser semelhante à saída de exemplo condensada a seguir. Anote o valor do seu loginServer para utilização pelo seu ACR num passo posterior.

    {
      "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"
    }
    

Criar um cluster do AKS

O seu novo cluster AKS precisa de aceder ao seu ACR para obter as imagens de contentor e executá-las.

  • Crie um cluster AKS usando o comando az aks create com o --attach-acr parâmetro para conceder ao cluster acesso ao seu ACR. O exemplo a seguir cria um cluster AKS chamado myAKSCluster e concede acesso ao ACR myhelmacr . Certifique-se de substituir myhelmacr pelo nome do seu ACR.

    az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
    

Conecte-se ao cluster AKS

Para conectar um cluster Kubernetes localmente, use o cliente de linha de comando Kubernetes, kubectl. kubectl já está instalado se você usar o Azure Cloud Shell.

  1. Instale kubectl localmente usando o comando az aks install-cli.

    az aks install-cli
    
  2. Configure kubectl para se conectar ao cluster Kubernetes usando o comando az aks get-credentials. O comando a seguir obtém credenciais para o cluster AKS chamado myAKSCluster em myResourceGroup.

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

Baixe o aplicativo de exemplo

Este guia de início rápido usa a aplicação Azure Vote.

  1. Clone o aplicativo do GitHub usando o git clone comando.

    git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
    
  2. Navegue até o azure-vote diretório usando o cd comando.

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

Crie e envie o aplicativo de exemplo para o ACR

  • Crie e envie a imagem para o seu ACR usando o comando az acr build . O exemplo a seguir cria uma imagem chamada azure-vote-front:v1 e a envia por push para o ACR myhelmacr . Certifique-se de substituir myhelmacr pelo nome do seu ACR.

    az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
    

Note

Você também pode importar gráficos Helm para seu ACR. Para obter mais informações, consulte Enviar e puxar gráficos de leme para um registro de contêiner do Azure.

Cria o teu Helm chart

  1. Gere o Helm chart usando o comando helm create.

    helm create azure-vote-front
    
  2. Atualize azure-vote-front/Chart.yaml para adicionar uma dependência para o gráfico redis do https://charts.bitnami.com/bitnami repositório de gráficos e atualize appVersion para v1, conforme mostrado no exemplo a seguir:

    Note

    As versões de imagem de contêiner mostradas neste guia foram testadas para funcionar com este exemplo, mas podem não ser a versão mais recente disponível.

    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. Atualize as dependências do gráfico Helm usando o helm dependency update comando.

    helm dependency update azure-vote-front
    
  4. Atualize azure-vote-front/values.yaml com as seguintes alterações.

    • Adicione uma seção redis para definir os detalhes da imagem, a porta do contêiner e o nome da implantação.
    • Adicione um backendName para conectar a parte frontal à implementação do redis.
    • Altere image.repository para <loginServer>/azure-vote-front.
    • Altere image.tag para v1.
    • Altere service.type para LoadBalancer.

    Por exemplo:

    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. Adicione uma env seção a azure-vote-front/templates/deployment.yaml para passar o nome da implantação do 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 }}
    ...
    

Execute seu gráfico Helm

  1. Instale seu aplicativo usando o gráfico Helm usando o helm install comando.

    helm install azure-vote-front azure-vote-front/
    
  2. Leva alguns minutos para o serviço retornar um endereço IP público. Monitore o progresso usando o kubectl get service comando com o --watch argumento.

    kubectl get service azure-vote-front --watch
    

    Quando o serviço estiver pronto, o EXTERNAL-IP valor muda de <pending> para um endereço IP. Pressione CTRL+C para parar o processo de kubectl monitorização.

      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. Navegue até o balanceador de carga do seu aplicativo em um navegador usando o <EXTERNAL-IP> para ver o aplicativo de exemplo.

Eliminar o cluster

  • Remova seu grupo de recursos, cluster AKS, registro de contêiner do Azure, imagens de contêiner armazenadas no ACR e todos os recursos relacionados usando o comando az group delete com o parâmetro para confirmar a --yes exclusão e o --no-wait parâmetro para retornar ao prompt de comando sem esperar a conclusão da operação.

    az group delete --name myResourceGroup --yes --no-wait
    

Note

Se você criou seu cluster AKS com uma identidade gerenciada atribuída ao sistema (a opção de identidade padrão neste início rápido), a identidade é gerenciada pela plataforma e não requer remoção.

Se você criou seu cluster AKS com uma entidade de serviço, a entidade de serviço não será removida quando você excluir o cluster. Para remover o principal de serviço, consulte Considerações e exclusão do principal de serviço AKS.

Próximos passos

Para obter mais informações sobre como usar o Helm, consulte a documentação do Helm.