Atualizar um cluster

Neste documento, mostramos como executar uma atualização de cluster que não inclui uma alteração de versão.

Uma atualização de cluster é uma alteração na configuração do cluster.

Um upgrade de cluster é um caso especial de atualização de cluster que inclui uma alteração na versão do plano de controle ou em uma versão do pool de nós. Para informações sobre como fazer upgrade, consulte Como fazer upgrade do Google Distributed Cloud.

Revise suas regras de firewall

Na versão 1.29 e mais recentes, as verificações de simulação do lado do servidor estão ativadas por padrão. As verificações de simulação do lado do servidor exigem regras de firewall adicionais. Em Regras de firewall para clusters de administrador, procure "Verificações de simulação" e verifique se todas as regras de firewall necessárias estão configuradas.

Com as verificações de simulação do lado do servidor, quando você atualiza um cluster de usuário usando gkectl, elas são executadas no cluster do administrador, e não localmente na estação de trabalho do administrador. As verificações de simulação do lado do servidor são executadas no cluster de administrador quando você usa o console do Google Cloud, a Google Cloud CLI ou o Terraform para atualizar um cluster.

Quando você atualiza um cluster de administrador, o Google Distributed Cloud implanta um cluster de Kubernetes no Docker (tipo) para hospedar temporariamente os controladores do Kubernetes necessários para atualizar o cluster de administrador. Esse cluster temporário é chamado de cluster de inicialização. As verificações de simulação do lado do servidor são executadas no cluster de inicialização quando você atualiza um cluster de administrador.

O que pode ser atualizado

Alguns recursos e configurações do cluster podem ser atualizados, mas outros recursos e configurações não podem ser atualizados após a criação do cluster. Para ver quais recursos podem ser atualizados, consulte as páginas de referência do arquivo de configuração do cluster de administrador e do arquivo de configuração do cluster de usuário. Os campos que podem ser atualizados são marcados como Mutáveis e os que não podem ser atualizados são marcados como Imutáveis.

Você também pode conferir quais recursos e configurações podem ser atualizados executando comandos gkectl.

Para verificar o que pode ser atualizado em um cluster de administrador:

gkectl update admin --help

Exemplo de saída:

Update the admin cluster. Only the following updates are supported and they can
only be updated one at a time:
- Enabling/Disabling Vsphere Resource Metrics
- Adding static IPs
- Updating vCenter CA certificate
- Registering Admin Cluster
- Enabling/Disabling Cloud Audit Logging
- Enabling/Disabling Stackdriver
- Enabling/Disabling Auto Repair
- Enabling/Disabling Auto Resize for Addon Nodes
- Enabling/Disabling GKE OnPrem API
- Updating OS Image Type
- Enabling/Disabling AntiAffinityGroups
- Update Secrets Encryption Configuration
- [Preview] Enabling/Disabling Cluster Backup
- [Preview] Update Cluster Backup configs

Para verificar o que pode ser atualizado em um cluster de usuário:

gkectl update cluster --help

Exemplo de saída:

Update a GKE On-Prem cluster. Only the following updates are supported and they
can only be updated one at a time:
- Adding static IPs
- Updating node pool
- Updating user master cpu and memory
- Enabling/Disabling Vsphere Resource Metrics
- Enabling/Disabling vSphere CSI deployment
- Enabling/Disabling Auto Repair
- Enabling/Disabling Cloud Audit Logging
- Enabling/Disabling Stackdriver
- Enabling/Disabling GKE OnPrem API
- Registering User Cluster
- Updating vCenter CA certificate
- Updating MetalLB Address Pools
- Enabling/Disabling Auto Resizing on user master
- Updating NodePoolUpdatePolicy
- Enabling/Disabling AntiAffinityGroups
- [Preview] Enabling/Disabling Node Network Policy
- Updating Secrets Encryption
- Enabling/Disabling DataplaneV2 forwardMode

Atualizar um item de cada vez

Atualizar apenas um recurso ou configuração por vez. Por exemplo, suponha que você queira atualizar a CPU e a memória mestre e também desativar o reparo automático.

Em seguida, você faria duas atualizações separadas: uma para a CPU e a memória mestre e outro reparo automático. Verifique se a primeira atualização foi bem-sucedida antes de fazer a segunda.

Procedimento de atualização

É possível usar gkectl, o console do Google Cloud ou a Google Cloud CLI para fazer atualizações em um cluster de usuário. Se você criou o cluster de usuário usando o Terraform, pode usá-lo para atualizá-lo. Em quase todos os casos, é necessário usar gkectl para atualizar clusters de administrador.

Os exemplos a seguir mostram como atualizar clusters.

gkectl

O comando gkectl update assume uma das seguintes formas:

Exemplo de cluster de administrador (gkectl update admin)

Suponha que você queira alterar o valor de gkeOnPremAPI.enabled de false para true em um cluster de administrador. Primeiro, edite o arquivo de configuração do cluster de administrador e defina o valor como true:

gkeOnPremAPI:
  enabled: true

Em seguida, atualize o cluster de administrador:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG

Substitua:

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

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

Exemplo de cluster de usuário (gkectl update cluster)

Suponha que você queira alterar o valor de stackdriver.vSphereDisableResourceMetrics de false para true em um cluster de usuário. Primeiro, edite o arquivo de configuração do cluster de usuário e defina o valor como true:

stackdriver:
  disableVsphereResourceMetrics: true

Em seguida, atualize o cluster de usuário:

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

Exemplo de cluster de usuário (gkectl update credentials)

Suponha que você queira alterar as credenciais que um cluster de usuário usa para chamar o servidor vCenter.

O arquivo de configuração do cluster de usuário tem um campo vCenter.credentials.fileRef.path que aponta para um arquivo de configuração de credenciais. No arquivo de configuração de credenciais, atualize os valores de username e password. Exemplo:

items:
- name: "vcenter-creds"
  username: "new-vcenter-account"
  password: "U$icUKEW#INE"

Em seguida, atualize as credenciais:

gkectl update credentials vsphere \
    --config USER_CLUSTER_CONFIG \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Substitua:

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

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

Console

  1. No console, acesse a página de visão geral dos clusters do Google Kubernetes Engine.

    Acesse os clusters do GKE

  2. Selecione o projeto do Google Cloud e o cluster que você quer atualizar.

  3. No painel Detalhes, clique em Mais detalhes.

  4. Os campos que podem ser atualizados no console do Google Cloud têm um ícone de lápis. Clique em um dos ícones de lápis. Na caixa que será aberta, altere os valores do campo conforme desejado e clique em CONCLUÍDO.

  5. Na parte de cima da página, clique em Mostrar detalhes na barra de progresso. Aguarde a conclusão da atualização.

CLI da gcloud

Execute o comando de atualização aplicável. Especifique apenas as sinalizações da configuração que você quer modificar:

Atualizar usuários administradores em um cluster de usuário

O servidor da API Kubernetes de cada cluster precisa autorizar as solicitações recebidas. Para configurar a autorização, você precisa configurar as políticas de controle de acesso baseado em papéis (RBAC) do Kubernetes em cada cluster. Um usuário administrador é um usuário que recebeu o papel cluster-admin no cluster de usuário. Esse papel concede ao usuário acesso administrativo total ao cluster.

Suponha que Alice e Bob sejam os únicos usuários administradores no cluster de usuário chamado cluster-1 na região us-west1. Suponha que Alice queira adicionar Trent como usuário administrador adicional. Alice poderia executar o seguinte comando:

gcloud container vmware clusters update cluster-1 \
    --project example-project-id-12345 \
    --location us-west1 \
    --admin-users [email protected] \
    --admin-users [email protected] \
    --admin-users [email protected]

O comando anterior mantém Alice e Bob na lista de usuários administradores e adiciona Trent à lista de usuários administradores. Observe que Alice e Bob precisam estar listados no comando, porque o comando substitui a lista atual de usuários administradores pela lista especificada no comando. Além disso, cada flag --admin-users especifica apenas um usuário. Não é possível especificar vários usuários em uma única sinalização.

Terraform

  1. Altere os valores dos campos aplicáveis no arquivo de configuração do Terraform que você usou para criar o cluster ou o pool de nós. Para descrições detalhadas dos campos, consulte a documentação de referência do Terraform:

  2. Atualize a configuração executando terraform apply.

Atualizar usuários administradores em um cluster de usuário

O servidor da API Kubernetes de cada cluster precisa autorizar as solicitações recebidas. Para configurar a autorização, você precisa configurar as políticas de controle de acesso baseado em papéis (RBAC) do Kubernetes em cada cluster. Um usuário administrador é um usuário que recebeu o papel cluster-admin no cluster de usuário. Esse papel concede ao usuário acesso administrativo total ao cluster.

Suponha que Alice e Bob sejam os únicos usuários administradores em um cluster de usuário específico. Suponha que Alice queira adicionar Trent como um usuário administrador adicional. Alice pode ajustar a configuração do Terraform da seguinte maneira e, em seguida, executar terraform apply:

authorization {
  admin_users {
    username = "[email protected]"
    username = "[email protected]"
    username = "[email protected]"
  }
}

O ajuste anterior mantém Alice e Bob na lista de usuários administradores e adiciona Trent à lista de usuários administradores. Observe que Alice e Bob precisam estar listados na nova configuração, porque o comando terraform apply substitui a lista atual de usuários administradores pela lista especificada na configuração.

Mais informações

Os documentos listados nesta seção fornecem mais detalhes sobre a atualização de clusters.

Atualizar cluster/administrador

Os documentos a seguir fornecem detalhes sobre o uso de gkectl update admin e gkectl update cluster para atualizar recursos e configurações:

Atualizar credenciais

Os documentos a seguir fornecem detalhes sobre o uso de gkectl update credentials para atualizar chaves e certificados:

A seguir

Fazer upgrade de um cluster