Redimensionamento automático de nós

No Google Distributed Cloud, é possível ativar o redimensionamento automático de nós de um cluster. Isso significa que os recursos de CPU e memória atribuídos a um nó são ajustados.

Se o redimensionamento automático de nós estiver ativado em um cluster de administrador, os nós de complemento no cluster de administrador serão redimensionados de acordo com o número total de nós no cluster de administrador. Para cada cluster de usuário, há um ou mais nós do plano de controle no cluster de administrador. Portanto, à medida que você cria mais clusters de usuário, o número total de nós no cluster de administrador aumenta e os nós de complementos no cluster de administrador são aumentados automaticamente.

Se o redimensionamento automático de nós estiver ativado para um cluster de usuário, os nós do plano de controle para o cluster de usuário serão redimensionados de acordo com o número de nós no cluster. Portanto, à medida que você adiciona mais nós de trabalho ao cluster de usuário, os nós do plano de controle aumentam de tamanho. Lembre-se de que os nós do plano de controle para o cluster de usuário estão no cluster de administrador.

Um cluster de usuário altamente disponível (HA, na sigla em inglês), o cluster de usuário tem três nós de plano de controle no cluster de administrador, e um cluster de usuário não de alta disponibilidade tem um plano de controle. nó no cluster de administrador. Isso requer que o nó seja recriado. Portanto, quando o nó do plano de controle de um cluster de usuário que não é de alta disponibilidade é redimensionado, pode haver uma pequena quantidade de inatividade.

Em clusters avançados, o redimensionamento automático de nós é compatível com o Google Distributed Cloud versão 1.33 e mais recente, mas não com as versões 1.31 e 1.32.

Ativar o redimensionamento de nós para os nós de complementos de um cluster de administrador

Siga as etapas desta seção somente se o cluster de administrador tiver nós complementares. Se um cluster de administrador tem nós complementares depende da configuração e da versão específicas, da seguinte maneira:

  • Clusters de administrador não HA: eles têm um nó do plano de controle e dois nós de complemento.
  • Clusters de administrador de alta disponibilidade:
    • Versão 1.16 e anteriores: os clusters de administrador de alta disponibilidade têm três nós do plano de controle e dois nós de complemento.
    • Versão 1.28 e mais recentes: os clusters de administrador de alta disponibilidade não têm nós de complemento. Os três nós são todos do plano de controle.

Para determinar se o cluster tem nós de complemento, execute o seguinte comando:

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG'

Substitua ADMIN_CLUSTER_KUBECONFIG pelo caminho do arquivo kubeconfig do cluster de administrador.

Se o cluster tiver nós de complemento, ative o redimensionamento de nós para eles da seguinte maneira:

No arquivo de configuração do cluster de administrador, defina addonNode.autoResize.enabled como true:

addonNode:
  autoResize:
    enabled: true

Para um novo cluster de administrador, siga as instruções em Como criar um cluster de administrador.

Para um cluster de administrador atual:

gkectl update admin --config ADMIN_CLUSTER_CONFIG --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Substitua:

  • ADMIN_CLUSTER_CONFIG: o caminho do arquivo de configuração do cluster de administrador.

  • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador;

Ativar o redimensionamento de nós para os nós do plano de controle de um cluster de usuário

No arquivo de configuração do cluster do usuário, defina masterNode.autoResize.enabled como true:

masterNode:
  autoResize:
    enabled: true

Para um novo cluster de usuário, siga as instruções em Como criar um cluster de usuário.

Para um cluster existente:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Substitua:

  • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador;

  • USER_CLUSTER_CONFIG: o caminho do arquivo de configuração do cluster de usuário.

Depois que o redimensionamento automático do nó é ativado para um cluster de usuário, qualquer tentativa de alterar a CPU ou a memória de um nó do plano de controle executando gkectl update é rejeitada. Se você quiser usar gkectl update para alterar a CPU ou a memória de um nó do plano de controle do cluster de usuário, desative o redimensionamento automático do nó.

Desativar o redimensionamento de nós para os nós de complemento de um cluster de administrador

No arquivo de configuração do cluster de administrador, defina addonNode.autoResize.enabled como false:

addonNode:
  autoResize:
    enabled: false

Atualize o cluster:

gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG

Desativar o redimensionamento de nós para os nós do plano de controle de um cluster de usuário

No arquivo de configuração do cluster do usuário, defina masterNode.autoResize.enabled como false:

masterNode:
  autoResize:
    enabled: false

Atualize o cluster:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Ao desativar o redimensionamento automático do nó para um cluster de usuário, a CPU e a memória dos nós do plano de controle são reconciliadas para corresponder aos valores de CPU e memória especificados no arquivo de configuração do cluster de usuário.

Registros e eventos

Para encontrar o nome do pod de redimensionamento automático:

kubectl --kubeconfig ADMIN_KUBECONFIG describe deployment auto-resize-controller

O nome do pod tem o formato auto-resize-controller-xxxxx.

Para ver os registros do pod de redimensionamento automático:

kubectl --kubeconfig ADMIN_KUBECONFIG logs AUTO_RESIZE_POD_NAME

O controlador de redimensionamento automático gera eventos nos objetos MachineDeployment para fornecer visibilidade sobre decisões e ações relevantes para o redimensionamento.

Para encontrar os nomes das MachineDeployments:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machinedeployments --all-namespaces

Para ver os eventos:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe machinedeployment USER_CONTROL_PLANE_NODE_MACHINE_DEPLOYMENT
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe machinedeployment ADMIN_ADDON_NODE_MACHINE_DEPLOYMENT