Esta página mostra como colocar cargas de trabalho numa série de máquinas do Compute Engine específica para um desempenho ideal das cargas de trabalho nos clusters do Autopilot do Google Kubernetes Engine (GKE).
Certifique-se de que conhece o seguinte:
- Séries de máquinas e exemplos de utilização do Compute Engine
- Requisitos ao nível do kernel para as suas aplicações
Como funciona a seleção de séries de máquinas
Pode adicionar um seletor de nós cloud.google.com/machine-family
à especificação do pod para que o Autopilot atribua hardware específico do Compute Engine a esse pod. Por exemplo, pode escolher a série de máquinas C3 para pods que precisam de mais capacidade de processamento da CPU ou a série de máquinas N1 para pods que precisam de mais memória.
Para executar a sua carga de trabalho de forma ideal, o Autopilot aprovisiona um dos tipos de máquinas predefinidos da série de máquinas que selecionou.
Além do desempenho ideal do agrupamento, a escolha de uma série de máquinas específica oferece as seguintes vantagens:
Utilização eficiente dos nós: por predefinição, o Autopilot otimiza a utilização de recursos dos nós agendando em cada nó o maior número possível de pods que pedem a mesma série de máquinas. Esta abordagem otimiza a utilização de recursos no nó, o que melhora a relação preço/desempenho. Se a sua carga de trabalho precisar de acesso a todos os recursos no nó, pode configurar opcionalmente a carga de trabalho para pedir um pod para cada nó.
Cargas de trabalho com picos: pode configurar os pods para terem picos na capacidade de recursos não utilizada no nó definindo os limites de recursos acima dos pedidos. Para ver detalhes, consulte o artigo Configure o aumento rápido de pods no GKE.
Planeie um nó dedicado para cada Pod
Se tiver cargas de trabalho com utilização intensiva da CPU que precisem de acesso fiável a todos os recursos do nó, pode configurar opcionalmente o seu pod para que o Autopilot coloque um pod que peça uma série de máquinas no seu próprio nó.
Os nós dedicados por pod são recomendados quando executa cargas de trabalho de grande escala e com utilização intensiva da CPU, como cargas de trabalho de preparação de IA/ML ou cargas de trabalho em lote de computação de alto desempenho (HPC).
Escolha entre o agendamento com vários pods e com um único pod
Use as seguintes orientações para escolher um comportamento de agendamento de pods com base nos seus requisitos:
- Se tiver pods que possam partilhar recursos de computação com outros pods ou quiser otimizar os custos enquanto executa pods em hardware especializado, use o comportamento de agendamento predefinido de vários pods por nó.
- Se tiver pods que precisam de acesso fiável a recursos de nós completos ou quiser minimizar a probabilidade de interrupções causadas pela partilha de recursos de computação, peça um nó dedicado para cada pod.
Preços
O Compute Engine fatura-lhe a VM subjacente e qualquer hardware associado, além de um prémio pela gestão e escalabilidade dos nós do Autopilot. Para ver detalhes, consulte os preços do GKE.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
- Certifique-se de que tem um cluster do Autopilot existente com a versão 1.30.1-gke.1396000 ou posterior. Para criar um cluster, consulte o artigo Crie um cluster do Autopilot.
Selecione uma série de máquinas
Esta secção mostra como selecionar uma série de máquinas do Compute Engine específica num pod.
Guarde o seguinte manifesto como
machine-series-pod.yaml
:apiVersion: v1 kind: Pod metadata: name: machine-series-pod spec: nodeSelector: cloud.google.com/machine-family: MACHINE_SERIES containers: - name: my-container image: "k8s.gcr.io/pause" resources: requests: cpu: 5 memory: "25Gi" limits: cpu: 20 memory: 100Gi
Substitua
MACHINE_SERIES
pela série de máquinas do Compute Engine para o seu pod, comoc3
. Para ver os valores suportados, consulte a secção Séries de máquinas suportadas nesta página.Implemente o agrupamento:
kubectl apply -f machine-series-pod.yaml
Este manifesto permite que o Autopilot otimize a utilização de recursos dos nós agendando de forma eficiente outros pods que selecionam a mesma série de máquinas no mesmo nó se houver capacidade disponível.
Use SSDs locais
Os pods que selecionam uma série de máquinas podem usar SSDs locais para armazenamento efémero se especificar uma série de máquinas que ofereça SSD local. O Autopilot considera os pedidos de armazenamento efémero ao escolher um tipo de máquina do Compute Engine para o pod.
Para saber mais, consulte o artigo Use o armazenamento efémero suportado por SSD local com clusters do Autopilot.
Peça um nó dedicado para um pod
Se o seu pod tiver requisitos de desempenho específicos, como precisar de acesso fiável a todos os recursos do seu nó, pode pedir um nó dedicado para cada pod especificando o seletor de nós cloud.google.com/compute-class: Performance
juntamente com o seletor de nós da série de máquinas. Isto indica ao Autopilot que coloque o seu pod num novo nó que use a série de máquinas especificada e que seja dedicado a esse pod.
Este seletor de nós também impede que o Autopilot agende outros pods nesse nó.
Guarde o seguinte manifesto como
dedicated-node-pod.yaml
:apiVersion: v1 kind: Pod metadata: name: dedicated-node-pod spec: nodeSelector: cloud.google.com/machine-family: MACHINE_SERIES cloud.google.com/compute-class: Performance containers: - name: my-container image: "k8s.gcr.io/pause" resources: requests: cpu: 12 memory: "50Gi" ephemeral: "200Gi"
Substitua
MACHINE_SERIES
por uma série de máquinas suportada que também suporte o agendamento de um Pod por nó. Se a série de máquinas especificada não suportar o agendamento de um pod por nó, a implementação falha com um erro.Implemente o agrupamento:
kubectl apply -f dedicated-node-pod.yaml
Quando implementa este manifesto, o Autopilot faz o seguinte:
- Garante que os pedidos de agrupamento implementados pedem, pelo menos, os recursos mínimos para o nó otimizado em função do desempenho.
- Calcula os pedidos de recursos totais do pod implementado e de quaisquer DaemonSets no cluster.
- Aprovisiona um nó suportado pela série de máquinas selecionada.
- Modifica o manifesto do Pod com uma combinação de seletores de nós e tolerâncias para garantir que o Pod é executado no seu próprio nó.
Séries de máquinas suportadas
O seletor machine-family
suporta as seguintes séries de máquinas:
Tenha em atenção que c4
é o valor predefinido se a série de máquinas não for especificada e se c4
estiver disponível numa região.
Para comparar estas séries de máquinas e os respetivos exemplos de utilização, consulte a secção Comparação de séries de máquinas na documentação do Compute Engine.
Requisitos da versão
A série de máquinas C4D está disponível com as seguintes versões e configurações:
- Tipos de máquinas C4D sem SSD local: versão do GKE 1.33.0-gke.1439000 e posterior.
- Tipos de máquinas C4D com SSD local: versão do GKE 1.33.1-gke.1171000 e posteriores.
Compatibilidade com outras funcionalidades do GKE
Os pods que selecionam uma série de máquinas podem usar as capacidades e as funcionalidades do GKE suportadas por essa série de máquinas, como:
- Spot Pods
- Pods com tempo de execução prolongado (apenas com nós dedicados por Pod)
- Separação da carga de trabalho
- Reservas de capacidade
- Descontos de fidelidade
Os Spot Pods e os Pods com tempo de execução prolongado são mutuamente exclusivos. O GKE não aplica pedidos de recursos mínimos mais elevados para pods dedicados por nó, mesmo que usem a separação de cargas de trabalho.
Como o GKE seleciona um tipo de máquina
Para selecionar um tipo de máquina na série de máquinas especificada, o GKE calcula o total de pedidos de CPU, memória e armazenamento efémero dos pods e de quaisquer DaemonSets que serão executados no novo nó. O GKE arredonda estes valores para o tipo de máquina do Compute Engine disponível mais próximo que suporta todos estes totais.
Exemplo 1: considere uma implementação com quatro réplicas que seleciona a série de máquinas C3D. Não pede nós dedicados por agrupamento. Os pedidos de recursos de cada réplica são os seguintes:
- 500 m vCPU (0,5 vCPU)
- 1 GiB de memória
O Autopilot coloca todos os quatro pods num nó suportado pelo
c3d-standard-4
tipo de máquina, que tem 4 vCPUs e 16 GB de memória.Exemplo 2: considere um pod que seleciona a série de máquinas
C3D
e os SSDs locais para armazenamento efémero. Pede um nó dedicado para o agrupamento. Os pedidos de recursos totais, incluindo DaemonSets, são os seguintes:- 12 vCPU
- 50 GiB de memória
- 200 GiB de armazenamento temporário
O Autopilot coloca o pod num nó que usa o tipo de máquina
c3d-standard-16-lssd
, que tem 16 vCPUs, 64 GiB de memória e 365 GiB de capacidade de SSD local.
O que se segue?
- Para orientações sobre as opções de computação que o Autopilot oferece para vários exemplos de utilização, consulte o artigo Classes de computação no Autopilot.
- Implemente cargas de trabalho baseadas em GPU no Autopilot.