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