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:
|
|
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, comoAMD_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 serBalanced
.
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, comoAMD_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, comon2d
.
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
Aceda à página do Google Kubernetes Engine na Google Cloud consola.
Na lista de clusters, clique no nome do cluster que quer modificar.
Clique em add_box Adicionar conjunto de nós.
Configure o conjunto de nós conforme necessário.
No painel de navegação, clique em Nodes.
Em Configuração da máquina:
Na lista pendente Série, selecione um tipo de máquina.
Na lista pendente Tipo de máquina, selecione Personalizado.
Selecione Núcleos e Memória, conforme necessário.
Clique em expand_more Plataforma de CPU e GPU.
Na lista pendente Plataforma de CPU, selecione a plataforma mínima.
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
|
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 ouScale-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?
- Veja uma lista das plataformas de CPU disponíveis.
- Saiba mais sobre regiões e zonas.
- Saiba mais sobre os nós.