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:
gkectl update credentials
: use para atualizar as credenciais do cluster.gkectl update admin
: execute este comando depois de fazer uma alteração no arquivo de configuração do cluster de administrador.gkectl update cluster
: execute este comando depois de fazer uma alteração no arquivo de configuração do cluster de usuários.
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
No console, acesse a página Visão geral dos clusters do Google Kubernetes Engine.
Selecione o projeto do Google Cloud e, em seguida, o cluster que você quer atualizar.
No painel Detalhes, clique em Mais detalhes.
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.
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:
Clusters de administrador:
gcloud container vmware admin-clusters update
Clusters de usuários:
gcloud container vmware clusters update
Pools de nós em um cluster de usuários:
gcloud container vmware node-pools update
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
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:
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:
Como rotacionar certificados de CA do cluster de administrador
Como alternar as autoridades de certificação do cluster de usuário