Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: AKS no Windows Server
Este tutorial descreve como implantar um aplicativo de exemplo ASP.NET em um contêiner de Windows Server no cluster AKS (Serviço de Kubernetes do Azure) no AKS no Windows Server e, em seguida, testar e dimensionar seu aplicativo. Você também aprende a adicionar um nó Windows a um domínio do Active Directory.
Este tutorial pressupõe uma compreensão básica dos conceitos do Kubernetes. Para obter mais informações, consulte os principais conceitos do Kubernetes para AKS no Windows Server.
Antes de começar
Certifique-se de atender aos seguintes requisitos:
- Um cluster do Serviço de 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 sistema operacional cheguem ao host de contêiner apropriado. Se o cluster do Kubernetes tiver uma combinação de nós de trabalho Linux e Windows, você poderá usar seletores de nó ou taints e tolerâncias. Para obter mais informações, consulte seletores de nós e taints e tolerâncias.
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. 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. Este manifesto inclui uma implantação no Kubernetes para o aplicativo de exemplo ASP.NET e um serviço externo do Kubernetes para acessar o aplicativo pela 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 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 instruir seu cluster a executar o pod do aplicativo ASP.NET de exemplo em um nó que possa executar contêineres do Windows Server.
Crie um arquivo chamado sample.yamle copie/cole a seguinte definição 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 manifesto YAML:
kubectl apply -f sample.yaml
A seguinte saída de exemplo mostra que a implantação e o serviço foram 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 de alguns minutos para ser provisionado. Aguarde até dez minutos nesses 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 for alterado de pendente para um endereço IP público real, use CTRL-C para interromper o processo de inspeção do kubectl. A seguinte saída de exemplo 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 no endereço IP externo do serviço.
Se a conexão expirar quando você tentar carregar a página, verifique se o aplicativo de exemplo está pronto executando o comando kubectl get pods --watch. Às vezes, o endereço IP externo está disponível antes que o contêiner do Windows seja iniciado.
Dimensionar pods de aplicativos
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 de front-end para 3:
kubectl scale --replicas=3 deployment/sample
Execute kubectl get pods novamente para verificar se os pods foram criados. Após cerca de um minuto, os pods adicionais estarão disponíveis em seu cluster:
kubectl get pods -n default