Atualizar um cluster

Neste documento, mostramos como realizar uma atualização de cluster que não inclui uma mudança na versão.

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

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

Revise suas regras de firewall

Na versão 1.29 e em versões mais recentes, as verificações de simulação do lado do servidor são ativadas por padrão. As verificações de simulação do lado do servidor não exigem regras de firewall adicionais. Em Regras de firewall para clusters de administrador, pesquise Verificações de simulação e garantir que todas as regras de firewall necessárias sejam configurados.

Com as verificações de simulação do lado do servidor, ao atualizar um cluster de usuários usando gkectl, as verificações de simulação são executadas no cluster de administrador em vez de 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 ao usar o console do Google Cloud, a CLI do Google Cloud ou o Terraform para atualizar um cluster.

Ao atualizar um cluster de administrador, o Google Distributed Cloud implanta um cluster do Kubernetes no Docker (tipo) para hospedar temporariamente os controladores do Kubernetes necessários para atualizar o cluster de administrador. Esse cluster transitó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

Após a criação do cluster, há alguns recursos e configurações do cluster que podem ser atualizados, mas há outros que não podem. Para saber 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ários. Os campos que podem ser atualizados são marcados como Mutável, e os que não podem são marcados como Imutável.

Também é possível conferir quais recursos e configurações podem ser atualizados executando os comandos gkectl.

Para saber 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 saber o que pode ser atualizado em um cluster de usuários:

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 uma coisa por vez

Atualize apenas um recurso ou uma configuração por vez. Por exemplo, imagine que você quer atualizar a memória e a CPU mestre e desativar o reparo automático.

Para isso, você faria duas atualizações diferentes: uma para a memória e a CPU mestre e outra para o reparo automático. Verifique se a primeira atualização foi concluída antes de fazer a segunda.

Procedimento de atualização

É possível usar gkectl, o console do Google Cloud ou a CLI do Google Cloud para fazer atualizações em um cluster de usuários. Se você criou o cluster de usuários usando o Terraform, é possível usá-lo para atualizar o cluster. 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 tem um destes formatos:

Exemplo de cluster de administrador (gkectl update admin)

Imagine que você quer mudar 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 admin --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ários (gkectl update cluster)

Imagine que você quer mudar o valor de stackdriver.vSphereDisableResourceMetrics de false para true em um cluster de usuários. Primeiro, edite o arquivo de configuração do cluster de usuários e defina o valor como true:

stackdriver:
  disableVsphereResourceMetrics: true

Em seguida, atualize o cluster de usuários:

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ários (gkectl update credentials)

Imagine que você quer mudar as credenciais que um cluster de usuários usa para chamar o vCenter Server.

O arquivo de configuração do cluster de usuários 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. Por 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ários

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

Console

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

    Acesse os clusters do GKE

  2. Selecione o projeto do Google Cloud e, em seguida, 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 exibida, mude os valores do campo conforme necessário e clique em CONCLUÍDO.

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

gcloud CLI

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

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

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

Imagine que Alice e Bob sejam os únicos usuários administradores no cluster de usuários cluster-1 que está na região us-west1. Agora, imagine que Alice quer adicionar Trent como outro usuário administrador. Ela pode executar o seguinte comando:

gcloud container vmware clusters update cluster-1 \
    --project example-project-id-12345 \
    --location us-west1 \
    --admin-users alice@example.com \
    --admin-users bob@example.com \
    --admin-users trent@example.com

Esse comando mantém Alice e Bob na lista de usuários administradores e também adiciona Trent a essa lista. Alice e Bob precisam estar listados do comando, porque ele 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 flag.

Terraform

  1. Mude os valores dos campos aplicáveis no arquivo de configuração do Terraform usado 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. Execute terraform apply para atualizar a configuração.

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

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

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

authorization {
  admin_users {
    username = "alice@example.com"
    username = "bob@example.com"
    username = "trent@example.com"
  }
}

O ajuste anterior mantém Alice e Bob na lista de usuários administradores e também adiciona Trent a ela. 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 clusters/administradores

Estes documentos fornecem detalhes sobre como usar gkectl update admin e gkectl update cluster para atualizar recursos e configurações:

Atualizar credenciais

Estes documentos fornecem detalhes sobre como usar gkectl update credentials para atualizar chaves e certificados:

A seguir

Fazer upgrade de um cluster