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:
|
|
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, comoAMD_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 serBalanced
.
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, comoAMD_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, comon2d
.
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
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Na lista de clusters, clique no nome do cluster que você quer modificar.
Clique em add_box Adicionar pool de nós.
Configure o pool de nós como quiser.
No painel de navegação, clique em Nós.
Em Configuração da máquina,
Na lista suspensa Série, selecione um tipo de máquina.
Na lista suspensa Tipo de máquina, selecione Personalizado.
Selecione Núcleos e Memória conforme desejado.
Clique em expand_more Plataforma de CPU e GPU.
Na lista suspensa Plataforma de CPU, selecione a plataforma pretendida.
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 projetoCOMPUTE_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 |
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 ouScale-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
- Veja uma lista de plataformas de CPU disponíveis.
- Saiba mais sobre Regiões e zonas
- Saiba mais sobre nodes.