Atualize os parâmetros do cluster do Azure

Esta página descreve como atualizar as definições do cluster do GKE on Azure. 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 atualizar o tamanho da VM do cluster.
  • Para atualizar o AzureClient do cluster.
  • Para atualizar a autenticação do cluster de AzureClient para federação de identidade da carga de trabalho.

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 azure clusters update e a documentação projects.locations.azureClusters.patch.

Pré-requisitos

  • Para atualizar qualquer um dos campos do cluster, tem de ter a autorização de gkemulticloud.googleapis.com/azureClusters.update gestão de identidade e de acesso.

O processo de atualização

O processo pelo qual o GKE no Azure atualiza um cluster difere consoante o tipo de atualização. Para algumas alterações, o GKE no Azure pode atualizar um cluster sem reiniciar nem recriar recursos. Por exemplo, pode atualizar a descrição de um cluster. O GKE no Azure faz estas alterações imediatamente.

Outras alterações requerem o reinício dos nós do plano de controlo, por exemplo, a atualização do tamanho da VM ou da versão do Kubernetes. Para estas atualizações, o GKE no Azure executa uma "atualização contínua" que consiste nos seguintes passos:

  1. Escolha uma instância do plano de controlo para atualizar. O GKE no Azure atualiza as instâncias não íntegras, se existirem, antes das instâncias íntegras.
  2. Elimine a instância. O GKE no Azure recria a instância e a instância é iniciada com a nova configuração.
  3. Realize verificações de funcionamento na nova instância.
  4. 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 no Azure coloca o cluster no estado DEGRADED e para a atualização. Para mais informações, consulte a secção seguinte.

Quando uma atualização falha

Após uma atualização, o GKE no Azure 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 azure 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 Azure que cluster atualizar. No comando seguinte, inclua apenas os campos que quer atualizar. Remova os outros campos antes de executar o comando.

gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION \
    --admin-users=USERNAME_LIST \
    --client=CLIENT_NAME \
    --vm-size=VM_SIZE 

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.
  • CLIENT_NAME: o seu AzureClient
  • VM_SIZE: o novo tamanho da VM suportado

Para atualizar a autenticação do cluster de AzureClient para federação de identidade da carga de trabalho, execute o seguinte comando:

gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --azure-tenant-id="${TENANT_ID}" \
    --azure-application-id="${APPLICATION_ID}" \
    --clear-client

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 Azure 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.azureClusters.patch.

  1. Crie um ficheiro JSON denominado cluster_update.json com os campos que quer atualizar.

    • Quando usar a federação de identidades de cargas de trabalho, o ficheiro JSON deve ter o seguinte aspeto:
      {
        "description": "CLUSTER_DESCRIPTION",
        "controlPlane": {
          "version": "CLUSTER_VERSION",
          "vm_size": "VM_SIZE
        },
        "azureServicesAuthentication": {
          "tenantId": "TENANT_ID",
          "applicationId": "APPLICATION_ID"
        },
        "authorization": {
            "adminUsers": [
                {
                "username": USERNAME1,
                "username": USERNAME2,
                "username": USERNAME3
                }
            ]
        }
      }
      
    • Quando usar o cliente do Azure, o ficheiro JSON deve ter o seguinte aspeto:
      {
        "description": "CLUSTER_DESCRIPTION",
        "controlPlane": {
          "version": "CLUSTER_VERSION",
          "vm_size": "VM_SIZE
        },
        "azureClient": "CLIENT_NAME",
        "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.
    • CLIENT_NAME: o nome do seu AzureClient
    • TENANT_ID: o ID do inquilino do Azure
    • APPLICATION_ID: o ID da aplicação Azure que foi criado em Crie uma aplicação Azure Active Directory
    • VM_SIZE: o novo tamanho da VM
  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/azureClusters/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
    • control_plane.vm_size
    • azure_client
    • azure_services_authentication.tenant_id
    • azure_services_authentication.application_id

Para atualizar a autenticação do cluster de AzureClient para federação de identidade da carga de trabalho, adicione azure_client, azure_services_authentication.tenant_id e azure_services_authentication.application_id no campo update_mask.

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 azure 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?