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).
- Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
- Se você não estiver familiarizado com o Azure Cloud Shell, consulte Visão geral do Azure Cloud Shell.
- Verifique se a identidade que você está usando para criar seu cluster tem as permissões mínimas apropriadas. Para obter mais detalhes sobre acesso e identidade para AKS, consulte Opções de acesso e identidade para o Serviço Kubernetes do Azure (AKS).
Criar um cluster do AKS
Inicie sessão no portal do Azure.
Na home page do portal do Azure, selecione Criar um recurso.
Na seção Categorias, selecione Contêineres>Serviço Kubernetes do Azure (AKS).
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.
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.
- Em Detalhes do projeto:
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.
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.
Abra o Cloud Shell selecionando o
>_
botão na parte superior da página do portal do Azure.Configure
kubectl
para se conectar ao cluster do Kubernetes usando oaz 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
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.
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.
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.
Verifique o status dos pods implantados usando o
kubectl get pods
comando. Faça com que todos os pods estejamRunning
antes de prosseguir.kubectl get pods
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
Quando o endereço EXTERNAL-IP mudar de pendente para um endereço IP público real, use
CTRL-C
para interromper okubectl
processo de monitoramento.Veja o aplicativo de exemplo em ação abrindo um navegador da Web para o endereço IP externo do seu serviço.
Eliminar recursos
Se você não planeja passar pelo tutorial do AKS, exclua seu cluster para evitar incorrer em cobranças do Azure.
No portal do Azure, navegue até seu grupo de recursos.
Selecione Eliminar grupo de recursos.
Digite o nome do seu grupo de recursos para confirmar a exclusão e selecione Excluir.
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.
Azure Kubernetes Service