Atualizando o GKE na AWS

Para atualizar seu ambiente GKE na AWS, primeiro atualize seu serviço de gerenciamento e depois atualize seus clusters de usuários .

Serviço de gestão

Nas seções a seguir, você atualizará seu serviço de gerenciamento.

Antes de começar

Para se conectar aos seus recursos do GKE na AWS, siga as seguintes etapas. Selecione se você já possui uma VPC da AWS (ou conexão direta com sua VPC) ou se criou uma VPC dedicada ao criar seu serviço de gerenciamento.

VPC existente

Se você tiver uma conexão direta ou VPN com uma VPC existente, omita a linha env HTTP_PROXY=http://localhost:8118 dos comandos neste tópico.

VPC dedicada

Ao criar um serviço de gerenciamento em uma VPC dedicada, o GKE na AWS inclui um bastião host em uma sub-rede pública.

Para se conectar ao seu serviço de gerenciamento, execute as seguintes etapas:

  1. Acesse o diretório com a configuração do GKE na AWS. Você criou este diretório ao instalar o serviço de gerenciamento .

    cd anthos-aws

  2. Para abrir o túnel, execute o script bastion-tunnel.sh . O túnel encaminha para localhost:8118 .

    Para abrir um túnel para o host bastião, execute o seguinte comando:

    ./bastion-tunnel.sh -N
    

    As mensagens do túnel SSH aparecem nesta janela. Quando estiver pronto para encerrar a conexão, interrompa o processo usando Control+C ou fechando a janela.

  3. Abra um novo terminal e entre no diretório anthos-aws .

    cd anthos-aws
  4. Verifique se você consegue se conectar ao cluster com kubectl .

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    A saída inclui a URL para o servidor da API do serviço de gerenciamento.

Atualize seu serviço de gerenciamento

Para atualizar seu serviço de gerenciamento, baixe uma nova versão do anthos-gke , edite seu anthos-gke.yaml e aplique as alterações.

Baixe uma nova versão do anthos-gke

A versão mais recente da ferramenta anthos-gke é aws-1.14.1-gke.0 . Para baixar uma nova versão do anthos-gke , siga estas etapas:

A ferramenta de linha de comando anthos-gke suporta apenas Linux e macOS.

  1. Baixe o binário do Cloud Storage.

    Linux

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
    
  2. Atualize as permissões do anthos-gke e copie-o para /usr/local/bin .

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Confirme se a versão é aws-1.14.1-gke.0

    anthos-gke version
    

Atualize seu serviço de gerenciamento

Para atualizar seu cluster, execute as seguintes etapas:

  1. Acesse o diretório com a configuração do GKE na AWS. Você criou este diretório ao instalar o serviço de gerenciamento .
    cd anthos-aws
  2. Abra seu anthos-gke.yaml em um editor de texto. Altere o valor de spec.version para aws-1.14.1-gke.0.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
     name: management
    spec:
     version: aws-1.14.1-gke.0
     region: aws-region
     ...
    
  3. Execute anthos-gke aws management init para validar o objeto AWSManagementService e atualizar o arquivo anthos-gke.status.yaml .

    anthos-gke aws management init
    
  4. Execute anthos-gke aws management apply para atualizar o serviço de gerenciamento na AWS.

    anthos-gke aws management apply
    

    O comando anthos-gke inicia a atualização do seu serviço de gerenciamento. A atualização pode levar até dez minutos para ser concluída.

Clusters de usuários

Nas seções a seguir, você atualizará seus clusters de usuários.

Antes de começar

Antes de concluir essas etapas, você deve ter um serviço de gerenciamento e pelo menos um cluster de usuários .

Versões do Kubernetes suportadas

O GKE na AWS aws-1.14.1-gke.0 oferece suporte às seguintes versões do Kubernetes:

  • 1.23.15-gke.2000
  • 1.24.9-gke.2100
  • 1.25.5-gke.2100

Para obter informações sobre versões anteriores com suporte, consulte Notas de versão .

Atualizações de componentes

Esta seção descreve como atualizar seus AWSClusters e AWSNodePools.

AWSCluster

Você pode atualizar um AWSCluster para uma nova versão do GKE na AWS sem atualizar seus AWSNodePools.

Conjuntos de nós da AWS

Não é possível atualizar um AWSNodePool para uma versão mais recente que o seu AWSCluster. Para atualizar seus AWSNodePools, você precisa primeiro atualizar seu AWSCluster.

A versão do seu AWSNodePools não deve estar menos que duas versões secundárias atrás da versão do AWSCluster.

Atualizar um AWSCluster e AWSNodePool existentes

Para atualizar seu cluster, atualize o campo version dos objetos AWSCluster e AWSNodePool no seu serviço de gerenciamento.

AWSCluster

Para atualizar um AWSCluster, execute as seguintes etapas:

  1. No seu diretório anthos-aws , use anthos-gke para alternar o contexto para seu serviço de gerenciamento.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Abra o arquivo YAML que criou seu AWSCluster em um editor de texto. Se você não tiver o arquivo YAML inicial, pode usar kubectl edit .

    Editar YAML

    Se você seguiu as instruções em Criando um cluster de usuários , seu arquivo YAML será chamado cluster-0.yaml . Abra este arquivo em um editor de texto.

    kubectl editar

    Para usar kubectl edit para editar seu AWSCluster, execute o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Substitua cluster-name pelo seu AWSCluster. Por exemplo, para editar o cluster padrão, cluster-0 , execute o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Atualize o campo spec.controlPlane.version para uma nova versão do GKE na AWS. A versão mais recente é 1.25.5-gke.2100.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    metadata:
      name: cluster-0
    spec:
      region: us-east-1
      controlPlane:
        version: gke_version
        instanceType: t3.medium
      ...
    

    Substitua gke-version pela versão desejada do Kubernetes . A versão mais recente do Kubernetes com suporte é 1.25.5-gke.2100.

  4. Salve o arquivo. Se você estiver usando kubectl edit , kubectl aplicará as alterações automaticamente. Se estiver editando o arquivo YAML, aplique-o ao seu serviço de gerenciamento com o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl apply -f cluster-0.yaml
    

    O serviço de gerenciamento então atualiza seu AWSCluster.

AWSNodePool

Para atualizar um AWSNodePool, execute as seguintes etapas:

  1. No seu diretório anthos-aws , use anthos-gke para alternar o contexto para seu serviço de gerenciamento.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Abra o arquivo YAML que criou seu AWSNodePool em um editor de texto. Se você seguiu as instruções em Criando um cluster de usuários , este arquivo se chamará cluster-0.yaml .

  3. Atualize o valor de spec.version nos seus recursos AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    metadata:
      name: cluster-0-pool-0
    spec:
      clusterName: cluster-0
      region: us-east-1
      version: gke-version
      ...
    

    Substitua gke-version pela versão desejada do Kubernetes . A versão mais recente do Kubernetes com suporte é 1.25.5-gke.2100.

  4. Aplique a nova configuração ao seu serviço de gerenciamento com kubectl .

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

    O serviço de gerenciamento atualiza seu AWSNodePool, um nó por vez. Antes de um nó ser desligado, os pods em execução nele recebem um SIGTERM . Se um pod não for desligado após um período de carência, ele recebe um SIGKILL.

Ver status

Para obter o status de uma atualização, execute kubectl get AWSClusters no seu serviço de gerenciamento.

env HTTPS_PROXY=http://localhost:8118 \
    kubectl get AWSClusters

A saída inclui o nome, estado, idade, versão e ponto de extremidade de cada cluster. Por exemplo, a saída a seguir inclui um AWSCluster denominado cluster-0 .

NAME        STATE          AGE     VERSION         ENDPOINT
cluster-0   Upgrading   2m41s      1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com

A atualização do cluster de usuário estará concluída quando o ESTADO dos seus clusters for Provisionado .