Partilhar via


Guia de início rápido: implantar um cluster do Serviço Kubernetes do Azure (AKS) usando a CLI do Azure Developer

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

  • Baixe e instale a CLI do Azure Developer (azd).
  • Clone aplicativos de um modelo de CLI do Azure Developer (azd modelo).
  • Implante um cluster AKS usando a CLI do Azure Developer (azd).
  • Execute 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 recipientes feitos a azd partir do modelo.

Nota

Para começar a provisionar rapidamente um cluster AKS, este artigo inclui etapas para implantar um cluster com configurações padrão apenas 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 ela se alinha aos seus requisitos de negócios.

Antes de começar

Este guia de introdução parte do princípio de que possui conhecimentos básicos dos conceitos do Kubernetes. Para obter mais informações, consulte Conceitos principais do Kubernetes para o Serviço Kubernetes do Azure (AKS).

Revise o código do aplicativo

Você pode revisar 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 exemplo da Loja Azure.

  • Vitrine: aplicativo Web para que os clientes visualizem produtos e façam pedidos.
  • Serviço do produto: Mostra as informações do produto.
  • Serviço de pedidos: Faz pedidos.
  • Rabbit MQ: Fila de mensagens para uma fila de pedidos.

Nota

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

Clone o modelo da CLI do Azure Developer

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

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

    Enter a new environment name: aks-azdqs-1
    

Iniciar sessão na sua conta do Azure Cloud

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

  1. Inicie sessão na sua conta utilizando o azd auth login comando.

    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

    Se você estiver usando uma máquina virtual fora da rede ou o GitHub Codespace, determinadas políticas de segurança do Azure causarão conflitos quando usadas para entrar com azd auth logino . Se você tiver um problema aqui, você pode seguir a solução alternativa azd auth fornecida abaixo, que envolve o uso de uma curl solicitação para a URL do host local para a qual você foi redirecionado depois de executar [azd auth login][az-auth-login].

  3. Autentique-se com as suas credenciais na página de início de sessão da sua organização.

  4. Confirme se você está tentando se conectar a partir da CLI do Azure.

  5. Verifique a mensagem "Autenticação do 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.
    

AZD Auth Solução alternativa

Esta solução alternativa requer 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 az login comando com o --scope parâmetro definido como https://graph.microsoft.com/.default.

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

    Você deve 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 localhost da página da Web que você recebeu depois de tentar entrar com azd auth logino .

  3. Numa nova janela do terminal, utilize o seguinte curl pedido para iniciar sessão. Certifique-se de substituir o espaço reservado <localhost> pelo URL do host local copiado na etapa anterior.

    curl <localhost>
    

    Um login 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ê verá uma lista JSON de suas assinaturas.

  5. Copie o id campo da subscrição que pretende utilizar.

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

    az account set --subscription <subscription_id>
    

Criar e implantar recursos para seu cluster

azdExecuta todos os ganchos dentro da pastaazd-hooks aplicativo.

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

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

    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 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 preprovisioning e postprovisioning para criar os recursos para seu aplicativo. Este processo pode demorar alguns minutos a concluir. Depois de concluído, você verá uma saída semelhante ao exemplo a seguir:

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

Testar a aplicação

Quando o aplicativo é executado, um serviço Kubernetes expõe o front-end do aplicativo à Internet. Este processo pode demorar alguns minutos a concluir. Para gerenciar um cluster Kubernetes, use o cliente de linha de comando Kubernetes, kubectl. kubectl já está instalado durante azd upo .

  1. Defina seu namespace como o namespace pets demo usando o kubectl set-context comando.

    kubectl config set-context --current --namespace=pets
    
  2. Verifique o status dos pods implantados usando o kubectl get pods comando. Certifique-se de que todos os pods estão Running antes de prosseguir.

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

    kubectl get service store-front --watch
    

    A saída EXTERNAL-IP para o store-front serviço inicialmente mostra 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 mudar de pendentemonitoramento.

    A saída de exemplo a seguir mostra um endereço 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 seu serviço para ver o aplicativo da Loja Azure em ação.

    Captura de ecrã da aplicação de exemplo AKS Store.

Eliminar o cluster

Quando terminar o início rápido, limpe recursos desnecessários para evitar cobranças do Azure.

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

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

    ? Total resources to delete: 14, are you sure you want to continue? (y/N)
    
  3. Permita limpar para reutilizar 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ê verá uma saída semelhante ao exemplo a seguir:

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

Nota

Este aplicativo de exemplo é para fins de demonstração e não representa todas as práticas recomendadas para aplicativos Kubernetes. Para obter orientação sobre como criar soluções completas com o AKS para produção, consulte Orientação de solução AKS.

Próximos passos

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

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