Compartilhar via


Implantar um contêiner do Windows Server em um cluster do Azure Kubernetes Service (AKS) usando o portal do Azure

O AKS (Serviço de Kubernetes do Azure) é um serviço de Kubernetes gerenciado que permite implantar e gerenciar clusters rapidamente. Neste artigo, você implantará um cluster do AKS que executa contêineres do Windows Server usando o portal do Microsoft Azure. Também implanta um aplicativo de exemplo do ASP.NET em um contêiner do Windows Server para o cluster.

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).

Criar um cluster AKS

  1. Entre no portal do Azure.

  2. Na home page do portal do Azure, selecione Criar um recurso.

  3. Na seção Categorias, selecione Contêineres>Serviço de Kubernetes do Azure (AKS).

  4. Na guia Básico, configure os seguintes valores:

    • Em Detalhes do projeto:
      • Assinatura: selecione a assinatura do Azure que você deseja usar para este cluster do AKS.
      • Grupo de recursos: selecione Criar, insira um nome de grupo de recursos, como myResourceGroup, e selecione Ok. Embora você possa selecionar um grupo de recursos existente, para fins de teste ou avaliação, recomendamos criar um grupo de recursos para hospedar temporariamente esses recursos e evitar afetar suas cargas de trabalho de produção ou desenvolvimento.
    • Em Detalhes do cluster:
      • Configuração predefinida do cluster: selecione Desenvolvimento/Teste. Para obter mais detalhes sobre configurações predefinidas, confira Predefinições de configuração de cluster no portal do Azure.

        Observação

        Você pode alterar a configuração predefinida ao criar o cluster selecionando Comparar as configurações predefinidas e escolhendo uma opção diferente. Captura de tela de Criar cluster do AKS – opções predefinidas do portal.

      • Nome do cluster do Kubernetes: insira um nome de cluster como myAKSCluster.

      • Região: selecione uma região, como Leste dos EUA 2.

      • Zonas de disponibilidade: selecione Nenhum.

      • Tipo de preço do AKS: selecione Gratuito.

      • Deixe os valores padrão para as configurações restantes e selecione Avançar.

        Captura de tela mostrando como configurar um cluster AKS no portal do Azure.

  5. Na guia Pools de nós, configure os seguintes valores:

    • Selecione Adicionar pool de nós e insira um Nome do pool de nós, como npwin. Para um pool de nós do Windows, o nome deve ter seis caracteres ou menos.

    • Modo: selecione Usuário.

    • SKU do sistema operacional: selecione Windows 2022.

    • Zonas de disponibilidade: selecione Nenhum.

    • Deixe a caixa de seleção Habilitar instâncias de Spot do Azure desmarcada.

    • Tamanho do nó: selecione Escolher um tamanho. Na página Selecionar um tamanho de VM, selecione D2s_v3 e, em seguida, Selecionar.

    • Deixe os valores padrão para as configurações restantes e selecione Adicionar.

      Captura de tela que mostra como criar um pool de nós que executa o Windows Server 2022.

  6. Selecione Examinar + criar para executar a validação na configuração do cluster. Depois de concluir a validação, selecione Criar.

    Leva alguns minutos para o cluster do AKS ser criado. Quando sua implantação for concluída, navegue até o recurso selecionando Ir para o recurso ou navegando até o grupo de recursos do cluster do AKS e selecionando o recurso do AKS.

Conectar-se ao cluster

Utilize o kubectl, o cliente de linha de comando do Kubernetes, para gerenciar seus clusters do Kubernetes. kubectl já está instalado se você usa o Azure Cloud Shell. Caso não esteja familiarizado com o Cloud Shell, revise a Visão Geral do Azure Cloud Shell.

  1. Abra o Cloud Shell selecionando o botão >_ na parte superior da página do portal do Microsoft Azure.

  2. Configure o kubectl para se conectar ao cluster do Kubernetes usando o comando az aks get-credentials. O comando a seguir baixa as credenciais e configura a CLI do Kubernetes para usá-las.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Verifique a conexão com seu cluster usando o comando kubectl get nodes, que retorna uma lista de nós de cluster.

    kubectl get nodes
    

    O exemplo de saída a seguir mostra todos os nós do cluster. Verifique se o status de todos os nós é Pronto:

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-agentpool-11741175-vmss000000   Ready    agent   8m17s   v1.29.9
    aks-agentpool-11741175-vmss000001   Ready    agent   8m17s   v1.29.9
    aksnpwin000000                      Ready    agent   8m17s   v1.29.9
    aks-userpool-11741175-vmss000000    Ready    agent   8m17s   v1.29.9
    aks-userpool-11741175-vmss000001    Ready    agent   8m17s   v1.29.9
    

Implantar o aplicativo

Um arquivo de manifesto do Kubernetes define um estado desejado para o cluster, como as imagens de contêiner a serem executadas. Neste início rápido, você usa um arquivo de manifesto para criar todos os objetos necessários para executar o aplicativo de exemplo do ASP.NET em um contêiner do Windows Server. Esse arquivo de manifesto inclui uma implantação do Kubernetes para o aplicativo de exemplo ASP.NET e um serviço do Kubernetes externo para acessar o aplicativo da Internet.

O aplicativo de exemplo ASP.NET é fornecido como parte das Amostras .NET Framework e é executado em um contêiner do Windows Server. O arquivo de manifesto do Kubernetes precisa definir um seletor de nó para instruir o cluster do AKS a executar o pod do aplicativo de exemplo ASP.NET em um nó que possa executar contêineres do Windows Server.

  1. Crie um arquivo chamado sample.yaml e cole a definição YAML a seguir.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sample
      labels:
        app: sample
    spec:
      replicas: 1
      template:
        metadata:
          name: sample
          labels:
            app: sample
        spec:
          nodeSelector:
            "kubernetes.io/os": windows
          containers:
          - name: sample
            image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
            resources:
              limits:
                cpu: 1
                memory: 800M
            ports:
              - containerPort: 80
      selector:
        matchLabels:
          app: sample
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: sample
    spec:
      type: LoadBalancer
      ports:
      - protocol: TCP
        port: 80
      selector:
        app: sample
    

    Para obter um detalhamento dos arquivos de manifesto YAML, confira Implantações e manifestos YAML.

    Se você criar e salvar o arquivo YAML localmente, poderá carregar o arquivo de manifesto no diretório padrão no CloudShell selecionando o botão Carregar/Baixar arquivos e selecionando o arquivo no sistema de arquivos local.

  2. Implante o aplicativo usando o comando kubectl apply e especifique o nome do manifesto YAML.

    kubectl apply -f sample.yaml
    

    A saída de amostra a seguir mostra a implantação e o serviço criados com sucesso:

    deployment.apps/sample created
    service/sample created
    

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. Ocasionalmente, o serviço pode levar mais do que alguns minutos para ser provisionado. Aguarde até 10 minutos para o provisionamento.

  1. Verifique o status dos pods implantados usando o comando kubectl get pods. Faça com que todos os pods estejam Running antes de continuar.

    kubectl get pods
    
  2. Monitore o andamento usando o comando kubectl get service com o argumento --watch.

    kubectl get service sample --watch
    

    Inicialmente, a saída mostra o EXTERNAL-IP para o serviço de exemplo como pending:

    NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
    sample             LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s
    
  3. 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.

  4. Para ver o aplicativo de exemplo em ação, abra um navegador da Web no endereço IP externo do seu serviço.

    Captura de tela que mostra a navegação para o aplicativo de exemplo do ASP.NET.

Excluir recursos

Se você não planeja passar pelo tutorial do AKS, exclua seu cluster para evitar incorrer em encargos do Azure.

  1. No portal do Azure, navegue até seu grupo de recursos.

  2. Selecione Excluir grupo de recursos.

  3. Insira o nome de seu grupo de recursos para confirmar a exclusão e selecione Excluir.

  4. Na caixa de diálogo Confirmação de exclusão, selecione Excluir.

    Observação

    Se o cluster do AKS tiver sido criado com a identidade gerenciada atribuída pelo sistema (opção de identidade padrão usada neste guia de início rápido), a identidade será gerenciada pela plataforma e não exigirá remoção.

Próximas etapas

Neste início rápido, você implantou um cluster Kubernetes e implantou um aplicativo de amostra ASP.NET em um contêiner do Windows Server para ele. 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 para percorrer um exemplo completo de código para implantação, continue no tutorial do cluster Kubernetes.