Este documento mostra-lhe como selecionar classes de computação específicas para executar cargas de trabalho que têm requisitos de hardware únicos nos clusters do Autopilot do Google Kubernetes Engine (GKE). Antes de ler este documento, certifique-se de que conhece o conceito de classes de computação no GKE Autopilot.
Vista geral das classes de computação do Autopilot
O Autopilot oferece classes de computação concebidas para executar cargas de trabalho com requisitos de hardware específicos. Estas classes de computação são úteis para cargas de trabalho, como tarefas de aprendizagem automática e IA, ou para executar bases de dados de tráfego elevado em tempo real.
Estas 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 do Autopilot predefinida.
Por exemplo, a classe Scale-Out
desativa o processamento simultâneo para que cada vCPU seja um núcleo físico.
Com base nas suas necessidades individuais de pods, pode configurar os seus pods do Autopilot normais ou os seus pods Spot para pedirem nós suportados por estas classes de computação. Também pode pedir uma arquitetura de CPU específica, como Arm, em classes de computação que suportem essa arquitetura.
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 GKE Autopilot a executar a versão 1.24.1-gke.1400 ou posterior do GKE.
Peça uma classe de computação no seu pod do Autopilot
Para indicar ao Autopilot que coloque os seus pods numa classe de computação específica, especifique a etiquetacloud.google.com/compute-class
num
nodeSelector
ou numa regra de afinidade de nós,
como nos exemplos seguintes:
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 exemplo de utilização, como Scale-Out
. Se selecionar Performance
,
pode selecionar opcionalmente uma série de máquinas do Compute Engine no seletor de nós.
Se não especificar uma série de máquinas, o GKE usa a série de máquinas C4, consoante a disponibilidade
regional. Para ver instruções, consulte o artigo Execute cargas de trabalho com utilização intensiva da CPU com o melhor
desempenho.
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 exemplo de utilização, como Scale-Out
. Se selecionar Performance
, pode selecionar opcionalmente uma série de máquinas do Compute Engine no seletor de nós. Se não especificar uma série de máquinas, o GKE usa a série de máquinas C4, consoante a disponibilidade
regional. Para ver instruções, consulte o artigo Execute cargas de trabalho com utilização intensiva da CPU com
um desempenho ideal.
Também pode pedir classes de computação específicas para os seus Spot Pods.
Especifique pedidos de recursos
Quando escolhe uma classe de computação, certifique-se de que especifica pedidos de recursos para os seus agrupamentos com base nos pedidos de recursos mínimos e máximos para a classe selecionada. Se os seus pedidos forem inferiores ao mínimo, o Autopilot aumenta automaticamente os pedidos. No entanto, se os seus pedidos forem superiores ao máximo, o Autopilot não implementa os seus pods e apresenta uma mensagem de erro.
Escolha uma arquitetura de CPU
Algumas classes de computação suportam várias arquiteturas de CPU. Por exemplo, a classe Scale-Out
é compatível com as arquiteturas Arm e x86. Se não pedir uma arquitetura específica, o Autopilot aprovisiona nós com a arquitetura predefinida da classe de computação especificada. Se os seus pods precisarem de usar uma arquitetura diferente, peça essa arquitetura no seletor de nós ou na regra de afinidade de nós, juntamente com o pedido de classe de computação. A classe de computação que pede tem de suportar a arquitetura da CPU especificada.
Para obter instruções, consulte o artigo Implemente pods do Autopilot na arquitetura Arm.
O que se segue?
- Saiba mais sobre a arquitetura de clusters do Autopilot.
- Saiba mais sobre o ciclo de vida dos agrupamentos.
- Saiba mais sobre as classes de computação do Autopilot disponíveis.
- Leia acerca dos pedidos de recursos predefinidos, mínimos e máximos para cada plataforma.