Esta página descreve como atualizar as definições do cluster do GKE on AWS. Pode usar estas instruções para atualizar qualquer definição atualizável no cluster, incluindo a versão do Kubernetes. Uma vez que a atualização da versão é uma das operações de atualização de clusters mais comuns, a página separada Atualize o seu cluster aborda a forma de atualizar a versão de um cluster.
Motivos para atualizar um cluster
Pode atualizar um cluster por qualquer um dos seguintes motivos:
- Para atualizar a descrição do cluster.
- Para atualizar as anotações do cluster.
- Para atualizar a lista de utilizadores administrativos do cluster.
- Para atualizar a configuração de registo do cluster.
- Para alterar as suas chaves de encriptação.
- Para atualizar os grupos de segurança do plano de controlo do cluster.
Também pode atualizar outros campos nos seus clusters que não estão indicados aqui.
Para ver uma lista completa dos campos que pode atualizar, consulte a documentação
gcloud container aws clusters update
e a documentação
projects.locations.awsClusters.patch
.
Pré-requisitos
Para atualizar qualquer um dos campos do cluster, tem de ter a autorização de
gkemulticloud.googleapis.com/awsClusters.update
gestão de identidade e de acesso.Para atualizar os grupos de segurança do cluster, a função do plano de controlo do cluster tem de ter a autorização
ec2:ModifyNetworkInterfaceAttribute
. Para mais informações, consulte o artigo Crie a função do plano de controlo.Além disso, para atualizar as etiquetas do cluster, a função da API do cluster tem de ter as seguintes autorizações da AWS:
autoscaling:CreateOrUpdateTags
autoscaling:DeleteTags
ec2:CreateTags
ec2:DescribeLaunchTemplates
ec2:DescribeSecurityGroupRules
ec2:DeleteTags
elasticloadbalancing:AddTags
elasticloadbalancing:RemoveTags
Leia o artigo Crie funções do AWS IAM para saber como criar e adicionar autorizações à função da API do seu cluster.
O processo de atualização
O processo pelo qual o GKE on AWS atualiza um cluster difere consoante o tipo de atualização. Para algumas alterações, o GKE on AWS pode atualizar um cluster sem reiniciar nem recriar recursos. Por exemplo, pode atualizar a descrição de um cluster. O GKE na AWS faz estas alterações imediatamente.
Outras alterações requerem o reinício dos nós do plano de controlo, por exemplo, a atualização da versão do Kubernetes. Para estas atualizações, o GKE on AWS executa uma "atualização contínua" que consiste nos seguintes passos:
- Escolha uma instância do plano de controlo para atualizar. GKE on AWS updates unhealthy instances, if any, before healthy ones.
- Crie um novo modelo de lançamento para a instância.
- Atualize o modelo de lançamento do grupo de dimensionamento automático.
- Elimine a instância. A AWS recria a instância e a instância arranca com a nova configuração.
- Realize verificações de funcionamento na nova instância.
- Se as verificações de funcionamento forem bem-sucedidas, selecione outra instância e execute os mesmos passos. Repita este ciclo até todas as instâncias
serem reiniciadas ou recriadas. Se a verificação de estado falhar, o GKE on AWS
coloca o cluster no estado
DEGRADED
e interrompe a atualização. Para mais informações, consulte a secção seguinte. - Elimine o modelo de lançamento original.
Quando uma atualização falha
Após uma atualização, o GKE on AWS executa uma verificação de estado no cluster.
Se a verificação de estado falhar, o cluster é marcado como DEGRADED
. Pode apresentar o estado do cluster com o seguinte comando da CLI do Google Cloud:
gcloud container aws clusters describe CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION
Substitua o seguinte:
CLUSTER_NAME
: o nome do seu clusterGOOGLE_CLOUD_LOCATION
: a Google Cloud região que gere o seu cluster
Atualize o cluster
Pode usar a Google Cloud consola, a CLI Google Cloud ou a API GKE Multi-Cloud para atualizar vários campos do cluster em simultâneo.
Escolha um método de atualização
Pode atualizar a maioria dos campos através da consola, da CLI gcloud ou da API GKE Multi-Cloud. Alguns campos só podem ser atualizados através de um mecanismo ou outro. Se quiser usar a consola para atualizar um cluster, primeiro tem de escolher e configurar um método de autenticação para iniciar sessão no cluster. Para mais informações, consulte o artigo Estabeleça ligação e autentique-se no seu cluster.
Consola
Na Google Cloud consola, aceda à página Vista geral dos clusters do Google Kubernetes Engine.
Selecione o Google Cloud projeto no qual o cluster se encontra.
Na lista de clusters, selecione o nome do cluster e, de seguida, selecione Ver detalhes no painel lateral.
No separador Detalhes, selecione
Editar no campo que quer alterar.Por exemplo, para conceder privilégios administrativos do cluster a outros utilizadores, selecione
Editar junto a Utilizadores administradores e introduza o endereço de email do utilizador.Quando terminar as alterações, selecione Concluído.
gcloud
Quando atualiza um cluster através da CLI gcloud, tem sempre de incluir os campos CLUSTER_NAME
e GOOGLE_CLOUD_LOCATION
, que indicam ao GKE no AWS que cluster atualizar. No comando seguinte, inclua apenas os campos que 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 o seguinte:
CLUSTER_NAME
: o nome do seu clusterGOOGLE_CLOUD_LOCATION
(obrigatório): a região suportada Google Cloud que gere o seu cluster, por exemplo,us-west1
CLUSTER_VERSION
: a nova versão do cluster suportadaUSERNAME_LIST
: uma lista de nomes de utilizador separados por vírgulas, por exemplo, "kai@example.com,hao@example.com,kalani@example.com". Estes são os endereços de email dos utilizadores aos quais está a conceder privilégios administrativos neste cluster. Os nomes nesta definição substituem qualquer lista anterior de utilizadores administradores no cluster.ROOT_VOLUME_IOPS
: o número máximo de operações de E/S por segundo do volume raizROOT_VOLUME_SIZE
: o tamanho do volume de raiz, em GBROOT_VOLUME_TYPE
: o tipo de volume EBS da AWS do volume raizSECURITY_GROUP_IDS
: os IDs dos grupos de segurança da AWS a adicionar às instâncias do plano de controlo do clusterSECURITY_GROUP_IDS
: os IDs dos grupos de segurança da AWS a adicionar às instâncias do plano de controlo do cluster
API
Quando atualiza um cluster através da API GKE Multi-Cloud, tem sempre de incluir os campos CLUSTER_NAME
e GOOGLE_CLOUD_LOCATION
no pedido HTTP. Estes campos indicam ao GKE no AWS que cluster atualizar. Também tem de
incluir o ponto final da API no pedido. Cria um ficheiro JSON com os campos que quer atualizar. Inclua apenas os campos que quer
atualizar no ficheiro JSON e no UPDATE_MASK
.
O exemplo seguinte mostra como atualizar o cluster através da API.
Para mais informações, incluindo a lista de campos que pode atualizar, consulte a documentação do método projects.locations.awsClusters.patch
.
Crie um ficheiro JSON denominado
cluster_update.json
com os campos que quer atualizar.{ "controlPlane": { "version": "CLUSTER_VERSION", }, "description": "CLUSTER_DESCRIPTION", "authorization": { "adminUsers": [ { "username": USERNAME1, "username": USERNAME2, "username": USERNAME3 } ] } }
Substitua o seguinte:
CLUSTER_VERSION
: a nova versão do cluster suportada. Tenha em atenção que tem de fazer a atualização através de todas as versões secundárias quando atualiza o clusterCLUSTER_DESCRIPTION
: a nova descrição do clusterUSERNAME1
,USERNAME2
,USERNAME3
: os endereços de email dos utilizadores aos quais está a conceder privilégios administrativos neste cluster. Os nomes nestes campos substituem qualquer lista anterior de utilizadores administradores no cluster.
Atualize estas definições através da API GKE Multi-Cloud com o seguinte comando.
curl -d @cluster_update.json -X PATCH \ ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters/CLUSTER_NAME?update_mask=UPDATE_MASK
Substitua o seguinte:
ENDPOINT
(obrigatório): o seu Google Cloud ponto final do serviçoPROJECT_ID
(obrigatório): o seu Google Cloud projetoGOOGLE_CLOUD_LOCATION
(obrigatório): a região suportada Google Cloud que gere o seu cluster, por exemplo,us-west1
CLUSTER_NAME
(obrigatório): o nome do clusterUPDATE_MASK
(obrigatório): uma lista separada por vírgulas de um ou mais dos seguintes indicadores, que indicam os campos que quer atualizar. Neste exemplo, especifique o seguinte.- controlPlane.version
- descrição
- authorization.admin_users
Atualize os grupos de segurança do cluster
Para atualizar os grupos de segurança do cluster, a função do plano de controlo do cluster tem de ter a autorização ec2:ModifyNetworkInterfaceAttribute
. Para mais informações,
consulte
Crie a função do plano de controlo.
Pode usar o comando gcloud container aws clusters update
para adicionar
grupos de segurança adicionais ao plano de controlo do cluster.
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--security-group-ids=SECURITY_GROUP_IDS
Substitua o seguinte:
CLUSTER_NAME
: o nome do clusterGOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu cluster, por exemplo,us-west1
SECURITY_GROUP_IDS
: os IDs dos grupos de segurança da AWS a adicionar às instâncias do plano de controlo do cluster
Remova grupos de segurança de clusters
Pode remover todos os grupos de segurança não predefinidos do cluster com a Google Cloud CLI. Para atualizar um cluster, execute o seguinte comando:
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--clear-security-group-ids
Substitua o seguinte:
CLUSTER_NAME
: o nome do clusterGOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu cluster, por exemplo,us-west1
Atualize as informações de volume do cluster
Pode atualizar os volumes do plano de controlo do cluster com a CLI do Google Cloud. Para atualizar as chaves KMS de volume, consulte a secção Alternância de chaves.
Para atualizar o tamanho, o tipo ou os 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 o seguinte:
CLUSTER_NAME
: o nome do clusterGOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu cluster, por exemplo,us-west1
ROOT_VOLUME_IOPS
: as operações de E/S do volume de raiz por segundoROOT_VOLUME_SIZE
: o tamanho do volume de raiz, em GBROOT_VOLUME_TYPE
: o tipo de volume EBS da AWS do volume de raiz.
Atualizar configuração de registo
Pode atualizar as definições de configuração do Cloud Logging do cluster com a CLI Google Cloud. Para atualizar a configuração de registo, execute o seguinte comando:
gcloud container aws clusters update CLUSTER_NAME \
--location=GOOGLE_CLOUD_LOCATION \
--logging=LOGGING_CONFIG \
Substitua o seguinte:
CLUSTER_NAME
: o nome do clusterGOOGLE_CLOUD_LOCATION
: a região suportada Google Cloud que gere o seu cluster, por exemplo,us-west1
LOGGING_CONFIG
: [SYSTEM] ou [SYSTEM,WORKLOAD]
O que se segue?
- Para atualizar as chaves do KMS de volume, consulte o artigo Alternância de chaves
- Para mais informações sobre os campos atualizáveis, consulte a
gcloud container aws clusters update
documentação de referência. - Consulte a
projects.locations.awsClusters.patch
documentação da API REST.