Quando cria um cluster do Kubernetes isolado do ar do Google Distributed Cloud (GDC), o número de nós e o tipo de nós que especificar criam o primeiro conjunto de nós do cluster. Pode realizar as seguintes tarefas do conjunto de nós para um cluster existente à medida que os respetivos requisitos de computação mudam:
Adicione um novo conjunto de nós: adicione novos conjuntos de nós à medida que a procura das cargas de trabalho do cluster aumenta.
Ver um conjunto de nós: veja as caraterísticas e o estado dos seus conjuntos de nós existentes.
Redimensione um conjunto de nós: aumente ou diminua manualmente a escala dos seus conjuntos de nós para se adaptar às flutuações do tráfego de carga de trabalho.
Eliminar um node pool: remova node pools se a procura das cargas de trabalho do cluster diminuir ou se quiser eliminar tipos de máquinas que já não são prudentes para as operações de contentores.
Para mais informações sobre os conjuntos de nós num cluster, consulte o artigo Acerca dos nós.
Este documento destina-se a programadores de aplicações no grupo de operadores de aplicações e a administradores de TI no grupo de administradores da plataforma responsáveis pela gestão de clusters do Kubernetes na respetiva organização. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
Antes de começar
Para concluir as tarefas neste documento, tem de ter os seguintes recursos e funções:
Para ver e gerir node pools num cluster do Kubernetes partilhado, peça ao administrador de IAM da organização que lhe conceda as seguintes funções:
- Administrador do cluster de utilizadores (
user-cluster-admin) - Visualizador de nós de cluster de utilizadores (
user-cluster-node-viewer)
Estas funções não estão associadas a um espaço de nomes.
- Administrador do cluster de utilizadores (
Para ver e gerir node pools num cluster Kubernetes padrão, peça ao administrador de IAM da organização que lhe conceda a função de administrador do cluster padrão (
standard-cluster-admin). Esta função está associada ao espaço de nomes do seu projeto.Para executar comandos num cluster do Kubernetes, certifique-se de que tem os seguintes recursos:
Localize o nome do cluster do Kubernetes ou pergunte a um membro do grupo de administradores da plataforma qual é o nome do cluster.
Inicie sessão e gere o ficheiro kubeconfig para o cluster do Kubernetes, se não tiver um.
Use o caminho kubeconfig do cluster Kubernetes para substituir
KUBERNETES_CLUSTER_KUBECONFIGnestas instruções.
Adicione um node pool
Para adicionar um node pool a um cluster do Kubernetes existente, conclua os seguintes passos:
Consola
- No menu de navegação, selecione Kubernetes Engine > Clusters.
- Clique no cluster na lista de clusters. É apresentada a página Detalhes do cluster.
- Selecione Conjuntos de nós > Adicionar conjunto de nós.
- Atribua um nome ao conjunto de nós. Não pode modificar o nome depois de criar o conjunto de nós.
- Especifique o número de nós de trabalho a criar no node pool.
- Selecione a classe de máquinas mais adequada aos requisitos da sua carga de trabalho. As
classes de máquinas são apresentadas nas seguintes definições:
- Tipo de máquina
- vCPU
- Memória
- Clique em Guardar.
API
Abra a especificação do recurso personalizado
Clustercom a CLIkubectlatravés do editor interativo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERSubstitua o seguinte:
KUBERNETES_CLUSTER_NAME: o nome do cluster.KUBERNETES_CLUSTER_NAMESPACE: o espaço de nomes do cluster. Para clusters partilhados, use o espaço de nomesplatform. Para clusters padrão, use o espaço de nomes do projeto do cluster.MANAGEMENT_API_SERVER: o caminho kubeconfig do servidor da API zonal onde o cluster Kubernetes está alojado. Se ainda não gerou um ficheiro kubeconfig para o servidor da API na zona segmentada, consulte Iniciar sessão para ver detalhes.
Adicione uma nova entrada na secção
nodePools:nodePools: ... - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS acceleratorOptions: gpuPartitionScheme: GPU_PARTITION_SCHEMESubstitua o seguinte:
MACHINE_TYPE: o tipo de máquina para os nós de trabalho do node pool. Veja os tipos de máquinas disponíveis para o que está disponível para configuração.NODE_POOL_NAME: o nome do node pool.NUMBER_OF_WORKER_NODES: o número de nós de trabalho a aprovisionar no node pool.TAINTS: as restrições a aplicar aos nós deste node pool. Este é um campo opcional.LABELS: as etiquetas a aplicar aos nós deste conjunto de nós. Contém uma lista de pares de chave-valor. Este é um campo opcional.GPU_PARTITION_SCHEME: o esquema de partição da GPU, se estiver a executar cargas de trabalho da GPU. Por exemplo,mixed-2. A GPU não é particionada se este campo não estiver definido. Para ver os perfis de GPU multi-instância (MIG) disponíveis, consulte os perfis de MIG suportados.
Guarde o ficheiro e saia do editor.
Ver node pools
Para ver os conjuntos de nós existentes num cluster do Kubernetes, conclua os seguintes passos:
Consola
- No menu de navegação, selecione Kubernetes Engine > Clusters.
- Clique no cluster na lista de clusters. É apresentada a página Detalhes do cluster.
- Selecione Conjuntos de nós.
É apresentada a lista de node pools em execução no cluster. Pode gerir os conjuntos de nós do cluster a partir desta página.
API
Veja os node pools de um cluster do Kubernetes específico:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatusesSubstitua o seguinte:
KUBERNETES_CLUSTER_NAME: o nome do cluster.KUBERNETES_CLUSTER_NAMESPACE: o espaço de nomes do cluster. Para clusters partilhados, use o espaço de nomesplatform. Para clusters padrão, use o espaço de nomes do projeto do cluster.
O resultado é semelhante ao seguinte:
[ { "conditions": [ { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "NodepoolReady", "status": "True", "type": "Ready" }, { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "ReconciliationCompleted", "status": "False", "type": "Reconciling" } ], "name": "worker-node-pool", "readyNodes": 3, "readyTimestamp": "2023-08-31T18:59:46Z", "reconcilingNodes": 0, "stalledNodes": 0, "unknownNodes": 0 } ]
Redimensione node pools
Pode redimensionar manualmente os node pools num cluster do Kubernetes aumentando ou diminuindo a escala do pool. Não é possível selecionar um nó específico para remover quando reduz o tamanho de um conjunto de nós.
Para dimensionar um conjunto de nós num cluster existente, conclua os seguintes passos:
Consola
- No painel de controlo, selecione o projeto no qual existe o cluster que quer editar.
- No menu de navegação, selecione Kubernetes Engine > Clusters.
- Selecione o nome do cluster ao qual o conjunto de nós está associado. É apresentada a página Detalhes do cluster.
- Clique no separador Conjuntos de nós.
- Selecione o ícone edit Editar para o conjunto de nós que quer redimensionar. É apresentado o comando Editar node pool.
Atualize o campo Número de nós para refletir a nova quantidade de nós necessários no node pool. Pode aumentar ou diminuir o número de nós para se adequar aos requisitos da sua carga de trabalho.
Clique em Guardar.
Navegue novamente para o separador Conjuntos de nós do cluster e confirme se o conjunto de nós redimensionado tem o estado
Readye o número correto de nós. A expansão do conjunto de nós para a sua especificação pode demorar alguns minutos.
API
Abra a especificação do recurso personalizado
Clustercom a CLI kubectl através do editor interativo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERSubstitua o seguinte:
KUBERNETES_CLUSTER_NAME: o nome do cluster que aloja o conjunto de nós.KUBERNETES_CLUSTER_NAMESPACE: o espaço de nomes do cluster. Para clusters partilhados, use o espaço de nomesplatform. Para clusters padrão, use o espaço de nomes do projeto do cluster.MANAGEMENT_API_SERVER: o caminho kubeconfig do servidor da API zonal onde o cluster Kubernetes está alojado. Se não tiver gerado um ficheiro kubeconfig para o servidor da API na sua zona segmentada, consulte Recursos do servidor da API de gestão zonal.
Atualize o campo
nodeCountpara o node pool a redimensionar:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODESSubstitua
NUMBER_OF_WORKER_NODESpelo número atualizado de nós de trabalho a aprovisionar no node pool.Guarde o ficheiro e saia do editor.
Verifique se o dimensionamento dos nós está concluído verificando a configuração do conjunto de nós:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE -o json \ --kubeconfig MANAGEMENT_API_SERVER | jq .status.workerNodePoolStatusesConfirme se o número
readyNodesreflete a quantidade de nós que definiu para o conjunto de nós. O dimensionamento do conjunto de nós de acordo com a sua especificação pode demorar alguns minutos.
Elimine um node pool
A eliminação de um node pool elimina os nós e os respetivos trajetos. Estes nós desalojam e reprogramam todos os pods em execução nos mesmos. Se os pods tiverem seletores de nós específicos, os pods podem permanecer numa condição não agendável se nenhum outro nó no cluster satisfizer os critérios.
Certifique-se de que tem, pelo menos, três nós de trabalho antes de eliminar um conjunto de nós para garantir que o cluster tem espaço de computação suficiente para ser executado de forma eficaz.
Para eliminar um conjunto de nós, conclua os seguintes passos:
Consola
No menu de navegação, selecione Kubernetes Engine > Clusters.
Clique no cluster que está a alojar o conjunto de nós que quer eliminar.
Selecione Conjuntos de nós.
Clique em delete Eliminar junto ao conjunto de nós que quer eliminar.
API
Abra a especificação do recurso personalizado
Clustercom a CLI kubectl através do editor interativo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERSubstitua o seguinte:
KUBERNETES_CLUSTER_NAME: o nome do cluster.KUBERNETES_CLUSTER_NAMESPACE: o espaço de nomes do cluster. Para clusters partilhados, use o espaço de nomesplatform. Para clusters padrão, use o espaço de nomes do projeto do cluster.MANAGEMENT_API_SERVER: o caminho kubeconfig do servidor da API zonal onde o cluster Kubernetes está alojado. Se não tiver gerado um ficheiro kubeconfig para o servidor da API na sua zona segmentada, consulte Recursos do servidor da API de gestão zonal.
Remova a entrada do node pool da secção
nodePools. Por exemplo, no fragmento seguinte, tem de remover os camposmachineTypeName,nameenodeCount:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3Certifique-se de que remove todos os campos do conjunto de nós que está a eliminar.
Guarde o ficheiro e saia do editor.