Atualizar o GKE no AWS

Para atualizar o seu ambiente do GKE on AWS, comece por atualizar o serviço de gestão e, em seguida, atualize os clusters de utilizadores.

Serviço de gestão

Nas secções seguintes, atualiza o seu serviço de gestão.

Antes de começar

Para se ligar aos seus recursos do GKE no AWS, siga os passos abaixo. Selecione se tem uma VPC da AWS existente (ou uma ligação direta à sua VPC) ou se criou uma VPC dedicada quando criou o seu serviço de gestão.

VPC existente

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

VPC dedicada

Quando cria um serviço de gestão numa VPC dedicada, o GKE no AWS inclui um anfitrião bastion numa sub-rede pública.

Para se ligar ao seu serviço de gestão, siga estes passos:

  1. Altere para o diretório com a configuração do GKE na AWS. Criou este diretório quando Instalou o serviço de gestão.

    cd anthos-aws

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

    Para abrir um túnel para o anfitrião bastion, execute o seguinte comando:

    ./bastion-tunnel.sh -N
    

    As mensagens do túnel SSH aparecem nesta janela. Quando quiser fechar a ligação, pare o processo com Control+C ou fechando a janela.

  3. Abra um novo terminal e mude para o diretório anthos-aws.

    cd anthos-aws
  4. Verifique se consegue estabelecer ligação ao cluster com kubectl.

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

    O resultado inclui o URL do servidor da API do serviço de gestão.

Atualize o seu serviço de gestão

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

Transfira uma nova versão do anthos-gke

A versão mais recente da ferramenta anthos-gke é aws-1.14.1-gke.0. Para transferir uma nova versão do anthos-gke, siga estes passos:

A ferramenta de linha de comandos anthos-gke só é compatível com Linux e macOS.

  1. Transfira o ficheiro 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 autorizações de anthos-gke e copie-as para /usr/local/bin.

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

    anthos-gke version
    

Atualize o seu serviço de gestão

Para atualizar o cluster, siga estes passos:

  1. Altere para o diretório com a configuração do GKE na AWS. Criou este diretório quando Instalou o serviço de gestão.
    cd anthos-aws
  2. Abra o ficheiro anthos-gke.yaml num 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 ficheiro anthos-gke.status.yaml.

    anthos-gke aws management init
    
  4. Execute anthos-gke aws management apply para atualizar o serviço de gestão no AWS.

    anthos-gke aws management apply
    

    O comando anthos-gke começa a atualizar o seu serviço de gestão. A atualização pode demorar até dez minutos.

Clusters de utilizadores

Nas secções seguintes, atualiza os clusters de utilizadores.

Antes de começar

Antes de poder concluir estes passos, tem de ter um serviço de gestão e, pelo menos, um cluster de utilizadores.

Versões do Kubernetes suportadas

O GKE no AWS aws-1.14.1-gke.0 suporta as seguintes versões do Kubernetes:

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

Para ver informações sobre as versões suportadas anteriormente, consulte as Notas de lançamento.

Atualizações de componentes

Esta secção descreve a atualização dos AWSClusters e dos AWSNodePools.

AWSCluster

Pode atualizar um AWSCluster para uma nova versão do GKE no AWS sem atualizar os seus AWSNodePools.

AWSNodePools

Não pode atualizar um AWSNodePool para uma versão mais recente do que o seu AWSCluster. Para atualizar os AWSNodePools, primeiro tem de atualizar o AWSCluster.

A versão dos AWSNodePools não pode estar mais de duas versões secundárias atrás da versão do AWSCluster.

Atualize um AWSCluster e um AWSNodePool existentes

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

AWSCluster

Para atualizar um AWSCluster, siga estes passos:

  1. No diretório do anthos-aws, use anthos-gke para mudar o contexto para o seu serviço de gestão.

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

  2. Abra o ficheiro YAML que criou o seu AWSCluster num editor de texto. Se não tiver o ficheiro YAML inicial, pode usar kubectl edit.

    Edite o YAML

    Se seguiu as instruções em Criar um cluster de utilizadores, o seu ficheiro YAML tem o nome cluster-0.yaml. Abra este ficheiro num editor de texto.

    kubectl edit

    Para usar o kubectl edit para editar o 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 predefinido, 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 no AWS. A versão mais recente é a 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 do Kubernetes pretendida. A versão do Kubernetes suportada mais recente é a 1.25.5-gke.2100.

  4. Guarde o ficheiro. Se estiver a usar o kubectl edit, o kubectl aplica as alterações automaticamente. Se estiver a editar o ficheiro YAML, aplique-o ao seu serviço de gestão com o seguinte comando:

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

    Em seguida, o serviço de gestão atualiza o AWSCluster.

AWSNodePool

Para atualizar um AWSNodePool, siga estes passos:

  1. No diretório do anthos-aws, use anthos-gke para mudar o contexto para o seu serviço de gestão.

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

  2. Abra o ficheiro YAML que criou o seu AWSNodePool num editor de texto. Se seguiu as instruções em Criar um cluster de utilizadores, este ficheiro tem o nome 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 do Kubernetes pretendida. A versão do Kubernetes suportada mais recente é a 1.25.5-gke.2100.

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

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

    Em seguida, o serviço de gestão atualiza o AWSNodePool um nó de cada vez. Antes de um nó ser encerrado, os pods em execução nesse nó recebem um SIGTERM. Se um pod não for encerrado após um período de tolerância, recebe um SIGKILL.

Ver Estado

Para saber o estado de uma atualização, execute kubectl get AWSClusters no seu serviço de gestão.

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

O resultado inclui o nome, o estado, a idade, a versão e o ponto final de cada cluster. Por exemplo, a seguinte saída inclui um AWSCluster com o nome 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 utilizadores está concluída quando o STATE dos seus clusters for Provisioned.