Neste documento, mostramos como selecionar classes de computação específicas para executar cargas de trabalho que têm requisitos de hardware exclusivos nos clusters do Autopilot do Google Kubernetes Engine (GKE). Antes de ler este documento, verifique se você conhece o conceito das classes de computação no Autopilot do GKE.
Visão geral das classes de computação do Autopilot
O Autopilot oferece classes de computação projetadas para executar cargas de trabalho com requisitos de hardware específicos. Essas classes de computação são úteis para cargas de trabalho como machine learning e tarefas de IA ou para executar bancos de dados de tráfego alto em tempo real.
Essas classes de computação são um subconjunto da série de máquinas
do Compute Engine e oferecem
flexibilidade além da classe de computação de uso geral padrão do Autopilot.
Por exemplo, a classe Scale-Out
desativa várias linhas de execução simultâneas para que cada vCPU seja
um núcleo físico.
Com base nas necessidades individuais dos seus pods, é possível configurar seus pods regulares do Autopilot ou os do Spot para solicitar nós compatíveis com essas classes de computação. Também é possível solicitar uma arquitetura de CPU específica, como Arm, em classes de computação compatíveis com essa arquitetura.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
- Verifique se você tem um cluster do Autopilot do GKE com a versão 1.24.1-gke.1400 ou posterior do GKE.
Solicitar uma classe de computação no pod do Autopilot
Para instruir o Autopilot a colocar seus pods em uma classe de computação específica, especifique o rótulocloud.google.com/compute-class
em um
nodeSelector
ou em uma regra de afinidade de nó, como nos exemplos a seguir:
nodeSelector
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: nodeSelector: cloud.google.com/compute-class: "COMPUTE_CLASS" containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi"
Substitua COMPUTE_CLASS
pelo nome da
classe de computação
com base no seu caso de uso, como Scale-Out
.
Se você selecionar Accelerator
, também precisará especificar uma GPU compatível. Para ver instruções, consulte Implantar cargas de trabalho da GPU no Autopilot. Se você selecionar Performance
, também precisará escolher uma série de máquinas do Compute Engine no seletor de nós. Para instruções, consulte Executar cargas de trabalho com uso intensivo da CPU com o desempenho ideal.
nodeAffinity
apiVersion: apps/v1 kind: Deployment metadata: name: hello-app spec: replicas: 3 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: terminationGracePeriodSeconds: 25 containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: requests: cpu: "2000m" memory: "2Gi" ephemeral-storage: "1Gi" affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/compute-class operator: In values: - "COMPUTE_CLASS"
Substitua COMPUTE_CLASS
pelo nome da
classe de computação
com base no seu caso de uso, como Scale-Out
. Se você selecionar Accelerator
, também precisará especificar uma GPU compatível. Para ver instruções, consulte Implantar cargas de trabalho da GPU no Autopilot. Se você selecionar Performance
, também precisará escolher uma série de máquinas do Compute Engine no seletor de nós. Para instruções, consulte Executar cargas de trabalho com uso intensivo da CPU com o desempenho ideal.
Também é possível solicitar classes de computação específicas para seus pods do Spot.
Especificar solicitações de recursos
Ao escolher uma classe de computação, especifique as solicitações de recursos para os pods com base nas solicitações mínimas e máximas de recursos da classe selecionada. Se as solicitações forem menores do que o mínimo, o Autopilot fará o escalonamento automático das solicitações. No entanto, se as solicitações forem maiores que o máximo, o Autopilot não implantará seus pods e exibirá uma mensagem de erro.
Escolher uma arquitetura de CPU
Algumas classes de computação aceitam várias arquiteturas de CPU. Por exemplo, a
classe Scale-Out
é compatível com arquiteturas Arm e x86. Se você não solicitar
uma arquitetura específica, o Autopilot provisionará os nós que
têm a arquitetura padrão da classe de computação especificada. Se os pods precisarem
usar uma arquitetura diferente, solicite-a no seletor de nós ou na regra de
afinidade do nó, junto com a solicitação de classe de computação. A classe de computação
solicitada precisa ser compatível com a arquitetura de CPU especificada.
Para ver instruções, consulte Implantar pods do Autopilot na arquitetura do Arm.
A seguir
- Saiba mais sobre a arquitetura de cluster do Autopilot.
- Saiba mais sobre o ciclo de vida dos pods.
- Saiba mais sobre as classes de computação do Autopilot disponíveis.
- Leia sobre as solicitações de recursos padrão, mínima e máxima de cada plataforma.