Compartilhar via


Início Rápido: implantar um cluster do AKS (Serviço de Kubernetes do Azure) usando o Azure Developer CLI

O AKS (Serviço de Kubernetes do Azure) é um serviço de Kubernetes gerenciado que permite implantar e gerenciar clusters rapidamente. Neste início rápido, você aprenderá a:

  • Fazer download e instalar o Azure Developer CLI (azd).
  • Clonar aplicativos de um modelo do Azure Developer CLI (azd modelo).
  • Implantar um cluster do AKS usando o Azure Developer CLI (azd).
  • Executar um aplicativo de vários contêineres de exemplo com um grupo de microsserviços que simula um aplicativo de varejo.
  • Exclua e limpe os contêineres feitos do modelo azd.

Observação

Para começar a provisionar rapidamente um cluster do AKS, este artigo inclui etapas para implantar um cluster com configurações padrão somente para fins de avaliação. Antes de implantar um cluster pronto para produção, recomendamos que você se familiarize com nossa arquitetura de referência de linha de base para considerar como ele se alinha aos seus requisitos de negócios.

Antes de começar

Este guia de início rápido pressupõe uma compreensão básica dos conceitos do Kubernetes. Para obter mais informações, confira Principais conceitos do Kubernetes para o AKS (Serviço de Kubernetes do Azure).

Examinar o código do aplicativo

Examine o código do aplicativo no repositório GitHub Azure-Samples/aks-store-demo.

O aplicativo de início rápido inclui as seguintes implantações e serviços do Kubernetes:

Diagrama que mostra a arquitetura de amostra da Microsoft Azure Store.

  • Frente de loja: Aplicativo Web para clientes visualizarem produtos e fazerem pedidos.
  • Serviço do produto: Mostra informações do produto.
  • Serviço de pedido: Realiza pedidos.
  • Rabbit MQ: Fila de mensagens de uma fila de pedidos.

Observação

Não recomendamos a execução de contêineres com estado, como o Rabbit MQ, sem armazenamento persistente para uso em produção. Esses são usados aqui para simplificar, mas recomendamos o uso de serviços gerenciados, como o Azure Cosmos DB ou o Barramento de Serviço do Azure.

Clonar o modelo do Azure Developer CLI

  1. Clone o modelo de demonstração do armazenamento do AKS do repositório Azure-Samples, usando o comando azd init com o parâmetro --template.

    azd init --template Azure-Samples/aks-store-demo
    
  2. Insira um nome de ambiente para seu projeto que usa apenas caracteres alfanuméricos e hifens, como aks-azdqs-1.

    Enter a new environment name: aks-azdqs-1
    

Entre na sua conta do Azure Cloud

O modelo azd contém todo o código necessário para criar os serviços, mas é necessário entrar em sua conta do Azure para hospedar o aplicativo no AKS.

  1. Entre em sua conta usando o comando azd auth login.

    azd auth login
    
  2. Copie o código do dispositivo que aparece na saída e pressione Enter para entrar.

    Start by copying the next code: XXXXXXXXX
    Then press enter and continue to log in from your browser...
    

    Importante

    Caso esteja usando uma máquina virtual fora da rede ou o Codespace do GitHub, determinadas políticas de segurança do Azure causarão conflitos quando usadas para entrar com azd auth login. Caso encontre um problema aqui, poderá seguir a solução alternativa de autenticação da azd fornecida abaixo, que envolve o uso de uma solicitação curl para a URL do localhost para a qual você foi redirecionado após a execução de [azd auth login][az-auth-login].

  3. Autentique-se com suas credenciais na página de entrada da sua organização.

  4. Confirme se você está tentando se conectar por meio da CLI do Azure.

  5. Verifique a mensagem "Autenticação de código do dispositivo concluída. Conectado ao Azure." aparece no seu terminal original.

    Waiting for you to complete authentication in the browser...
    Device code authentication completed.
    Logged in to Azure.
    

solução alternativa de autenticação do azd

Esta solução alternativa exige que você tenha a CLI do Azure instalada.

  1. Abra uma janela de terminal e faça logon com a CLI do Azure usando o comando az login com o parâmetro --scope definido como https://graph.microsoft.com/.default.

    az login --scope https://graph.microsoft.com/.default
    

    Você deverá ser redirecionado para uma página de autenticação em uma nova guia para criar um token de acesso do navegador, conforme mostrado no exemplo a seguir:

    https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?clientid=<your_client_id>.
    
  2. Copie o URL do localhost da página da Web que você recebeu depois de tentar entrar com azd auth login.

  3. Em uma nova janela de terminal, use a solicitação curl a seguir para fazer logon. Substitua o espaço reservado <localhost> pelo URL do localhost copiado na etapa anterior.

    curl <localhost>
    

    Um logon bem-sucedido gera uma página da Web HTML, conforme mostrado no exemplo a seguir:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="refresh" content="60;url=https://docs.microsoft.com/cli/azure/">
        <title>Login successfully</title>
        <style>
            body {
                font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            }
    
            code {
                font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
                display: inline-block;
                background-color: rgb(242, 242, 242);
                padding: 12px 16px;
                margin: 8px 0px;
            }
        </style>
    </head>
    <body>
        <h3>You have logged into Microsoft Azure!</h3>
        <p>You can close this window, or we will redirect you to the <a href="https://docs.microsoft.com/cli/azure/">Azure CLI documentation</a> in 1 minute.</p>
        <h3>Announcements</h3>
        <p>[Windows only] Azure CLI is collecting feedback on using the <a href="https://learn.microsoft.com/windows/uwp/security/web-account-manager">Web Account Manager</a> (WAM) broker for the login experience.</p>
        <p>You may opt-in to use WAM by running the following commands:</p>
        <code>
            az config set core.allow_broker=true<br>
            az account clear<br>
            az login
        </code>
    </body>
    </html>
    
  4. Feche o terminal atual e abra o terminal original. Você deverá ver uma lista JSON de suas assinaturas.

  5. Copie o campo id da assinatura que você deseja usar.

  6. Defina a assinatura usando o comando az account set.

    az account set --subscription <subscription_id>
    

Criar e implantar recursos para o cluster

azd executa todos os ganchos dentro da azd-hooks pasta para pré-registro, provisionar e implantar os serviços de aplicativo.

O modelo azd para este início rápido cria um novo grupo de recursos com um cluster do AKS e um cofre de chaves do Azure. O cofre de chaves armazena segredos do cliente e executa os serviços no namespace pets

  1. Crie todos os recursos do aplicativo usando o comando azd up.

    azd up
    
  2. Selecione uma assinatura do Azure para seu uso de cobrança.

    ? Select an Azure Subscription to use:  [Use arrows to move, type to filter]
    > 1. My Azure Subscription (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
    
  3. Selecione uma região para a qual implantar seu aplicativo.

    Select an Azure location to use:  [Use arrows to move, type to filter]
      1.  (South America) Brazil Southeast (brazilsoutheast)
      2.  (US) Central US (centralus)
      3.  (US) East US (eastus)
    > 43. (US) East US 2 (eastus2)
      4.  (US) East US STG (eastusstg)
      5.  (US) North Central US (northcentralus)
      6.  (US) South Central US (southcentralus)
    

    azd executa automaticamente os comandos de pré-provisionamento e pós-provisionamento, para criar os recursos para o aplicativo. A conclusão desse processo pode levar alguns minutos. Após a conclusão, você deverá visualizar uma saída semelhante ao seguinte exemplo:

    SUCCESS: Your workflow to provision and deploy to Azure completed in 9 minutes 40 seconds.
    

Testar o aplicativo

Quando o aplicativo é executado, um serviço de Kubernetes expõe o front-end do aplicativo à Internet. A conclusão desse processo pode levar alguns minutos. Para gerenciar um cluster do Kubernetes, use o cliente de linha de comando do Kubernetes, kubectl. kubectl já está instalado durante azd up.

  1. Defina seu namespace como o namespace de demonstração pets usando o comando kubectl set-context.

    kubectl config set-context --current --namespace=pets
    
  2. Verifique o status dos pods implantados usando o comando kubectl get pods. Garanta que todos os pods estejam Running, antes de continuar.

    kubectl get pods
    
  3. Verifique se há um endereço IP público para o aplicativo e monitore o progresso usando o comando kubectl get service com o argumento --watch.

    kubectl get service store-front --watch
    

    A saída EXTERNAL-IP do serviço store-front será mostrada inicialmente como pendente:

    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
    store-front   LoadBalancer   10.0.100.10   <pending>     80:30025/TCP   4h4m
    
  4. Quando o endereço EXTERNAL-IP for alterado de pendente para um endereço IP público real, use CTRL-C para interromper o processo de inspeção do kubectl.

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

    NAME          TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)        AGE
    store-front   LoadBalancer   10.0.100.10   20.62.159.19   80:30025/TCP   4h5m
    
  5. Abra um navegador da Web no endereço IP externo do serviço para conferir o aplicativo do Microsoft Azure Store em ação.

    Captura de tela do aplicativo de exemplo do AKS Store.

Excluir o cluster

Após concluir o início rápido, limpe os recursos desnecessários para evitar encargos do Azure.

  1. Exclua todos os recursos criados no início rápido usando o comando azd down.

    azd down
    
  2. Confirme sua decisão de remover todos os recursos usados de sua assinatura digitando y e pressionando Enter.

    ? Total resources to delete: 14, are you sure you want to continue? (y/N)
    
  3. Permitir que a limpeza reutilize as variáveis de início rápido, se aplicável, digitando y e pressionando Enter.

    [Warning]: These resources have soft delete enabled allowing them to be recovered for a period or time after deletion. During this period, their names may not be reused. In the future, you can use the argument --purge to skip this confirmation.
    
    ? Would you like to permanently delete these resources instead, allowing their names to be reused? (y/N)
    

    Depois que os recursos forem excluídos, você deverá visualizar uma saída semelhante ao exemplo a seguir:

    SUCCESS: Your application was removed from Azure in 14 minutes 30 seconds.
    

Observação

Este aplicativo de amostra foi criado para demonstrar e não representa todas as práticas recomendadas dos aplicativos do Kubernetes. Para obter diretrizes sobre como criar soluções completas com o AKS para produção, consulte Diretrizes sobre a solução AKS.

Próximas etapas

Neste início rápido, você implantou um cluster do Kubernetes e um simples aplicativo com vários contêineres. Esse aplicativo de exemplo é apenas para fins de demonstração e não representa todas as melhores práticas para aplicativos do Kubernetes. Para obter diretrizes sobre como criar soluções completas com o AKS para produção, consulte Diretrizes sobre a solução AKS.

Para saber mais sobre o AKS e percorrer um código completo de exemplo de implantação, prossiga para o tutorial de cluster do Kubernetes.