Nesta página, descrevemos como atualizar o GKE nas configurações do cluster da AWS. Use estas instruções para atualizar qualquer configuração atualizável no cluster, incluindo a versão do Kubernetes. Como o upgrade da versão é uma das operações de atualização de cluster mais comuns, uma página separada de upgrade do cluster aborda como fazer upgrade de uma versão de cluster.
Motivos para atualizar um cluster
Um cluster pode ser atualizado por qualquer um dos motivos a seguir:
- Para atualizar a descrição do cluster
- Para atualizar as anotações do cluster.
- Atualizar a lista de usuários administrativos do cluster.
- Atualizar a configuração de geração de registros do cluster.
- Para alternar suas chaves de criptografia.
- Para atualizar os grupos de segurança do plano de controle de cluster.
Também é possível atualizar outros campos nos clusters que não estão listados aqui.
Para ver uma lista completa de parâmetros que é possível atualizar, consulte as
documentações
gcloud container aws clusters update
e
projects.locations.awsClusters.patch
.
Pré-requisitos
Para atualizar qualquer um dos campos do cluster, você precisa ter a permissão
gkemulticloud.googleapis.com/awsClusters.update
Identity and Access Management.Para atualizar os grupos de segurança do cluster, o papel do plano de controle do cluster precisa ter a permissão
ec2:ModifyNetworkInterfaceAttribute
. Para mais informações, consulte Criar o papel do plano de controle.Além disso, para atualizar as tags do cluster, o papel da API do cluster precisa ter as seguintes permissões da AWS:
autoscaling:CreateOrUpdateTags
autoscaling:DeleteTags
ec2:CreateTags
ec2:DescribeLaunchTemplates
ec2:DescribeSecurityGroupRules
ec2:DeleteTags
elasticloadbalancing:AddTags
elasticloadbalancing:RemoveTags
Leia Criar papéis do IAM da AWS para saber como criar e adicionar permissões ao papel da API do cluster.
O processo de atualização
O processo pelo qual o GKE na AWS atualiza um cluster varia de acordo com o tipo de atualização. Para algumas alterações, o GKE na AWS pode atualizar um cluster sem reiniciar ou recriar recursos, por exemplo, atualizar a descrição de um cluster. O GKE na AWS faz essas alterações imediatamente.
Outras alterações exigem a reiniciação dos nós do plano de controle, por exemplo, a atualização da versão do Kubernetes. Para essas atualizações, o GKE na AWS executa uma "atualização gradual" que consiste nas seguintes etapas:
- Escolha uma instância do plano de controle para atualizar. O GKE na AWS atualiza instâncias não íntegras, se houver, antes das íntegras.
- Crie um novo modelo de inicialização para a instância.
- Atualize o modelo de lançamento do grupo de escalonamento automático.
- Exclua a instância. A AWS recria a instância e a inicialização dela com a nova configuração.
- Faça verificações de integridade na nova instância.
- Se as verificações de integridade forem bem-sucedidas, selecione outra instância e execute as mesmas etapas nela. Repita esse ciclo até que todas as instâncias sejam reiniciadas ou recriadas. Se a verificação de integridade falhar, o GKE na AWS
colocará o cluster em um estado
DEGRADED
e interromperá a atualização. Para mais informações, consulte a seção a seguir. - Exclua o modelo de lançamento original
Quando uma atualização falha
Depois de uma atualização, o GKE na AWS executa uma verificação de integridade no cluster.
Se a verificação de integridade falhar, o cluster será marcado como DEGRADED
. É possível exibir
o status do cluster com o seguinte comando da Google Cloud CLI:
gcloud container aws clusters describe CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região do Google Cloud que gerencia o cluster
Atualizar o cluster
É possível usar o console do Google Cloud, a Google Cloud CLI ou a API GKE Multi-Cloud para atualizar vários campos de cluster de uma só vez.
Escolher um método de atualização
É possível atualizar a maioria dos campos por meio do console, da CLI gcloud ou da API GKE Multi-Cloud. Alguns campos só podem ser atualizados por meio de um mecanismo ou de outro. Se você quiser usar o console para atualizar um cluster, primeiro precisará escolher e configurar um método de autenticação para fazer login no cluster. Saiba mais em Conectar e autenticar no seu cluster.
Console
No console do Google Cloud, acesse a página Visão geral dos clusters do Google Kubernetes Engine.
Selecione o projeto do Google Cloud em que o cluster está.
Na lista de clusters, selecione o nome do cluster e, em seguida, Ver detalhes no painel lateral.
Na guia Detalhes, selecione
Editar no campo que você quer mudar.Por exemplo, para conceder privilégios administrativos de cluster a outros usuários, selecione
Editar ao lado de Usuários administradores e insira o endereço de e-mail do usuário.Quando terminar de fazer as mudanças, selecione Concluído.
gcloud
Ao atualizar um cluster usando a CLI gcloud, você sempre precisa
incluir os campos CLUSTER_NAME
e
GOOGLE_CLOUD_LOCATION
, que informam
ao GKE na AWS qual cluster atualizar. No comando a seguir, inclua apenas
os campos que você quer atualizar. Remova os outros campos antes
de executar o comando.
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--cluster-version=CLUSTER_VERSION \
--admin-users=USERNAME_LIST \
--root-volume-iops=ROOT_VOLUME_IOPS \
--root-volume-size=ROOT_VOLUME_SIZE \
--root-volume-type=ROOT_VOLUME_TYPE \
--security-group-ids=SECURITY_GROUP_IDS
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
(obrigatório): a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
CLUSTER_VERSION
: a nova versão de cluster compatívelUSERNAME_LIST
: uma lista separada por vírgulas de nomes de usuários, por exemplo, "kai@example.com,hao@example.com,kalani@example.com". Esses são os endereços de e-mail dos usuários para quem você está concedendo privilégios de administrador neste cluster. Os nomes nessa configuração substituem qualquer lista anterior de usuários administradores no cluster.ROOT_VOLUME_IOPS
: o máximo de operações de E/S do volume raiz por segundoROOT_VOLUME_SIZE
: o tamanho do volume raiz, em GbROOT_VOLUME_TYPE
: o tipo de volume EBS da AWS do volume raizSECURITY_GROUP_IDS
: os IDs do grupo de segurança da AWS a serem adicionados às instâncias do plano de controle do clusterSECURITY_GROUP_IDS
: os IDs do grupo de segurança da AWS a serem adicionados às instâncias do plano de controle do cluster.
API
Ao atualizar um cluster usando a API GKE Multi-Cloud, você sempre precisa incluir os campos CLUSTER_NAME
e GOOGLE_CLOUD_LOCATION
na solicitação HTTP. Esses
campos informam ao GKE na AWS qual cluster atualizar. Você também precisa
incluir o endpoint da API na solicitação. Crie um arquivo JSON com os
campos que você quer atualizar. Inclua apenas os campos que você quer
atualizar no arquivo JSON e em UPDATE_MASK
.
O exemplo a seguir mostra como atualizar o cluster usando a API.
Para mais informações, incluindo a lista de campos que podem ser atualizados, consulte
a
documentação do método
projects.locations.awsClusters.patch
.
Crie um arquivo JSON chamado
cluster_update.json
com os campos que você quer atualizar.{ "controlPlane": { "version": "CLUSTER_VERSION", }, "description": "CLUSTER_DESCRIPTION", "authorization": { "adminUsers": [ { "username": USERNAME1, "username": USERNAME2, "username": USERNAME3 } ] } }
Substitua:
CLUSTER_VERSION
: a nova versão de cluster compatível; Observe que você precisa fazer upgrade em todas as versões secundárias ao fazer upgrade do clusterCLUSTER_DESCRIPTION
: a nova descrição do clusterUSERNAME1
,USERNAME2
,USERNAME3
(opcional): os endereços de e-mail dos usuários a que você está concedendo privilégios administrativos neste cluster. Os nomes nesses campos substituirão qualquer lista anterior de usuários administradores no cluster.
Atualize essas configurações por meio da API GKE Multi-Cloud com o comando a seguir.
curl -d @cluster_update.json -X PATCH \ ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters/CLUSTER_NAME?update_mask=UPDATE_MASK
Substitua:
ENDPOINT
(obrigatório): seu endpoint de serviço do Google CloudPROJECT_ID
(obrigatório): seu projeto do Google CloudGOOGLE_CLOUD_LOCATION
(obrigatório): a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
CLUSTER_NAME
(obrigatório): o nome do clusterUPDATE_MASK
(obrigatório): uma lista separada por vírgulas de uma ou mais das seguintes sinalizações, indicando quais campos você quer atualizar. Neste exemplo, especifique o seguinte:- controlPlane.version
- description
- authorization.admin_users
Atualizar os grupos de segurança do cluster
Para atualizar os grupos de segurança do cluster, o papel do plano de controle do cluster precisa
ter a permissão ec2:ModifyNetworkInterfaceAttribute
. Para mais informações,
consulte
Criar o papel do plano de controle.
Use o comando gcloud container aws clusters update
para adicionar
outros grupos de segurança ao plano de controle do cluster.
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--security-group-ids=SECURITY_GROUP_IDS
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
SECURITY_GROUP_IDS
: os IDs do grupo de segurança da AWS a serem adicionados às instâncias do plano de controle do cluster.
Remover grupos de segurança de cluster
É possível remover todos os grupos de segurança não padrão do cluster com a CLI do Google Cloud. Para atualizar um cluster, execute:
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--clear-security-group-ids
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
Atualize as informações de volume do cluster
É possível atualizar os volumes do plano de controle do seu cluster com a CLI do Google Cloud. Para atualizar as chaves do volume do KMS, consulte Rotação de chaves.
Para atualizar o tamanho, o tipo ou as IOPS do volume, execute o seguinte comando:
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--root-volume-iops=ROOT_VOLUME_IOPS
--root-volume-size=ROOT_VOLUME_SIZE
--root-volume-type=ROOT_VOLUME_TYPE
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
ROOT_VOLUME_IOPS
: as operações de E/S do volume raiz por segundoROOT_VOLUME_SIZE
: o tamanho do volume raiz, em GbROOT_VOLUME_TYPE
: o tipo de volume da AWS EBS do volume raiz.
Atualizar configuração do Logging
É possível atualizar as definições de configuração do Cloud Logging do cluster com a Google Cloud CLI. Para atualizar a configuração da geração de registros, execute o seguinte comando:
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--logging=LOGGING_CONFIG \
Substitua:
CLUSTER_NAME
: o nome do cluster.GOOGLE_CLOUD_LOCATION
: a região compatível com o Google Cloud que gerencia seu cluster, por exemplo,us-west1
LOGGING_CONFIG
: [SYSTEM] ou [SYSTEM,WORKLOAD]
A seguir
- Para atualizar as chaves do volume do KMS, consulte Rotação de chaves.
- Para mais informações sobre os campos atualizáveis, consulte a
documentação
de referência
gcloud container aws clusters update
. - Consulte a documentação da API REST
projects.locations.awsClusters.patch
.