Implementar aplicações do Windows
Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server
Este tutorial descreve como implementar uma aplicação de exemplo ASP.NET num contentor do Windows Server no cluster do Azure Kubernetes Service (AKS) no AKS ativado pelo Arc e, em seguida, testar e dimensionar a sua aplicação. Também irá aprender a associar um nó do 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, veja Kubernetes core concepts for AKS enabled by Azure Arc (Conceitos fundamentais do Kubernetes para o AKS ativado pelo Azure Arc).
Antes de começar
Certifique-se de que cumpriu os seguintes requisitos:
- Um cluster Azure Kubernetes Service com, pelo menos, um nó de trabalho do Windows em execução.
- Um ficheiro kubeconfig para aceder ao cluster.
- O módulo AksHci do PowerShell está instalado.
Quando seguir os procedimentos:
- Execute os comandos numa janela administrativa do PowerShell.
- Certifique-se de que as cargas de trabalho específicas do SO se baseiam no anfitrião de contentor adequado. Se o cluster do Kubernetes tiver uma mistura de nós de trabalho do Linux e do Windows, pode utilizar seletores de nós ou taints e tolerâncias. Para obter mais informações, veja utilizar seletores de nós, taints e tolerâncias.
Implementar a aplicação
Um ficheiro de manifesto do Kubernetes define um estado pretendido para o cluster, como as imagens de contentor a executar. Nestes procedimentos, é utilizado um manifesto para criar todos os objetos necessários para executar o ASP.NET aplicação de exemplo num contentor do Windows Server. Este manifesto inclui uma implementação do Kubernetes para o ASP.NET aplicação de exemplo e um serviço do Kubernetes externo para aceder à aplicação a partir da Internet.
A aplicação de exemplo ASP.NET é fornecida como parte do .NET Framework exemplos e é executada num contentor do Windows Server. O AKS Arc requer que os contentores do Windows Server se baseiem em imagens do Windows Server 2019.
O ficheiro de manifesto do Kubernetes também tem de definir um seletor de nós para indicar ao cluster para executar o ASP.NET pod da aplicação de exemplo num nó que possa executar contentores do Windows Server.
Create um ficheiro com o nome sample.yaml
e 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
Implemente a aplicação com o kubectl apply
comando e especifique o nome do seu manifesto YAML:
kubectl apply -f sample.yaml
O seguinte resultado de exemplo mostra que a implementação e o serviço foram criados com êxito:
deployment.apps/sample created
service/sample created
Testar a aplicação
Quando a aplicação é executada, um serviço do Kubernetes expõe o front-end da aplicação à Internet. Este processo pode demorar alguns minutos a concluir. Ocasionalmente, o serviço pode demorar mais do que alguns minutos a aprovisionar. Aguarde até 10 minutos nestes casos.
Para monitorizar o progresso, utilize o kubectl get service
comando com o --watch
argumento :
kubectl get service sample --watch
Inicialmente, o EXTERNAL-IP do serviço de exemplo é apresentado 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 IP EXTERNO mudar de pendente para um endereço IP público real, utilize CTRL-C
para parar o kubectl
processo de watch. O resultado de exemplo seguinte 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 a aplicação de exemplo em ação, abra um browser para o endereço IP externo do seu serviço.
Se a ligação exceder o limite de tempo quando tentar carregar a página, verifique se a aplicação de exemplo está pronta ao executar o kubectl get pods --watch
comando . Por vezes, o endereço IP externo está disponível antes do início do contentor do Windows.
Dimensionar pods de aplicações
Criámos uma única réplica do front-end da aplicação. Para ver o número e o estado dos pods no cluster, utilize o comando da kubectl get
seguinte forma:
kubectl get pods -n default
Para alterar o número de pods na implementação de exemplo , utilize o kubectl scale
comando . O exemplo seguinte 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. Um ou dois minutos depois, os pods adicionais estão disponíveis no seu cluster:
kubectl get pods -n default
Passos seguintes
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários