Redimensionamento automático de nós

No Google Distributed Cloud, pode ativar o redimensionamento automático de nós para um cluster. A alteração do tamanho 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 para um cluster de administrador, os nós suplementares no cluster de administrador são redimensionados de acordo com o número total de nós no cluster de administrador. Para cada cluster de utilizadores, existem um ou mais nós do plano de controlo no cluster de administrador. Assim, à medida que cria mais clusters de utilizadores, o número total de nós no cluster de administrador aumenta e o tamanho dos nós suplementares no cluster de administrador aumenta automaticamente.

Se a alteração automática do tamanho dos nós estiver ativada para um cluster de utilizadores, o tamanho dos nós do plano de controlo para o cluster de utilizadores é alterado de acordo com o número de nós no cluster de utilizadores. Assim, à medida que adiciona mais nós de trabalho ao cluster de utilizadores, o tamanho dos nós do plano de controlo aumenta. Lembre-se de que os nós do plano de controlo para o cluster de utilizadores estão no cluster de administrador.

Um cluster de utilizadores de alta disponibilidade (HA), o cluster de utilizadores tem três nós do plano de controlo no cluster de administrador e um cluster de utilizadores não HA tem um nó do plano de controlo no cluster de administrador. A alteração do tamanho de um nó requer que o nó seja recriado. Assim, quando o nó do plano de controlo de um cluster de utilizadores sem HA é redimensionado, pode haver um pequeno período de inatividade.

Nos clusters avançados, o redimensionamento automático de nós é suportado na versão 1.33 e superior do Google Distributed Cloud, mas não é suportado nas versões 1.31 e 1.32.

Ative a alteração do tamanho dos nós para os nós de suplementos de um cluster de administrador

Execute os passos nesta secção apenas se o cluster de administrador tiver nós suplementares. Se um cluster de administrador tem nós de suplementos depende da configuração específica e da versão, da seguinte forma:

  • Clusters de administrador não de HA: os clusters de administrador não de HA têm um nó do plano de controlo e dois nós de suplemento.
  • Clusters de administrador de HA:
    • Versão 1.16 e inferior: os clusters de administrador de HA têm três nós do plano de controlo e dois nós de suplemento.
    • Versão 1.28 e superior: os clusters de administrador de HA não têm nós de suplementos. Os três nós são todos nós do plano de controlo.

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

kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG'

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

Se o cluster tiver nós suplementares, ative a alteração do tamanho dos nós para os nós suplementares, da seguinte forma:

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

addonNode:
  autoResize:
    enabled: true

Para um novo cluster de administrador, conclua as instruções em Criar um cluster de administrador.

Para um cluster de administrador existente:

gkectl update admin --config ADMIN_CLUSTER_CONFIG --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Substitua o seguinte:

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

  • ADMIN_CLUSTER_KUBECONFIG: o caminho do ficheiro kubeconfig do cluster de administrador

Ative a alteração do tamanho dos nós para os nós do plano de controlo de um cluster de utilizador

No ficheiro de configuração do cluster de utilizadores, defina masterNode.autoResize.enabled como true:

masterNode:
  autoResize:
    enabled: true

Para um novo cluster de utilizadores, conclua as instruções em Criar um cluster de utilizadores.

Para um cluster existente:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Substitua o seguinte:

  • ADMIN_CLUSTER_KUBECONFIG: o caminho do ficheiro kubeconfig do cluster de administrador

  • USER_CLUSTER_CONFIG: o caminho do ficheiro de configuração do cluster de utilizadores

Depois de ativar a alteração automática do tamanho dos nós para um cluster de utilizador, qualquer tentativa de alterar a CPU ou a memória de um nó do plano de controlo através da execução de gkectl update é rejeitada. Se quiser usar gkectl update para alterar a CPU ou a memória de um nó do plano de controlo do cluster de utilizadores, tem de desativar o redimensionamento automático de nós.

Desative a alteração do tamanho dos nós para os nós suplementares de um cluster de administrador

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

addonNode:
  autoResize:
    enabled: false

Atualize o cluster:

gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG

Desative a alteração do tamanho dos nós para os nós do plano de controlo de um cluster de utilizador

No ficheiro de configuração do cluster de utilizadores, defina masterNode.autoResize.enabled como false:

masterNode:
  autoResize:
    enabled: false

Atualize o cluster:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Quando desativa a alteração automática do tamanho dos nós para um cluster de utilizadores, a CPU e a memória dos nós do plano de controlo são reconciliadas para corresponder aos valores de CPU e memória especificados no ficheiro de configuração do cluster de utilizadores.

Registos e eventos

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

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

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

Para ver os registos 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 dar visibilidade às decisões e ações relevantes para o redimensionamento.

Para encontrar os nomes dos 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