Atualizar os parâmetros do cluster da AWS

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:

  1. 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.
  2. Crie um novo modelo de inicialização para a instância.
  3. Atualize o modelo de lançamento do grupo de escalonamento automático.
  4. Exclua a instância. A AWS recria a instância e a inicialização dela com a nova configuração.
  5. Faça verificações de integridade na nova instância.
  6. 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.
  7. 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

  1. No console do Google Cloud, acesse a página Visão geral dos clusters do Google Kubernetes Engine.

    Acesse os clusters do GKE

  2. Selecione o projeto do Google Cloud em que o cluster está.

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

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

  5. 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ível
  • USERNAME_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 segundo
  • ROOT_VOLUME_SIZE: o tamanho do volume raiz, em Gb
  • ROOT_VOLUME_TYPE: o tipo de volume EBS da AWS do volume raiz
  • SECURITY_GROUP_IDS: os IDs do grupo de segurança da AWS a serem adicionados às instâncias do plano de controle do cluster
  • SECURITY_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.

  1. 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 cluster
    • CLUSTER_DESCRIPTION: a nova descrição do cluster
    • USERNAME1,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.
  2. 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 Cloud
  • PROJECT_ID (obrigatório): seu projeto do Google Cloud
  • GOOGLE_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 cluster
  • UPDATE_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:

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:

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