Escolha uma plataforma de CPU mínima

Esta página mostra como especificar uma plataforma de CPU mínima para nós em clusters do Google Kubernetes Engine (GKE).

Por que motivo deve escolher uma plataforma de CPU mínima?

A especificação de uma plataforma de CPU mínima é útil se precisar de capacidades e especificações específicas da CPU, como uma frequência base elevada ou uma funcionalidade de gestão de energia otimizada.

Algumas cargas de trabalho avançadas com utilização intensiva de computação nas indústrias de gráficos, jogos e estatísticas podem usar as funcionalidades específicas disponíveis através de diferentes conjuntos de funcionalidades da plataforma de CPU, como AVX-2 e AVX-512. A escolha de uma plataforma de CPU específica pode gerar aumentos substanciais no tempo de execução e no desempenho. Ao especificar uma plataforma de CPU mínima, as suas cargas de trabalho podem alcançar estes ganhos de uma forma mais previsível e pode garantir que os seus nós nunca usam uma plataforma de CPU inadequada para as respetivas cargas de trabalho.

Como escolher uma plataforma

A tabela seguinte mostra como escolher uma plataforma de CPU mínima com base na forma como usa o GKE:

Âmbito Descrição Configuração de cluster suportada
Ao nível da carga de trabalho (recomendado)

Escolha uma plataforma mínima na especificação do pod. O GKE programa esses pods da seguinte forma:

  • Autopilot: o GKE agenda pods em nós com a plataforma especificada ou posterior.
  • Padrão: o GKE só agenda agrupamentos em nós com a plataforma especificada. Por exemplo, se existir um conjunto de nós do Intel Ice Lake e os novos pods pedirem um mínimo de Intel Cascade Lake, o GKE cria um novo conjunto de nós com o Intel Cascade Lake, mesmo que o Intel Ice Lake seja uma plataforma mais avançada.

Nível do nó e do cluster Escolha uma plataforma de CPU mínima quando criar um novo cluster ou um novo conjunto de nós no modo padrão. Esta definição não suporta o aprovisionamento automático de nós. Para ver instruções, avance para a secção Escolha uma plataforma de CPU mínima ao nível do conjunto de nós. Novo cluster ou node pool padrão

Preços

Pode escolher uma plataforma de CPU mínima sem custo adicional.

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.

Verifique a disponibilidade da plataforma da CPU

As plataformas de CPU disponíveis variam consoante a zona de computação em que os seus nós são executados. Deve verificar que plataformas de CPU estão disponíveis numa zona, mesmo que use clusters do Autopilot ou clusters padrão regionais.

Para verificar as plataformas disponíveis numa zona específica, execute o seguinte comando:

gcloud compute zones describe COMPUTE_ZONE

Substitua COMPUTE_ZONE pelo nome de uma zona, como us-central1-a. Se usar um tipo de cluster regional, especifique o nome de uma zona nessa região.

O resultado é semelhante ao seguinte:

availableCpuPlatforms:
- Intel Ice Lake
- Intel Cascade Lake
- Intel Skylake
- Intel Broadwell
- Intel Haswell
- Intel Ivy Bridge
- Intel Sandy Bridge
- AMD Milan
- AMD Rome
- Ampere Altra
- Intel Sapphire Rapids

Quando usar estes valores para pedir uma plataforma de CPU mínima, substitua os espaços por carateres de sublinhado no nome da plataforma. Por exemplo, AMD_Milan.

Escolha uma plataforma de CPU mínima ao nível da carga de trabalho

Se usar clusters do GKE Autopilot ou clusters do GKE Standard com aprovisionamento automático de nós, pode escolher uma plataforma de CPU mínima na especificação do pod. Quando implementa a carga de trabalho, o GKE agenda esses pods apenas em nós que tenham a plataforma especificada ou mais recente. Recomendamos este método.

Piloto automático

No Autopilot, peça uma plataforma de CPU mínima e uma classe de computação. A classe de computação tem de ser compatível com a plataforma de CPU. O Autopilot suporta a seleção de uma plataforma de CPU mínima para a classe de computação Balanced. Para ver uma lista das plataformas de CPU disponíveis em cada classe de computação, consulte o artigo Quando usar classes de computação específicas.

Guarde o seguinte manifesto como min-cpu.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/compute-class: "COMPUTE_CLASS"
        supported-cpu-platform.cloud.google.com/PLATFORM: "true"
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Substitua o seguinte:

  • PLATFORM: o nome da plataforma da CPU, como AMD_Milan. O nome da plataforma é sensível a maiúsculas e minúsculas e tem de ser delimitado por um sublinhado.
  • COMPUTE_CLASS: o nome da classe de computação, que tem de ser Balanced.

Standard

Em clusters padrão com o aprovisionamento automático de nós ativado, peça uma plataforma de CPU juntamente com uma família de máquinas do Compute Engine. A família de máquinas tem de suportar a plataforma de CPU. Para ver uma lista das plataformas suportadas para cada família de máquinas, consulte o artigo Plataformas de CPU do Compute Engine.

Guarde o seguinte manifesto como min-cpu.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_FAMILY
        cloud.google.com/requested-min-cpu-platform: PLATFORM
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Substitua o seguinte:

  • PLATFORM: o nome da plataforma da CPU, como AMD_Milan. O nome da plataforma é sensível a maiúsculas e minúsculas e tem de ser delimitado por um sublinhado.
  • MACHINE_FAMILY: o nome da família de máquinas, como n2d.

Implemente a carga de trabalho:

kubectl apply -f min-cpu.yaml

Os nós mantêm a mesma plataforma durante o respetivo ciclo de vida, a menos que a plataforma de CPU especificada seja desativada. Nesse caso, os nós são executados numa plataforma mais recente.

Escolha uma plataforma de CPU mínima ao nível do conjunto de nós

Para clusters padrão do GKE sem aprovisionamento automático de nós, pode especificar uma plataforma de CPU mínima quando cria um novo cluster ou um conjunto de nós. Só deve usar esta abordagem se não conseguir usar a definição ao nível da carga de trabalho. Esta definição não afeta o aprovisionamento automático de nós.

gcloud

Para criar um novo conjunto de nós com uma plataforma de CPU mínima através da CLI gcloud, defina a flag --min-cpu-platform e especifique o nome da plataforma de CPU:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --min-cpu-platform PLATFORM

Substitua o seguinte:

  • POOL_NAME: o nome do novo node pool.
  • CLUSTER_NAME: o nome do cluster.
  • CONTROL_PLANE_LOCATION: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.
  • PLATFORM: a plataforma de CPU que quer executar no conjunto de nós, como "Intel Broadwell".

Consola

  1. Aceda à página do Google Kubernetes Engine na Google Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que quer modificar.

  3. Clique em Adicionar conjunto de nós.

  4. Configure o conjunto de nós conforme necessário.

  5. No painel de navegação, clique em Nodes.

  6. Em Configuração da máquina:

  7. Na lista pendente Série, selecione um tipo de máquina.

  8. Na lista pendente Tipo de máquina, selecione Personalizado.

  9. Selecione Núcleos e Memória, conforme necessário.

  10. Clique em Plataforma de CPU e GPU.

  11. Na lista pendente Plataforma de CPU, selecione a plataforma mínima.

  12. Clique em Criar.

API

Inclua a propriedade do minCpuPlatform como parte do campo nodeConfig no corpo do pedido. O valor de minCpuPlatform tem de ser o nome da plataforma, como Intel Haswell, Intel Broadwell e Intel Sandy Bridge.

Por exemplo, o pedido seguinte cria um novo conjunto de nós que executa a plataforma Intel Broadwell:

POST https://container.googleapis.com/v1/projects/PROJECT_ID/regions/COMPUTE_REGION/clusters/CLUSTER_NAME/nodePools

{
  'nodePool': {
    'name': 'POOL_NAME',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto.
  • COMPUTE_REGION: a região do cluster.
  • CLUSTER_NAME: o nome do cluster.
  • POOL_NAME: o nome do novo node pool.

Se especificar a plataforma quando criar um cluster, a definição da plataforma de CPU mínima aplica-se ao conjunto de nós predefinido no novo cluster.

Alternativas

O GKE também lhe permite selecionar plataformas de CPU mínimas através dos seguintes métodos:

Alternativas

Sinalização ao nível do cluster

--autoprovisioning-min-cpu-platform bandeira

Limitações

As seguintes limitações aplicam-se a todos os métodos de seleção de uma plataforma de CPU mínima:

  • Aplicam-se todas as limitações das plataformas de CPU mínimas do Compute Engine.
  • A disponibilidade de plataformas de CPU específicas varia consoante a zona.
  • O tipo de máquina E2 não suporta plataformas de CPU mínimas. Tem de selecionar um tipo de máquina diferente.
  • Os clusters do Autopilot só suportam a seleção da plataforma para a classe de computação Balanced, e não para as classes de computação predefinidas ou Scale-Out.
  • Se a carga de trabalho do Autopilot pedir mais de 80 vCPUs, a plataforma de CPU mínima tem de ser Intel Ice Lake ou posterior. Se especificar uma plataforma menos avançada, o seu Pod pode permanecer no estado Pending indefinidamente.

A seguinte limitação aplica-se à definição de plataforma da CPU mínima do cluster ou do conjunto de nós:

Se selecionar uma plataforma de CPU mínima menos avançada do que a plataforma de CPU predefinida na zona ou se a plataforma selecionada já não estiver disponível, o GKE verifica se existe uma plataforma mais recente ao mesmo custo. Se existir uma plataforma mais recente com o mesmo custo, o GKE cria os nós com a plataforma mais recente. Se não existir uma plataforma mais recente com o mesmo custo, a criação do cluster ou do conjunto de nós falha.

O que se segue?