Partilhar via


Implantar aplicativos do Windows

Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server

Este tutorial descreve como implantar um aplicativo de exemplo de ASP.NET em um contêiner do Windows Server no cluster do Serviço Kubernetes do Azure (AKS) no AKS habilitado pelo Arc e, em seguida, testar e dimensionar seu aplicativo. Você também aprenderá como associar um nó do Windows a um domínio do Ative Directory.

Este tutorial pressupõe uma compreensão básica dos conceitos do Kubernetes. Para obter mais informações, consulte Conceitos principais do Kubernetes para AKS habilitado pelo Azure Arc.

Antes de começar

Certifique-se de que cumpriu os seguintes requisitos:

  • Um cluster do Serviço Kubernetes do Azure com pelo menos um nó de trabalho do Windows em execução.
  • Um arquivo kubeconfig para acessar o cluster.
  • O módulo AksHci PowerShell está instalado.

Quando você segue os procedimentos:

  • Execute os comandos em uma janela de administrador do PowerShell.
  • Certifique-se de que as cargas de trabalho específicas do SO aterrissem no host de contêiner apropriado. Se o cluster do Kubernetes tiver uma mistura de nós de trabalho do Linux e do Windows, você poderá usar seletores de nós ou manchas e tolerâncias. Para obter mais informações, consulte Usando seletores de nó e manchas e tolerâncias.

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. Nesses procedimentos, um manifesto é usado para criar todos os objetos necessários para executar o aplicativo de exemplo ASP.NET em um contêiner do Windows Server. Esse 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 ASP.NET é fornecido como parte dos exemplos do .NET Framework e é executado em um contêiner do Windows Server. O AKS Arc requer que os contêineres do Windows Server sejam baseados em imagens do Windows Server 2019.

O arquivo de manifesto do Kubernetes também deve definir um seletor de nó para dizer ao cluster para executar o pod do aplicativo de exemplo do ASP.NET em um nó que possa executar contêineres do Windows Server.

Crie um arquivo chamado sample.yamle copie/cole a 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:
        "beta.kubernetes.io/os": windows
      containers:
      - name: sample
        image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
        resources:
          limits:
            cpu: 1
            memory: 800M
          requests:
            cpu: .1
            memory: 300M
        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

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 que a implantação e o serviço foram 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 nestes casos.

Para monitorar o progresso, use o kubectl get service comando com o --watch argumento:

kubectl get service sample --watch

Inicialmente, o EXTERNAL-IP para o serviço de exemplo é mostrado 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 o kubectl processo de monitoramento. 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
sample  LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

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

Captura de tela da página inicial do aplicativo de exemplo ASP.NET para Windows implantado em um cluster AKS.

Se a conexão expirar quando você tentar carregar a página, verifique se o aplicativo de exemplo está pronto executando o kubectl get pods --watch comando. Às vezes, o endereço IP externo está disponível antes do contêiner do Windows iniciar.

Dimensionar pods de aplicação

Criamos uma única réplica do front-end do aplicativo. Para ver o número e o estado dos pods no cluster, use o kubectl get comando da seguinte maneira:

kubectl get pods -n default

Para alterar o número de pods na implantação de exemplo , use o kubectl scale comando. O exemplo a seguir aumenta o número de pods front-end para 3:

kubectl scale --replicas=3 deployment/sample

Execute kubectl get pods novamente para verificar se os pods foram criados. Um ou dois minutos depois, os pods adicionais estão disponíveis no seu cluster:

kubectl get pods -n default

Próximos passos