Os administradores de clusters e operadores de aplicativos podem aproveitar os benefícios do Autopilot do Google Kubernetes Engine (GKE), como preços e configurações predefinidas, em clusters do modo Standard. Este documento mostra como usar ComputeClasses para implantar uma carga de trabalho do Autopilot em um cluster Standard. Você já deve estar familiarizado com estes conceitos:
Sobre as ComputeClasses do Autopilot
O GKE fornece recursos personalizados do Kubernetes chamados ComputeClasses que podem ser implantados no cluster como qualquer outro recurso do Kubernetes. Uma ComputeClass define uma lista de configurações de nós, como tipos de máquinas ou VMs Spot. É possível selecionar ComputeClasses nas cargas de trabalho, o que indica ao GKE que todos os novos nós precisam usar uma das configurações dessa lista.
Se uma carga de trabalho selecionar uma ComputeClass que tenha o campo autopilot ativado, o GKE vai executar os pods no modo Autopilot. Os nós criados pelo GKE são gerenciados pelo Google e incluem muitas das configurações de recursos e segurança padrão do Autopilot. Para mais
informações sobre as implicações da execução de uma carga de trabalho do Autopilot nos
clusters Standard, incluindo as diferenças que você pode notar
ao implantar essas cargas de trabalho, consulte
Sobre cargas de trabalho do modo Autopilot no GKE Standard.
Tipos de ComputeClasses do Autopilot
O GKE fornece ComputeClasses do Autopilot integradas que podem ser usadas para a maioria das cargas de trabalho de uso geral. Também é possível configurar uma ComputeClass personalizada nova ou atual para usar o modo Autopilot. O tipo de ComputeClass do Autopilot que você usa depende se as cargas de trabalho precisam de hardware específico, da seguinte maneira:
- Cargas de trabalho de uso geral: use uma das ComputeClasses do Autopilot integradas, que colocam pods na plataforma de computação otimizada para contêineres.
- Cargas de trabalho que exigem hardware específico: ative o modo Autopilot para qualquer ComputeClass personalizada, implante essa ComputeClass no cluster e selecione-a nas cargas de trabalho.
Para mais informações sobre essas opções, quando usá-las e os preços de cada uma, consulte Seleção de hardware em ComputeClasses do Autopilot.
Preços
Os preços do GKE Autopilot se aplicam às cargas de trabalho e aos nós que usam uma ComputeClass do Autopilot. O modelo de preços que se aplica depende da regra de prioridade da ComputeClass que o GKE usa para criar nós para as cargas de trabalho. Para mais informações, consulte Preços em "Sobre cargas de trabalho do modo Autopilot no GKE Standard".
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 o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
- Use um cluster do GKE Standard que atenda a todos os requisitos. Para criar um novo cluster, consulte Como criar um cluster regional.
- Para evitar rejeições de carga de trabalho, saiba mais sobre os requisitos e restrições de segurança do Autopilot. Para mais informações, consulte Configurações predefinidas para nós do Autopilot.
Requisitos
O cluster precisa executar uma das seguintes versões do GKE:
- Para usar o Autopilot em ComputeClasses, o cluster precisa executar a versão 1.34.1-gke.1829001 ou mais recente.
- Para usar regras de prioridade
podFamilyem ComputeClasses do Autopilot personalizadas, o cluster precisa executar a versão 1.35.2-gke.1485000 ou mais recente.
Pelo menos um pool de nós no cluster não pode ter cor.
Esse pool de nós é necessário para executar pods do sistema GKE Standard que não podem ser executados em nós do Autopilot em clusters Standard devido aos taints que o GKE adiciona a esses nós.
Os nós protegidos do GKE são obrigatórios e estão ativados por padrão.
É preciso usar um cluster nativo de VPC.
Se você usar NetworkPolicies do Kubernetes, o cluster precisará usar o GKE Dataplane V2. Por padrão, todos os novos clusters usam o GKE Dataplane V2.
Se o cluster não usar o GKE Dataplane V2, será necessário desativar a aplicação da política de rede.
Limitações
- A família de pods
general-purpose-arme a classe de computaçãoautopilot-armsó estão disponíveis em clusters do Autopilot. Os clusters Standard com nós do Autopilot serão compatíveis em uma versão posterior. - Para atualizar as ComputeClasses atuais no cluster para usar o modo Autopilot, é necessário recriar essas ComputeClasses com uma especificação atualizada. Para mais informações, consulte Ativar o Autopilot para uma ComputeClass personalizada.
- As ComputeClasses do Autopilot integradas não oferecem suporte à ativação de nós protegidos do GKE para todo o cluster. Se você ativar os nós protegidos do GKE para o cluster, todos os novos pods que selecionarem as ComputeClasses do Autopilot integradas vão permanecer no estado
Pendingindefinidamente. - A aplicação da política de rede do Calico não é compatível. É necessário usar o GKE Dataplane V2 ou desativar a aplicação da política de rede.
- O nome da ComputeClass não pode começar com
gkeouautopilot, que são prefixos reservados.
Papéis e permissões necessárias
Para receber as permissões necessárias para implantar ComputeClasses, peça ao administrador para conceder a você o papel do IAM de desenvolvedor do Kubernetes Engine (roles/container.developer) no cluster ou projeto .
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Modificar clusters para atender aos requisitos do Autopilot
É possível usar o Google Cloud console para verificar se o cluster Standard atende a todos os requisitos para executar cargas de trabalho no modo Autopilot. Também é possível usar o Google Cloud console para modificar o cluster para atender a esses requisitos.
Modificar um cluster atual
No Google Cloud console do, acesse a página Clusters do Kubernetes.
Na linha do cluster que você quer modificar, clique em Mais ações > Editar. A página Detalhes do cluster será aberta.
Na seção Noções básicas sobre clusters, encontre a seção Compatibilidade da classe de computação do Autopilot.
Se essa seção mostrar Ativado, o cluster já será compatível com o Autopilot. Pule para a seção Selecionar uma ComputeClass do Autopilot em uma carga de trabalho.
Se a seção Compatibilidade da classe de computação do Autopilot mostrar Desativado, clique em Editar a compatibilidade da classe de computação do Autopilot.
Se essa seção não estiver disponível para edição, o cluster usará uma configuração permanente incompatível com o modo Autopilot. Por exemplo, não é possível modificar clusters para serem nativos de VPC após a criação do cluster. Se não for possível interagir com a seção Compatibilidade da classe de computação do Autopilot, será necessário criar um novo cluster.
No painel Compatibilidade da classe de computação do Autopilot que é aberto, revise as configurações do cluster que precisam ser alteradas para atender aos requisitos do modo Autopilot.
Clique em Ativar a classe de computação do Autopilot. O GKE modifica o cluster conforme necessário.
Modificar um novo cluster
No Google Cloud console, acesse a página **Criar um cluster do Kubernetes**.
Na página Noções básicas sobre clusters, encontre a seção Maximizar as opções de implantação com a classe de computação do Autopilot. Essa seção mostra as configurações do cluster que precisam ser alteradas para atender aos requisitos do modo Autopilot.
Clique em Ativar a classe de computação do Autopilot. O GKE modifica o cluster conforme necessário.
Configure outras configurações de cluster com base nos seus requisitos. Se você modificar uma configuração que torna o cluster incompatível com o Autopilot, uma mensagem de aviso será exibida.
Selecionar uma ComputeClass do Autopilot em uma carga de trabalho
É possível executar uma carga de trabalho no modo Autopilot no cluster Standard selecionando uma ComputeClass que usa o modo Autopilot. Para executar uma carga de trabalho no modo Autopilot, selecione uma das seguintes opções:
Console
No Google Cloud console, acesse a página Cargas de trabalho do GKE.
Clique em Implantar ou Criar job. A página de criação de carga de trabalho para uma implantação ou um job será exibida.
Na seção Nós, selecione Classe de computação do Autopilot.
Na seção Selecionar classe de computação, na lista suspensa Classe de computação, selecione uma ComputeClass que usa o modo Autopilot. Essa ComputeClass pode ser qualquer uma das seguintes:
Uma das seguintes ComputeClasses do Autopilot integradas, que colocam cargas de trabalho de uso geral na plataforma de computação otimizada para contêineres do Autopilot:
autopilotautopilot-spot
Uma ComputeClass criada por você, como a
n4-classComputeClass descrita na seção Configurar uma ComputeClass do Autopilot personalizada.
Configure e crie a carga de trabalho.
CLI kubectl
Para selecionar uma ComputeClass do Autopilot em uma carga de trabalho, use um
seletor de nós
para o rótulo cloud.google.com/compute-class. Esse é o mesmo rótulo usado para selecionar qualquer outra ComputeClass no GKE. As etapas a seguir mostram como criar uma implantação de exemplo que seleciona uma ComputeClass e verifica se os pods são executados no modo Autopilot:
Salve a seguinte implantação de exemplo como
autopilot-cc-deployment.yaml:Substitua
COMPUTE_CLASSpelo nome da classe de computação a ser usada. Esse valor pode ser um dos seguintes:Uma das seguintes ComputeClasses do Autopilot integradas, que colocam cargas de trabalho de uso geral na plataforma de computação otimizada para contêineres do Autopilot:
autopilotautopilot-spot
Uma ComputeClass criada por você, como a
n4-classComputeClass descrita na seção Configurar uma ComputeClass do Autopilot personalizada.
Implantar a carga de trabalho:
kubectl apply -f autopilot-cc-deployment.yaml
Configurar uma ComputeClass do Autopilot personalizada
É possível configurar ComputeClasses personalizadas para usar o Autopilot. Use uma ComputeClass do Autopilot personalizada em situações como as seguintes:
- As cargas de trabalho exigem hardware específico para serem executadas de maneira ideal, como GPUs ou uma determinada série de máquinas do Compute Engine.
- Você quer ajustar as configurações de nós, como zonas ou taints, ao usar a plataforma de computação otimizada para contêineres do Autopilot.
Se as cargas de trabalho não tiverem esses requisitos, recomendamos que você use uma das ComputeClasses do Autopilot integradas. Para selecionar uma ComputeClass do Autopilot integrada, consulte a seção anterior Selecionar uma ComputeClass do Autopilot em uma carga de trabalho.
Criar uma nova ComputeClass do Autopilot personalizada
Salve um dos seguintes manifestos de ComputeClass de exemplo:
Selecionar máquinas específicas:
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: n4-class spec: autopilot: enabled: true priorities: - machineFamily: n4 spot: true minCores: 16 - machineFamily: n4 spot: true - machineFamily: n4 spot: false activeMigration: optimizeRulePriority: trueEsse manifesto inclui os seguintes campos:
autopilot: ativa o modo Autopilot para a ComputeClass. Se você especificar esse campo em uma ComputeClass implantada em um cluster do Autopilot, o GKE vai ignorar o campo.priorities: define uma matriz de três configurações diferentes da família de máquinas N4.activeMigration: permite que o GKE migre pods para configurações mais altas na lista de prioridades quando os recursos ficam disponíveis.
Usar a plataforma de computação otimizada para contêineres com modificações:
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: general-purpose-class spec: autopilot: enabled: true priorities: - podFamily: general-purpose priorityDefaults: location: zones: ['us-central1-a','us-central1-b','us-central1-f']Esse manifesto inclui os seguintes campos:
autopilot: ativa o modo Autopilot para a ComputeClass. Se você especificar esse campo em uma ComputeClass implantada em um cluster do Autopilot, o GKE vai ignorar o campo.priorities.podFamily: usa a regra de prioridadepodFamilypara executar pods na plataforma de computação otimizada para contêineres do Autopilot.priorityDefaults.location: define as zonas em que o GKE precisa criar nós para pods que usam a ComputeClass.
Implante a ComputeClass:
kubectl apply -f PATH_TO_COMPUTECLASS_MANIFESTSubstitua
PATH_TO_COMPUTECLASS_MANIFESTpelo caminho do manifesto da ComputeClass da etapa anterior.Verifique se a ComputeClass existe:
kubectl get computeclassesO resultado será assim:
NAME AGE n4-class 3s
Ativar o Autopilot para uma ComputeClass personalizada
É possível ativar o Autopilot em ComputeClasses personalizadas atuais que estão em um cluster Standard. A ativação do Autopilot em uma ComputeClass que está em um cluster do Autopilot não tem efeito, porque todo o cluster usa o modo Autopilot.
Depois de ativar o Autopilot para uma ComputeClass atual, o GKE usa o Autopilot para executar novos pods que selecionam a ComputeClass. Se você tiver pods atuais em nós Standard que selecionam a ComputeClass do Autopilot, esses pods vão usar o Autopilot somente quando forem recriados.
Para atualizar uma ComputeClass personalizada atual para usar o modo Autopilot, siga estas etapas:
Em um editor de texto, atualize o arquivo de manifesto da ComputeClass atual para adicionar o campo
spec.autopilot:spec: autopilot: enabled: trueSubstitua o recurso
ComputeClassatual na API Kubernetes pela especificação atualizada:kubectl replace --force -f PATH_TO_UPDATED_MANIFESTSubstitua
PATH_TO_UPDATED_MANIFESTpelo caminho do arquivo de manifesto atualizado.Para acionar a criação de novos nós, recrie todas as cargas de trabalho que usam a classe de computação.
Depois de aplicar o manifesto atualizado, todos os novos nós que o GKE criar para essa ComputeClass vão usar o Autopilot. O GKE não modifica nenhum nó atual criado antes da atualização.
Verificar se a carga de trabalho usa o Autopilot
Selecione uma das seguintes opções:
Console
No Google Cloud console, acesse a página Cargas de trabalho do GKE.
Para a carga de trabalho, verifique o valor na coluna Tipo de nó. Se a carga de trabalho usar o modo Autopilot, esse valor será Gerenciado pelo Autopilot.
CLI kubectl
Verifique os nomes dos nós que executam os pods:
kubectl get pods -l=app=hello -o wide
O resultado será assim:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
helloweb-79b9f6f75-5wwc9 1/1 Running 0 152m 10.102.1.135 gk3-cluster-1-nap-10abc8ya1-f66c6cef-wg5g <none> <none>
helloweb-79b9f6f75-9skb9 1/1 Running 0 4d3h 10.102.0.140 gk3-cluster-1-nap-10abc8ya1-632bac02-hjl6 <none> <none>
helloweb-79b9f6f75-h7bdv 1/1 Running 0 152m 10.102.1.137 gk3-cluster-1-nap-10abc8ya1-f66c6cef-wg5g <none> <none>
Nessa saída, o prefixo gk3- na coluna Nó indica que o nó é gerenciado pelo Autopilot.
Aplicar uma ComputeClass do Autopilot por padrão
É possível definir uma ComputeClass integrada ou personalizada como a ComputeClass padrão para um namespace ou para um cluster inteiro. A ComputeClass padrão se aplica a qualquer pod que não selecione explicitamente uma ComputeClass diferente. Se você definir uma ComputeClass do Autopilot como padrão, poderá garantir que todos os pods sejam executados no modo Autopilot, a menos que uma carga de trabalho selecione uma opção diferente.
Se a ComputeClass definida como padrão usar regras de prioridade podFamily, os pods que não selecionarem uma ComputeClass diferente poderão ser executados como pods do Autopilot de uso geral. Esse método permite usar o modelo de faturamento baseado em pod por padrão no cluster ou namespace e é útil quando muitas cargas de trabalho não têm requisitos de hardware especiais.
Para mais informações, consulte Aplicar ComputeClasses a pods por padrão.
A seguir
- Para os parâmetros que podem ser especificados em ComputeClasses, consulte a ComputeClass CustomResourceDefinition.