Escolher uma plataforma mínima de CPU


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

Por que escolher uma plataforma mínima de CPU?

Especificar uma plataforma mínima de CPU é útil se recursos e especificações específicos da CPU forem necessários, como frequência de base alta ou funcionalidade otimizada de gerenciamento de energia.

Algumas cargas de trabalho avançadas de uso intenso de computação nos setores de gráficos, jogos e análise podem usar os recursos específicos disponíveis por meio de diferentes conjuntos de recursos da plataforma de CPU, como AVX-2, AVX-512. A escolha de uma plataforma de CPU específica pode gerar aumentos substanciais no ambiente de execução e no desempenho. Com a especificação de uma plataforma mínima de CPU, as cargas de trabalho podem realizar esses ganhos de modo mais previsível. Além disso, é possível garantir que os nós nunca usem uma plataforma de CPU inadequada à carga de trabalho delas.

Como escolher uma plataforma

A tabela a seguir mostra como escolher uma plataforma mínima de CPU com base em como você usa o GKE:

Escopo Descrição Configuração de cluster suportada
Nível da carga de trabalho (recomendado)

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

  • Autopilot: o GKE programa pods em nós com a plataforma especificada ou posterior.
  • Padrão: o GKE só programa pods em nós com a plataforma especificada. Por exemplo, se existir um pool de nós do Intel Ice Lake e novos pods solicitarem um mínimo de Intel Cascade Lake, o GKE criará um novo pool de nós com o Intel Cascade Lake, mesmo que o Intel Ice Lake seja um plataforma mais avançada.

Nível do nó e do cluster Escolha uma plataforma mínima de CPU ao criar um novo cluster no modo Padrão ou um pool de nós. Essa configuração não oferece suporte ao provisionamento automático de nós. Para conferir as instruções, pule para Escolher uma plataforma mínima de CPU no nível do pool de nós. Novo cluster padrão ou pool de nós

Preços

É possível escolher uma plataforma mínima de CPU sem custo adicional.

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.

Verificar a disponibilidade da plataforma de CPU

As plataformas de CPU disponíveis variam de acordo com a zona do Compute em que os nós são executados. Verifique quais plataformas de CPU estão disponíveis em uma zona, mesmo que você use clusters do Autopilot ou clusters padrão regionais.

Para verificar as plataformas disponíveis em uma 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 você usar um tipo de cluster regional, especifique o nome de uma zona nessa região.

O resultado será assim:

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

Ao usar esses valores para solicitar uma plataforma mínima de CPU, substitua os espaços por sublinhados no nome da plataforma. Por exemplo, AMD_Milan.

Selecionar uma plataforma mínima de CPU no nível da carga de trabalho

Ao usar clusters do GKE Autopilot ou clusters padrão do GKE com provisionamento automático de nós, é possível escolher uma plataforma mínima de CPU na especificação do pod. Ao implantar a carga de trabalho, o GKE programa esses pods apenas em nós que têm a plataforma especificada ou mais recente. Recomendamos esse método.

Piloto automático

No Autopilot, solicite uma plataforma mínima de CPU e uma classe de computação. A classe de computação precisa oferecer suporte à plataforma de CPU. O Autopilot oferece suporte à seleção de uma plataforma mínima de CPU para a classe de computação Balanced. Para uma lista de plataformas de CPU disponíveis em cada classe de computação, consulte Quando usar classes de computação específicas.

Salve 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:

  • PLATFORM: o nome da plataforma de CPU, como AMD_Milan. O nome da plataforma diferencia maiúsculas de minúsculas e precisa ser delimitado por sublinhado.
  • COMPUTE_CLASS: o nome da classe de computação, que precisa ser Balanced.

Padrão

Em clusters padrão com provisionamento automático de nós ativado, solicite uma plataforma de CPU junto a uma família de máquinas do Compute Engine. A família de máquinas precisa oferecer suporte à plataforma de CPU. Para conferir uma lista de plataformas compatíveis com cada família de máquinas, consulte Plataformas de CPU do Compute Engine.

Salve 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:

  • PLATFORM: o nome da plataforma de CPU, como AMD_Milan. O nome da plataforma diferencia maiúsculas de minúsculas e precisa ser delimitado por sublinhado.
  • MACHINE_FAMILY: o nome da família de máquinas, como n2d.

Implantar a carga de trabalho:

kubectl apply -f min-cpu.yaml

Os nós manterão a mesma plataforma por todo o ciclo de vida, a menos que a plataforma de CPU especificada seja suspensa. Nesse caso, os nós serão executados em uma plataforma mais recente.

Escolher uma plataforma mínima de CPU no nível do pool de nós

Para clusters padrão do GKE sem provisionamento automático de nós, especifique uma plataforma mínima de CPU ao criar um novo cluster ou pool de nós. Use essa abordagem apenas se não for possível usar a configuração no nível da carga de trabalho. Essa configuração não afeta o provisionamento automático de nós.

gcloud

Para criar um novo pool de nós com uma plataforma mínima de CPU usando a gcloud CLI, defina a sinalização --min-cpu-platform e especifique o nome fácil da plataforma de CPU:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --region COMPUTE_REGION \
    --min-cpu-platform PLATFORM

Substitua:

  • POOL_NAME: o nome do novo pool de nós.
  • CLUSTER_NAME: o nome do cluster.
  • COMPUTE_REGION: a região do cluster.
  • PLATFORM: a plataforma de CPU que você quer executar no pool de nós, como "Intel Broadwell".

Console

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

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

  3. Clique em Adicionar pool de nós.

  4. Configure o pool de nós como quiser.

  5. No painel de navegação, clique em Nós.

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

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

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

  9. Selecione Núcleos e Memória conforme desejado.

  10. Clique em Plataforma de CPU e GPU.

  11. Na lista suspensa Plataforma de CPU, selecione a plataforma pretendida.

  12. Clique em Criar.

API

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

Por exemplo, a solicitação a seguir cria um novo pool 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:

  • PROJECT_ID: o ID do projeto
  • COMPUTE_REGION: a região do cluster.
  • CLUSTER_NAME: o nome do cluster.
  • POOL_NAME: o nome do novo pool de nós.

Se você especificar a plataforma ao criar um cluster, a configuração da plataforma mínima de CPU se aplicará ao pool de nós padrão no novo cluster.

Alternativas

O GKE também permite selecionar plataformas mínimas de CPU usando os seguintes métodos:

Alternativas

Sinalização no nível do cluster

Sinalização --autoprovisioning-min-cpu-platform

Limitações

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

  • Todas as limitações das plataformas mínimas de CPU do Compute Engine são aplicáveis.
  • A disponibilidade das plataformas específicas de CPU varia de acordo com a zona.
  • O tipo de máquina E2 não oferece suporte a plataformas mínimas de CPU. Selecione um tipo de máquina diferente.
  • Os clusters do Autopilot só são compatíveis com a seleção de plataforma para a classe de computação Balanced, não para as classes de computação padrão ou Scale-Out.
  • Se a carga de trabalho do Autopilot solicitar mais de 80 vCPUs, a plataforma mínima de CPU precisará ser Intel Ice Lake ou posterior. Se você especificar uma plataforma menos avançada, o pod poderá permanecer no estado Pending indefinidamente.

A limitação a seguir é aplicável à configuração da plataforma mínima de CPU do pool de nós ou de cluster:

Ao selecionar uma plataforma mínima de CPU que seja menos avançada do que a plataforma de CPU padrão na zona ou se a plataforma selecionada não estiver mais disponível, o GKE verificará se há uma nova plataforma com o mesmo custo. Se houver uma plataforma mais recente pelo mesmo custo, o GKE criará os nós usando a plataforma mais recente. Se não houver uma plataforma mais recente com o mesmo custo, a criação do pool de nós ou do cluster falhará.

A seguir