Atualizar um cluster

Este documento mostra como fazer uma atualização do cluster que não inclui uma alteração na versão.

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

Uma atualização de um cluster é um caso especial de uma atualização de cluster que inclui uma alteração à versão do plano de controlo ou uma alteração à versão de um node pool. Para informações sobre a atualização, consulte o artigo Atualizar o Google Distributed Cloud.

Reveja as regras de firewall

Na versão 1.29 e posteriores, as verificações prévias do lado do servidor estão ativadas por predefinição. As verificações prévias do lado do servidor requerem regras de firewall adicionais. Em Regras de firewall para clusters de administrador, pesquise "Verificações prévias" e certifique-se de que todas as regras de firewall necessárias estão configuradas.

Com as verificações prévias do lado do servidor, quando atualiza um cluster de utilizadores com gkectl, as verificações prévias são executadas no cluster de administrador em vez de localmente na estação de trabalho de administrador. As verificações prévias do lado do servidor são executadas no cluster de administração quando usa a consola, a CLI Google Cloud ou o Terraform para atualizar um cluster. Google Cloud

Quando atualiza um cluster de administrador, o Google Distributed Cloud implementa um cluster Kubernetes in Docker (kind) para alojar temporariamente os controladores do Kubernetes necessários para atualizar o cluster de administrador. Este cluster transitório é denominado cluster de arranque. As verificações prévias do lado do servidor são executadas no cluster de arranque quando atualiza um cluster de administrador.

O que pode ser atualizado

É possível atualizar algumas funcionalidades e definições do cluster, mas não é possível atualizar outras funcionalidades e definições após a criação do cluster. Para ver que funcionalidades podem ser atualizadas, consulte as páginas de referência do ficheiro de configuração do cluster de administrador e do ficheiro de configuração do cluster de utilizador. Os campos que podem ser atualizados estão marcados como Mutáveis e os campos que não podem ser atualizados estão marcados como Imutáveis.

Também pode ver que funcionalidades e definições podem ser atualizadas através da execução de gkectl comandos.

Para ver o que pode ser atualizado num 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 ver o que pode ser atualizado num cluster de utilizadores:

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

Atualize uma coisa de cada vez

Atualize apenas uma funcionalidade ou uma definição de cada vez. Por exemplo, suponhamos que quer atualizar a CPU e a memória principais e também quer desativar a reparação automática.

Em seguida, faria duas atualizações separadas: uma para a CPU principal e a memória, e outra para a reparação automática. Verifique se a primeira atualização foi realizada com êxito antes de fazer a segunda atualização.

Procedimento de atualização

Pode usar gkectl, a consola Google Cloud ou a CLI gcloud para fazer atualizações a um cluster de utilizadores. Se criou o cluster de utilizadores com o Terraform, pode usar o Terraform para atualizar o cluster. Em quase todos os casos, tem de usar gkectl para atualizar clusters de administrador.

Se estiver a usar o gkectl para atualizar um cluster, certifique-se de que a sua estação de trabalho de administrador tem a versão necessária do gkectl. Normalmente, usa a mesma versão do gkectl que a versão do cluster que está a atualizar. As seguintes regras de versão são aplicadas durante a atualização:

  • A versão secundária gkectl não pode ser inferior à versão secundária do cluster. Por exemplo, não é permitido atualizar um cluster 1.30 com a versão 1.29.gkectl As versões de patch não são importantes. Por exemplo, pode usar a versão 1.29.0-gke.1456 para atualizar um cluster com uma versão de patch superior, como 1.29.1000-gke.94.gkectl

  • A versão secundária gkectl não pode ser mais de duas versões secundárias superior à versão do cluster. Por exemplo, se estiver a atualizar um cluster 1.28, a versão gkectl pode ser 1.29 ou 1.30. No entanto, não pode usar a versão gkectl 1.31 porque é três versões secundárias superior à versão do cluster.

  • Se estiver a atualizar o cluster para um cluster avançado, a versão do gkectl tem de ser igual à versão do cluster.

Se necessário, consulte Transferir gkectl para obter uma versão suportada do gkectl.

Os exemplos seguintes mostram como atualizar clusters.

gkectl

O comando gkectl update tem um dos seguintes formatos:

Exemplo de cluster de administrador (gkectl update admin)

Suponhamos que quer alterar o valor de gkeOnPremAPI.enabled de false para true num cluster de administrador. Primeiro, edite o ficheiro 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 o seguinte:

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

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

Exemplo de cluster de utilizadores (gkectl update cluster)

Suponhamos que quer alterar o valor de stackdriver.vSphereDisableResourceMetrics de false para true num cluster de utilizadores. Primeiro, edite o ficheiro de configuração do cluster de utilizadores e defina o valor como true:

stackdriver:
  disableVsphereResourceMetrics: true

Em seguida, atualize o cluster de utilizadores:

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 do utilizador

Exemplo de cluster de utilizadores (gkectl update credentials)

Suponhamos que quer alterar as credenciais que um cluster de utilizadores usa para chamar o servidor vCenter.

O ficheiro de configuração do cluster de utilizadores tem um campo vCenter.credentials.fileRef.path que aponta para um ficheiro de configuração de credenciais. No ficheiro de configuração das 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 o seguinte:

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

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

Consola

  1. Na consola, aceda à página Vista geral dos clusters do Google Kubernetes Engine.

    Aceda aos clusters do GKE

  2. Selecione o Google Cloud projeto e, de seguida, selecione o cluster que quer atualizar.

  3. No painel Detalhes, clique em Mais detalhes.

  4. Os campos que podem ser atualizados na Google Cloud consola têm um ícone de lápis. Clique num dos ícones de lápis. Na caixa apresentada, altere os valores dos campos conforme pretendido e clique em CONCLUÍDO.

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

CLI gcloud

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

Atualize os utilizadores administradores num cluster de utilizadores

O servidor da API Kubernetes de cada cluster tem de poder autorizar os pedidos que recebe. Para configurar a autorização, tem de configurar as políticas de controlo de acesso baseado em funções (CABF) do Kubernetes em cada cluster. Um utilizador administrador é um utilizador ao qual foi atribuída a função cluster-admin no cluster de utilizadores. Esta função concede ao utilizador acesso administrativo total ao cluster.

Suponhamos que a Alice e o Bob são os únicos utilizadores administradores no cluster de utilizadores denominado cluster-1 na região us-west1. Suponhamos que a Alice quer adicionar o Tiago como utilizador administrador adicional. A Alice 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

O comando anterior mantém a Alice e o Bob na lista de utilizadores administradores e adiciona o Trent à lista de utilizadores administradores. Tenha em atenção que Alice e Bob têm de ser apresentados no comando, porque o comando substitui a lista atual de utilizadores administradores pela lista especificada no comando. Tenha também em atenção que cada flag --admin-users especifica apenas um utilizador. Não pode especificar vários utilizadores numa única flag.

Terraform

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

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

Atualize os utilizadores administradores num cluster de utilizadores

O servidor da API Kubernetes de cada cluster tem de poder autorizar os pedidos que recebe. Para configurar a autorização, tem de configurar as políticas de controlo de acesso baseado em funções (CABF) do Kubernetes em cada cluster. Um utilizador administrador é um utilizador ao qual foi atribuída a função cluster-admin no cluster de utilizadores. Esta função concede ao utilizador acesso administrativo total ao cluster.

Suponhamos que a Alice e o Bob são os únicos utilizadores administradores num cluster de utilizadores específico. Suponhamos que a Alice quer adicionar o Tiago como utilizador administrador adicional. A Alice pode ajustar a configuração do Terraform da seguinte forma e, em seguida, executar terraform apply:

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

O ajuste anterior mantém a Alice e o Bob na lista de utilizadores administradores e adiciona o Trent à lista de utilizadores administradores. Tenha em atenção que Alice e Bob têm de estar listados na nova configuração, porque o comando terraform apply substitui a lista atual de utilizadores administradores pela lista especificada na configuração.

Mais informações

Os documentos indicados nesta secção fornecem detalhes adicionais sobre a atualização de clusters.

Atualizar cluster/administrador

Os documentos seguintes fornecem detalhes sobre a utilização do gkectl update admin e do gkectl update cluster para atualizar funcionalidades e definições:

Atualize as credenciais

Os seguintes documentos fornecem detalhes sobre a utilização de gkectl update credentials para atualizar chaves e certificados:

O que se segue?

Atualize um cluster