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 guia descreve como implantar um aplicativo de vários contêineres que inclui um front-end da Web e uma instância de banco de dados Redis no cluster do Kubernetes no AKS no Windows Server. Você também aprenderá a testar e dimensionar seu aplicativo.
Este guia de instruções pressupõe uma compreensão básica dos conceitos do Kubernetes. Para obter mais informações, consulte os principais conceitos do Kubernetes.
Antes de começar
Verifique se você tem os seguintes pré-requisitos:
- Um cluster do AKS com pelo menos um nó de trabalho Linux em execução.
- Um arquivo kubeconfig para acessar o cluster.
- O módulo do AksHci PowerShell está instalado. Para obter mais informações, consulte Install-AksHci.
Ao executar os procedimentos:
- Execute os comandos em uma janela do PowerShell aberta com privilégios administrativos.
- 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.
Note
Implantar um cluster de destino que compartilha uma rede com outro cluster de destino pode levar a conflitos de endereço IP do balanceador de carga.
Conflitos de endereço IP podem acontecer se você implantar duas cargas de trabalho que usam portas diferentes em clusters de destino compartilhando o mesmo AksHciClusterNetwork objeto. Devido à maneira como os endereços IP e mapeamentos de porta são alocados dentro do Proxy de HA, ele pode levar à atribuição de endereços IP duplicados. Se isso ocorrer, uma ou ambas as cargas de trabalho poderão encontrar problemas aleatórios de conectividade de rede até que você reimplante suas cargas de trabalho. Ao implantar novamente suas cargas de trabalho, você pode usar a mesma porta, que atribui um endereço IP de serviço a cada carga de trabalho ou pode implantar novamente suas cargas de trabalho em clusters de destino que usam objetos diferentes AksHciClusterNetwork .
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. Este tutorial usa um manifesto para criar todos os objetos necessários para executar o aplicativo de votação Azure. Esse manifesto inclui duas implantações do Kubernetes: uma para os aplicativos Python de exemplo do Azure Vote e a outra para uma instância do Redis. Dois serviços do Kubernetes também são criados: um serviço interno para a instância do Redis e um serviço externo para acessar o aplicativo Azure Vote da Internet.
Crie um arquivo chamado azure-vote.yaml e copie/cole a seguinte definição yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: redis
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: <path to image>/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
Implante o aplicativo usando o kubectl apply comando e especifique o nome do manifesto YAML:
kubectl apply -f azure-vote.yaml
A saída de exemplo a seguir mostra implantações e serviços que foram criados com êxito:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
Testar o aplicativo
Quando o aplicativo é executado, um serviço do Kubernetes expõe o front-end do aplicativo para a Internet. A conclusão desse processo pode levar alguns minutos.
Para monitorar o progresso, use o kubectl get service comando com o --watch argumento:
kubectl get service azure-vote-front --watch
Inicialmente, o EXTERNAL-IP do serviço azure-vote-front é exibido como pendente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 22m
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 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
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 24m
Para ver o aplicativo Azure Vote em ação, abra um navegador da Web no endereço IP externo do serviço.
Dimensionar pods de aplicativos
Criamos uma única réplica do front-end do Aplicativo de Votação Azure e da instância do Redis. Para ver o número e o estado dos pods em seu cluster, use o kubectl get comando:
kubectl get pods -n default
A saída de exemplo a seguir mostra um pod de front-end e um pod de back-end:
NAME READY STATUS RESTARTS AGE
azure-vote-back-6bdcb87f89-g2pqg 1/1 Running 0 25m
azure-vote-front-84c8bf64fc-cdq86 1/1 Running 0 25m
Para alterar o número de pods na implantação azure-vote-front, use o comando kubectl scale. O exemplo a seguir aumenta o número de pods front-end para 5:
kubectl scale --replicas=5 deployment/azure-vote-front
Execute kubectl get pods novamente para verificar se pods adicionais foram criados. Após cerca de um minuto, os pods adicionais estarão disponíveis em seu cluster:
kubectl get pods -n default
Name READY STATUS RESTARTS AGE
azure-vote-back-6bdcb87f89-g2pqg 1/1 Running 0 31m
azure-vote-front-84c8bf64fc-cdq86 1/1 Running 0 31m
azure-vote-front-84c8bf64fc-56h64 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-djkp8 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-jmmvs 1/1 Running 0 80s
azure-vote-front-84c8bf64fc-znc6z 1/1 Running 0 80s
Próximas Etapas
Usar o Azure Monitor para monitorar o cluster e o aplicativo