Início Rápido: Implementar um cluster do Azure Kubernetes Service (AKS) com a CLI do Azure

Azure Kubernetes Service (AKS) é um serviço do Kubernetes gerido que lhe permite implementar e gerir rapidamente clusters. Neste início rápido, irá:

  • Implemente um cluster do AKS com a CLI do Azure.
  • Execute uma aplicação de vários contentores de exemplo com um front-end web e uma instância de Redis no cluster.

Captura de ecrã a mostrar a navegação para a aplicação de exemplo do Azure Vote.

Antes de começar

Pré-requisitos

  • Este artigo requer a versão 2.0.64 ou posterior da CLI do Azure. Se estiver a utilizar o Azure Cloud Shell, a versão mais recente já está instalada.

  • Certifique-se de que a identidade que utiliza para criar o cluster tem as permissões mínimas adequadas. Para obter mais detalhes sobre o acesso e a identidade do AKS, veja Opções de acesso e identidade para Azure Kubernetes Service (AKS).

  • Se tiver várias subscrições do Azure, selecione o ID de subscrição adequado no qual os recursos devem ser faturados com o az account comando .

  • Verifique se tem os fornecedores Microsoft.OperationsManagement e Microsoft.OperationalInsights registados na sua subscrição. Estes fornecedores de recursos do Azure são necessários para suportar as Informações do contentor. Verifique o estado do registo com os seguintes comandos:

    az provider show -n Microsoft.OperationsManagement -o table
    az provider show -n Microsoft.OperationalInsights -o table
    

    Se não estiverem registados, registe-os com os seguintes comandos:

    az provider register --namespace Microsoft.OperationsManagement
    az provider register --namespace Microsoft.OperationalInsights
    

Nota

Se planear executar os comandos localmente em vez de no Azure Cloud Shell, certifique-se de que executa os comandos com privilégios administrativos.

Criar um grupo de recursos

Um grupo de recursos do Azure é um grupo lógico no qual os recursos do Azure são implementados e geridos. Quando cria um grupo de recursos, é-lhe pedido que especifique uma localização. Esta localização é a localização de armazenamento dos metadados do grupo de recursos e onde os recursos são executados no Azure se não especificar outra região durante a criação de recursos.

O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.

  • Crie um grupo de recursos com o az group create comando .

    az group create --name myResourceGroup --location eastus
    

    O exemplo de saída seguinte assemelha-se à criação bem-sucedida do grupo de recursos:

    {
      "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
      "location": "eastus",
      "managedBy": null,
      "name": "myResourceGroup",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "tags": null
    }
    

Criar um cluster do AKS (Create an AKS cluster)

O exemplo seguinte cria um cluster com o nome myAKSCluster com um nó e ativa uma identidade gerida atribuída pelo sistema.

  • Crie um cluster do AKS com o az aks create comando com os --enable-addons monitoring parâmetros e --enable-msi-auth-for-monitoring para ativar as informações do Contentor do Azure Monitor com autenticação de identidade gerida (pré-visualização).

    az aks create -g myResourceGroup -n myAKSCluster --enable-managed-identity --node-count 1 --enable-addons monitoring --enable-msi-auth-for-monitoring  --generate-ssh-keys
    

    Após alguns minutos, o comando é concluído e devolve informações formatadas em JSON sobre o cluster.

    Nota

    Quando cria um novo cluster, o AKS cria automaticamente um segundo grupo de recursos para armazenar os recursos do AKS. Para obter mais informações, veja Por que motivo são criados dois grupos de recursos com o AKS?

Ligar ao cluster

Para gerir um cluster do Kubernetes, utilize o cliente da linha de comandos do Kubernetes, kubectl. kubectljá está instalado se utilizar o Azure Cloud Shell.

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

    az aks install-cli
    
  2. Configure kubectl para ligar ao cluster do Kubernetes com o az aks get-credentials comando .

    Este comando executa as seguintes operações:

    • Transfere credenciais e configura a CLI do Kubernetes para as utilizar.
    • Utiliza ~/.kube/config, a localização predefinida para o ficheiro de configuração do Kubernetes. Especifique uma localização diferente para o ficheiro de configuração do Kubernetes com o argumento --file .
    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Verifique a ligação ao cluster com o kubectl get comando . Este comando devolve uma lista dos nós de cluster.

    kubectl get nodes
    

    O exemplo de saída seguinte mostra o nó único criado nos passos anteriores. Certifique-se de que o estado do nó é Pronto.

    NAME                       STATUS   ROLES   AGE     VERSION
    aks-nodepool1-31718369-0   Ready    agent   6m44s   v1.12.8
    

Implementar a aplicação

Um ficheiro de manifesto do Kubernetes define o estado pretendido de um cluster, como as imagens de contentor a executar.

Neste início rápido, vai utilizar um manifesto para criar todos os objetos necessários para executar a aplicação Azure Vote. Este manifesto inclui duas implementações do Kubernetes:

  • As aplicações python do Azure Vote de exemplo.
  • Uma instância de Redis.

Também cria dois Serviços do Kubernetes:

  • Um serviço interno para a instância de Redis.
  • Um serviço externo para aceder à aplicação Azure Vote a partir da Internet.
  1. Crie um ficheiro com o nome azure-vote.yaml e copie no manifesto seguinte.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-back
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-back
      template:
        metadata:
          labels:
            app: azure-vote-back
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-back
            image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
            env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            ports:
            - containerPort: 6379
              name: redis
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: azure-vote-back
    spec:
      ports:
      - port: 6379
      selector:
        app: azure-vote-back
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-front
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-front
      template:
        metadata:
          labels:
            app: azure-vote-front
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-front
            image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            ports:
            - containerPort: 80
            env:
            - name: REDIS
              value: "azure-vote-back"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: azure-vote-front
    spec:
      type: LoadBalancer
      ports:
      - port: 80
      selector:
        app: azure-vote-front
    

    Para obter uma discriminação dos ficheiros de manifesto YAML, veja Deployments and YAML manifests (Implementações e manifestos YAML).

  2. Implemente a aplicação com o kubectl apply comando e especifique o nome do seu manifesto YAML.

    kubectl apply -f azure-vote.yaml
    

    O exemplo seguinte assemelha-se à saída que mostra implementações e serviços criados com êxito.

    deployment "azure-vote-back" created
    service "azure-vote-back" created
    deployment "azure-vote-front" created
    service "azure-vote-front" created
    

Testar a aplicação

Quando a aplicação é executada, um serviço do Kubernetes expõe o front-end da aplicação à Internet. Este processo pode demorar alguns minutos a concluir.

  1. Monitorize o progresso com o kubectl get service comando com o --watch argumento .

    kubectl get service azure-vote-front --watch
    

    A saída EXTERNAL-IP do azure-vote-front serviço será apresentada inicialmente como pendente.

    NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
    azure-vote-front   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s
    
  2. Assim que o endereço EXTERNAL-IP mudar de pendente para um endereço IP público real, utilize CTRL-C para parar o kubectl processo de watch.

    O resultado de exemplo seguinte mostra um endereço IP público válido atribuído ao serviço:

    azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m
    
  3. Abra um browser para o endereço IP externo do seu serviço para ver a aplicação Azure Vote em ação.

    Captura de ecrã a mostrar a navegação para a aplicação de exemplo do Azure Vote.

Eliminar o cluster

Se não planear seguir os tutoriais seguintes, limpe recursos desnecessários para evitar custos do Azure.

  • Remova o grupo de recursos, o serviço de contentor e todos os recursos relacionados com o az group delete comando .

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

    Nota

    O cluster do AKS foi criado com uma identidade gerida atribuída pelo sistema, que é a opção de identidade predefinida utilizada neste início rápido. A plataforma gere esta identidade para que não tenha de removê-la manualmente.

Passos seguintes

Neste início rápido, implementou um cluster do Kubernetes e implementou uma aplicação multi-contentor simples no mesmo.

Para saber mais sobre o AKS e ver um exemplo completo de código para implementação, avance para o tutorial do cluster do Kubernetes.

Este início rápido destina-se a fins introdutórios. Para obter orientações sobre como criar soluções completas com o AKS para produção, veja AKS solution guidance (Orientação da solução do AKS).