É possível usar as ComputeClasses Balanced e Scale-Out em clusters do Autopilot do Google Kubernetes Engine (GKE) para executar cargas de trabalho que exigem capacidade de computação extra ou configurações de CPU especializadas. Esta página é destinada a administradores de clusters que querem opções de computação mais flexíveis do que a configuração padrão do cluster do Autopilot.
Visão geral das ComputeClasses Balanced e Scale-Out
Por padrão, os pods em clusters do Autopilot do GKE são executados em uma plataforma de computação otimizada para contêineres. Essa plataforma é ideal para cargas de trabalho de uso geral, como servidores da Web e jobs em lote de intensidade média. A plataforma de computação otimizada para contêineres oferece uma configuração de hardware confiável, escalonável e otimizada para custos que atende aos requisitos da maioria das cargas de trabalho.
Se você tiver cargas de trabalho com requisitos de hardware exclusivos (como a execução de tarefas de machine learning ou IA, a execução de bancos de dados de alto tráfego em tempo real ou a necessidade de plataformas e arquitetura de CPU específicas), use ComputeClasses para provisionar esse hardware.
Somente em clusters do Autopilot, o GKE oferece as seguintes ComputeClasses selecionadas que permitem executar pods que precisam de mais flexibilidade do que a plataforma de computação otimizada para contêineres padrão:
Balanced: oferece capacidade máxima de CPU e memória maior do que a plataforma de computação otimizada para contêineres.Scale-Out: desativa a multissegmentação simultânea (SMT, na sigla em inglês) e é otimizada para escalonamento horizontal.
Essas ComputeClasses estão disponíveis apenas em clusters do Autopilot. Semelhante à plataforma de computação otimizada para contêineres padrão, o Autopilot gerencia o dimensionamento de nós e a alocação de recursos com base nos pods em execução.
ComputeClasses personalizadas para mais flexibilidade
Se as ComputeClasses Balanced ou Scale-Out em clusters do Autopilot
não atenderem aos requisitos da carga de trabalho, configure
suas próprias ComputeClasses.
Implante recursos personalizados do Kubernetes ComputeClass nos clusters com conjuntos de atributos de nó que o GKE usa para configurar novos nós no cluster. Essas ComputeClasses personalizadas podem, por exemplo, permitir que você implante cargas de trabalho no mesmo hardware que as ComputeClasses Balanced ou Scale-Out em qualquer cluster do Autopilot ou Standard do GKE. Para mais
informações, consulte
Sobre cargas de trabalho do modo Autopilot no GKE Standard.
Preços
Os pods que usam as ComputeClasses Balanced ou Scale-Out são faturados com base nas seguintes SKUs:
Para mais informações, consulte os preços do GKE .
Detalhes técnicos de Balanced e Scale-Out
Esta seção descreve os tipos de máquina e casos de uso das classes Balanced e Scale-Out. Se você não solicitar uma ComputeClass nos pods, o Autopilot vai colocar os pods na plataforma de computação otimizada para contêineres por padrão. Às vezes, ek aparece como a série de máquinas de nó nos nós do Autopilot que usam a plataforma de computação otimizada para contêineres. As máquinas EK são tipos de máquina E2 exclusivos do Autopilot.
A tabela a seguir oferece uma visão geral técnica das ComputeClasses Balanced e Scale-Out.
| ComputeClasses Balanced e Scale-Out | ||
|---|---|---|
Balanced |
Oferece mais capacidade de CPU e memória do que os máximos da plataforma de computação otimizada para contêineres. Oferece plataformas de CPU adicionais e a capacidade de definir plataformas mínimas de CPU para pods, como Intel Ice Lake ou mais recentes.
Use a classe
|
|
Scale-Out |
Oferece computação por núcleo único e escalonamento horizontal.
Use a classe
|
|
Seleção de ComputeClass em cargas de trabalho
Para usar uma ComputeClass em uma carga de trabalho do GKE, selecione a
ComputeClass no manifesto da carga de trabalho usando um
seletor de nós
para o rótulo cloud.google.com/compute-class.
O exemplo de manifesto de implantação a seguir seleciona uma ComputeClass:
Substitua COMPUTE_CLASS pelo nome de uma ComputeClass, como Balanced ou Scale-Out. É possível selecionar no máximo uma ComputeClass em uma carga de trabalho.
Quando você implanta a carga de trabalho, o GKE faz o seguinte:
- Provisiona automaticamente os nós com a configuração especificada para executar seus pods.
- Adiciona automaticamente rótulos de nós e taints aos novos nós para evitar que outros pods sejam programados neles. Os taints são exclusivos de cada ComputeClass. Se você também selecionar uma arquitetura de CPU, o GKE adicionará um taint exclusivo a ela.
- Adiciona automaticamente tolerâncias correspondentes aos taints aplicados aos pods implantados, permitindo que o GKE coloque esses pods nos novos nós.
Por exemplo, se você solicitar a ComputeClass Scale-Out para um pod:
- O Autopilot adiciona um taint específico para
Scale-Outpara esses nós. - O Autopilot adiciona uma tolerância a esse taint aos pods
Scale-Out.
Os pods que não solicitarem Scale-Out não receberão a tolerância. Como resultado, o GKE não programará esses pods nos nós Scale-Out.
Se você não solicitar explicitamente uma ComputeClass na especificação da carga de trabalho, o Autopilot programará os pods nos nós que usam a plataforma de computação otimizada para contêineres padrão. A maioria das cargas de trabalho de uso geral pode ser executada sem problemas nessa plataforma.
Como solicitar uma arquitetura de CPU
Em alguns casos, as cargas de trabalho podem ser criadas para uma arquitetura específica, como Arm. A ComputeClass Scale-Out é compatível com várias arquiteturas de CPU. É possível solicitar uma arquitetura específica junto com a solicitação de ComputeClass especificando um rótulo no seletor de nós ou na regra de afinidade do nó, como no exemplo a seguir:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-arm
spec:
replicas: 3
selector:
matchLabels:
app: nginx-arm
template:
metadata:
labels:
app: nginx-arm
spec:
nodeSelector:
cloud.google.com/compute-class: COMPUTE_CLASS
kubernetes.io/arch: ARCHITECTURE
containers:
- name: nginx-arm
image: nginx
resources:
requests:
cpu: 2000m
memory: 2Gi
Substitua ARCHITECTURE pela arquitetura de CPU que você quer, como arm64 ou amd64. É possível selecionar no máximo uma arquitetura na carga de trabalho. A ComputeClass selecionada precisa ser compatível com a arquitetura especificada.
Se você não solicitar explicitamente uma arquitetura, o Autopilot usará a arquitetura padrão da ComputeClass.
Arquitetura de braço no Autopilot
O Autopilot é compatível com solicitações de nós que usam a arquitetura de CPU Arm. Os nós de Arm têm melhor custo-benefício do que os nós x86 semelhantes, além de melhorar o desempenho. Para ver instruções sobre como solicitar nós do Arm, consulte Implantar cargas de trabalho do Autopilot na arquitetura do Arm.
Verifique se você está usando as imagens corretas nas implantações. Se os pods usarem imagens do Arm e você não solicitar nós do Arm, o Autopilot programará os pods em nós x86, e eles falharão. Da mesma forma, se você usar imagens x86 acidentalmente, mas solicitar nós do Arm para os pods, os pods falharão.
Solicitações de recursos padrão, mínimas e máximas
Ao escolher uma ComputeClass para suas cargas de trabalho do Autopilot, especifique as solicitações de recursos que atendem às solicitações mínima e máxima para essa ComputeClass. Para informações sobre as solicitações padrão, bem como as solicitações mínima e máxima para cada ComputeClass, consulte Solicitações e limites de recursos no Autopilot do GKE.
A seguir
- Saiba como selecionar ComputeClasses específicas nas cargas de trabalho do Autopilot.
- Leia sobre as solicitações de recursos padrão, mínima e máxima de cada plataforma.