Atualize os parâmetros do cluster da AWS

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:

  1. Escolha uma instância do plano de controlo para atualizar. GKE on AWS updates unhealthy instances, if any, before healthy ones.
  2. Crie um novo modelo de lançamento para a instância.
  3. Atualize o modelo de lançamento do grupo de dimensionamento automático.
  4. Elimine a instância. A AWS recria a instância e a instância arranca com a nova configuração.
  5. Realize verificações de funcionamento na nova instância.
  6. 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.
  7. 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 cluster
  • GOOGLE_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

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

    Aceda aos clusters do GKE

  2. Selecione o Google Cloud projeto no qual o cluster se encontra.

  3. Na lista de clusters, selecione o nome do cluster e, de seguida, selecione Ver detalhes no painel lateral.

  4. 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.

  5. 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 cluster
  • GOOGLE_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 suportada
  • USERNAME_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 raiz
  • ROOT_VOLUME_SIZE: o tamanho do volume de raiz, em GB
  • ROOT_VOLUME_TYPE: o tipo de volume EBS da AWS do volume raiz
  • SECURITY_GROUP_IDS: os IDs dos grupos de segurança da AWS a adicionar às instâncias do plano de controlo do cluster
  • SECURITY_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.

  1. 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 cluster
    • CLUSTER_DESCRIPTION: a nova descrição do cluster
    • USERNAME1,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.
  2. 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ço
  • PROJECT_ID (obrigatório): o seu Google Cloud projeto
  • GOOGLE_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 cluster
  • UPDATE_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 cluster
  • GOOGLE_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 cluster
  • GOOGLE_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 cluster
  • GOOGLE_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 segundo
  • ROOT_VOLUME_SIZE: o tamanho do volume de raiz, em GB
  • ROOT_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 cluster
  • GOOGLE_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?