Partilhar via


(PRECADO) Escala kubernetes pods e infraestrutura Kubernetes

Dica

Para a versão atualizada este tutorial que utiliza Azure Kubernetes Service, consulte Tutorial: Aplicações de escala em Azure Kubernetes Service (AKS).

Aviso

O Serviço de Contentores Azure (ACS) está a ser depreciado. Não estão a ser adicionadas novas funcionalidades ou funcionalidades ao ACS. Todas as APIs, experiência do portal, comandos CLI e documentação são marcados como precedidos.

Em 2017, introduzimos Azure Kubernetes Service (AKS) para simplificar a gestão, implantação e operações da Kubernetes. Se utilizar o orquestrador Kubernetes, por favor, emigre para a AKS até 31 de janeiro de 2020. Para começar, consulte migrar para Azure Kubernetes Service.

Para mais informações, consulte o anúncio de depreciação do Serviço de Contentores Azure no Azure.com.

Se tiver seguido os tutoriais, terá um cluster do Kubernetes a trabalhar no Azure Container Service e implementado a aplicação do Azure Voting.

Neste tutorial, parte cinco de sete, aumenta horizontalmente pods na aplicação e tenta dimensionar automaticamente. Também irá aprender a dimensionar o número de nós de agente da VM do Azure, para alterar a capacidade do cluster para alojar cargas de trabalho. As tarefas concluídas incluem:

  • Dimensionar manualmente pods do Kubernetes
  • Configurar pods de Dimensionamento automático com o front-end da aplicação
  • Dimensionar os nós de agente do Azure do Kubernetes

Nos tutoriais subsequentes, a aplicação Azure Vote é atualizada e o Log Analytics é configurado para monitorizar o cluster de Kubernetes.

Antes de começar

Nos tutoriais anteriores, foi compactada uma aplicação numa imagem de contentor, carregada esta imagem para o Azure Container Registry e criado um cluster de Kubernetes. A aplicação foi, em seguida, executada no cluster de Kubernetes.

Se ainda não concluiu estes passos e pretende acompanhar, regresse ao Tutorial 1 – Criar imagens de contentor.

Dimensionar pods manualmente

Deste modo, o front-end do Azure Vote e a instância de Redis foi implementada, cada um com uma réplica única. Para verificar, execute o comando kubectl get.

Vá para https://shell.azure.com abrir Cloud Shell no seu browser.

kubectl get pods

Resultado:

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-2549686872-4d2r5   1/1       Running   0          31m
azure-vote-front-848767080-tf34m   1/1       Running   0          31m

Altere manualmente o número de pods na implementação azure-vote-front com o comando kubectl scale. Este exemplo aumenta o número para 5.

kubectl scale --replicas=5 deployment/azure-vote-front

Execute kubectl get pods para verificar se o Kubernetes está a criar os pods. Um ou dois minutos depois, os pods adicionais estão em execução:

kubectl get pods

Resultado:

NAME                                READY     STATUS    RESTARTS   AGE
azure-vote-back-2606967446-nmpcf    1/1       Running   0          15m
azure-vote-front-3309479140-2hfh0   1/1       Running   0          3m
azure-vote-front-3309479140-bzt05   1/1       Running   0          3m
azure-vote-front-3309479140-fvcvm   1/1       Running   0          3m
azure-vote-front-3309479140-hrbf2   1/1       Running   0          15m
azure-vote-front-3309479140-qphz8   1/1       Running   0          3m

Dimensionar pods automaticamente

O Kubernetes suporta dimensionamento automático horizontal de pods para ajustar o número de pods numa implementação, consoante a utilização da CPU ou de outras métricas selecionadas.

Para utilizar o dimensionamento automático, os seus pods têm de ter os pedidos de CPU e os limites definidos. Na implementação azure-vote-front, o contentor de front-end pede 0,25 de CPU, com um limite de 0,5 de CPU. As definições têm o seguinte aspeto:

resources:
  requests:
     cpu: 250m
  limits:
     cpu: 500m

O exemplo seguinte utiliza o comando kubectl autoscale para dimensionar automaticamente o número de pods na implementação azure-vote-front. Aqui, se a utilização da CPU exceder 50%, o dimensionamento automático aumenta os pods para um máximo de 10.

kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10

Para ver o estado do dimensionamento automático, execute o seguinte comando:

kubectl get hpa

Resultado:

NAME               REFERENCE                     TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
azure-vote-front   Deployment/azure-vote-front   0% / 50%   3         10        3          2m

Após alguns minutos, com carga mínima na aplicação do Azure Vote, o número de réplicas de pod diminui automaticamente para 3.

Dimensionar os agentes

Se criou o seu cluster Kubernetes com comandos predefinidos no tutorial anterior, tem três nós de agente. Pode ajustar o número de agentes manualmente, se pretender mais ou menos cargas de trabalho do contentor no seu cluster. Utilize o comando az acs scale e especifique o número de agentes com o parâmetro --new-agent-count.

O exemplo seguinte aumenta o número de nós de agente para 4 no cluster do Kubernetes denominado myK8sCluster. O comando demora poucos minutos a concluir.

az acs scale --resource-group=myResourceGroup --name=myK8SCluster --new-agent-count 4

A saída do comando mostra o número de nós de agente no valor de agentPoolProfiles:count:

{
  "agentPoolProfiles": [
    {
      "count": 4,
      "dnsPrefix": "myK8SCluster-myK8SCluster-e44f25-k8s-agents",
      "fqdn": "",
      "name": "agentpools",
      "vmSize": "Standard_D2_v2"
    }
  ],
...

Passos seguintes

Neste tutorial, utilizou diferentes funcionalidades de dimensionamento no seu cluster Kubernetes. Tarefas abrangidas incluídas:

  • Dimensionar manualmente pods do Kubernetes
  • Configurar pods de Dimensionamento automático com o front-end da aplicação
  • Dimensionar os nós de agente do Azure do Kubernetes

Avance para o próximo tutorial para saber mais sobre a atualização da aplicação no Kubernetes.