Partilhar via


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

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

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

Criar um cluster do AKS

  1. Inicie sessão 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 Kubernetes do Azure (AKS).

  4. Na guia Noções básicas, defina as seguintes configurações:

    • Em Detalhes do projeto:
      • Assinatura: selecione a assinatura do Azure que você deseja usar para este cluster AKS.
      • Grupo de recursos: selecione Criar novo, 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 a criação de 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, consulte Predefinições de configuração de cluster no portal do Azure.

        Nota

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

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

      • Região: selecione uma região, como East US 2.

      • Zonas de disponibilidade: Selecione Nenhum.

      • Nível de preço do AKS: Selecione Gratuito.

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

        Captura de ecrã a mostrar como configurar um cluster AKS no portal do Azure.

  5. Na guia Pools de nós, defina as seguintes configurações:

    • Selecione Adicionar pool de nós e insira um nome de 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.

    • OS SKU: Selecione Windows 2022.

    • Zonas de disponibilidade: Selecione Nenhum.

    • Deixe a caixa de seleção Habilitar instâncias 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, selecione Selecionar.

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

      Captura de tela mostrando como criar um pool de nós executando o Windows Server 2022.

  6. Selecione Rever + criar para executar a validação na configuração do cluster. Após a conclusão da validação, selecione Criar.

    A criação do cluster do AKS demora alguns minutos. Quando a implantação estiver concluída, navegue até o recurso selecionando Ir para o recurso ou navegando até o grupo de recursos do cluster AKS e selecionando o recurso AKS.

Ligar ao cluster

Você usa kubectl, o cliente de linha de comando do Kubernetes, para gerenciar seus clusters Kubernetes. kubectl já está instalado se você usar o Azure Cloud Shell. Se você não estiver familiarizado com o Cloud Shell, consulte 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 Azure.

  2. Configure kubectl para se conectar ao cluster do Kubernetes usando o az aks get-credentials comando. O comando a seguir baixa 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 o cluster usando o kubectl get nodes comando, que retorna uma lista dos nós do cluster.

    kubectl get nodes
    

    A saída de exemplo a seguir mostra todos os nós no cluster. Verifique se o status de todos os nós está 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
    

Implementar a aplicação

Um arquivo de manifesto do Kubernetes define um estado desejado para o cluster, como quais imagens de contêiner devem ser 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 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 Kubernetes externo para acessar o aplicativo da Internet.

O aplicativo de exemplo de ASP.NET é fornecido como parte dos exemplos do .NET Framework e é executado em um contêiner do Windows Server. O arquivo de manifesto do Kubernetes deve definir um seletor de nó para dizer ao cluster AKS para executar o pod do aplicativo de exemplo ASP.NET em um nó que possa executar contêineres do Windows Server.

  1. Crie um arquivo nomeado sample.yaml e cole na seguinte definição de YAML.

    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, consulte Implantações e manifestos YAML.

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

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

    kubectl apply -f sample.yaml
    

    A saída de exemplo a seguir mostra a implantação e o serviço criados com êxito:

    deployment.apps/sample created
    service/sample created
    

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

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

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

    kubectl get service sample --watch
    

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

    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 mudar de pendente para um endereço IP público real, use CTRL-C para interromper o kubectl processo de monitoramento.

  4. Veja o aplicativo de exemplo em ação abrindo um navegador da Web para o endereço IP externo do seu serviço.

    Captura de tela da navegação para ASP.NET aplicativo de exemplo.

Eliminar recursos

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

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

  2. Selecione Eliminar grupo de recursos.

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

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

    Nota

    O cluster AKS foi criado com identidade gerenciada atribuída ao sistema (opção de identidade padrão usada neste início rápido), a identidade é gerenciada pela plataforma e não requer remoção.

Próximos passos

Neste início rápido, você implantou um cluster Kubernetes e, em seguida, implantou um aplicativo de exemplo de ASP.NET em um contêiner do Windows Server 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.