Escolha as classes de computação para os pods do Autopilot

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.

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 etiqueta cloud.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?