Para fazer upgrade do seu ambiente do GKE na AWS, primeiro faça o upgrade do serviço de gerenciamento e, em seguida, dos clusters de usuários.
Serviço de gerenciamento
Nas seções a seguir, você fará upgrade do serviço de gerenciamento.
Antes de começar
Para se conectar ao GKE nos recursos da AWS, execute as etapas a seguir. Selecione se você tem uma VPC atual da AWS (ou conexão direta com a VPC) ou criou uma VPC dedicada ao criar seu serviço de gerenciamento.
VPC atual
Se você tiver uma conexão direta ou VPN com uma VPC atual, omita a linha env HTTP_PROXY=http://localhost:8118 dos comandos neste tópico.
VPC dedicada
Quando você cria um serviço de gerenciamento em uma VPC dedicada, o GKE na AWS inclui um bastion host em uma sub-rede pública.
Para se conectar ao serviço de gerenciamento, siga estas etapas:
Mude para o diretório com o GKE na configuração da AWS. Você criou esse diretório ao instalar o serviço de gerenciamento.
cd anthos-aws
Para abrir o túnel, execute o script
bastion-tunnel.sh. O túnel encaminha paralocalhost:8118.Para abrir um túnel para o Bastion Host, execute o seguinte comando:
./bastion-tunnel.sh -NAs mensagens do túnel SSH aparecem nessa janela. Quando estiver pronto para fechar a conexão, interrompa o processo usando Control+C ou fechando a janela.
Abra um novo terminal e mude para o diretório
anthos-aws.cd anthos-aws
Verifique se você consegue se conectar ao cluster com
kubectl.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-infoA saída inclui o URL do servidor da API de serviço de gerenciamento.
Fazer upgrade do serviço de gerenciamento
Para fazer upgrade do serviço de gerenciamento, faça o download de uma nova versão de anthos-gke, edite o anthos-gke.yaml e, em seguida, aplique as alterações.
Fazer o download de uma nova versão do anthos-gke
A versão mais recente da ferramenta anthos-gke é aws-1.14.1-gke.0. Para fazer o download de uma nova versão do anthos-gke, execute as seguintes etapas:
A ferramenta de linha de comando anthos-gke é compatível apenas com Linux e macOS.
Faça o download do 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 .Atualize as permissões de
anthos-gkee copie-as para/usr/local/bin.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/binConfirme se a versão é
aws-1.14.1-gke.0anthos-gke version
Fazer upgrade do serviço de gerenciamento
Para fazer upgrade do cluster, siga estas etapas:
- Mude para o diretório com o GKE na configuração da AWS.
Você criou esse diretório ao
instalar o serviço de gerenciamento.
cd anthos-aws
Abra o
anthos-gke.yamlem um editor de texto. Altere o valor despec.versionpara 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 ...Execute
anthos-gke aws management initpara validar o objetoAWSManagementServicee atualizar o arquivoanthos-gke.status.yaml.anthos-gke aws management initExecute
anthos-gke aws management applypara atualizar o serviço de gerenciamento na AWS.anthos-gke aws management applyO comando
anthos-gkecomeça a fazer upgrade do serviço de gerenciamento. O upgrade pode levar até dez minutos para ser concluído.
Clusters de usuários
Nas seções a seguir, você fará upgrade dos clusters de usuários.
Antes de começar
Antes de concluir essas etapas, você precisa ter um serviço de gerenciamento e pelo menos um cluster de usuário.
Versões compatíveis do Kubernetes
O GKE na AWS aws-1.14.1-gke.0 é compatível com 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 versões compatíveis anteriores, consulte Notas de lançamento.
Upgrades de componentes
Esta seção descreve o upgrade de AWSClusters e AWSNodePools.
AWSCluster
É possível atualizar um AWSCluster para uma nova versão do GKE na AWS sem atualizar o AWSNodePools.
AWSNodePools
Não é possível atualizar um AWSNodePool para uma versão mais recente do que o AWSCluster. Para atualizar o AWSNodePools, primeiro é necessário atualizar o AWSCluster.
A versão do AWSNodePools não pode ser inferior a duas versões secundárias por trás da versão do AWSCluster.
Atualizar um AWSCluster e um AWSNodePool
Para fazer upgrade do cluster, atualize o campo version dos objetos AWSCluster e
AWSNodePool no serviço de gerenciamento.
AWSCluster
Para fazer o upgrade de um AWSCluster, execute as seguintes etapas:
No diretório
anthos-aws, useanthos-gkepara alternar o contexto para o serviço de gerenciamento.cd anthos-aws anthos-gke aws management get-credentials
Abra o arquivo YAML que criou o AWSCluster em um editor de texto. Se você não tiver o arquivo YAML inicial, poderá usar
kubectl edit.Editar YAML
Se você tiver seguido as instruções em Como criar um cluster de usuário, seu arquivo YAML será chamado de
cluster-0.yaml. Abra esse arquivo em um editor de texto.kubectl edit
Para usar
kubectl editpara editar seu AWSCluster, execute o seguinte comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-nameSubstitua cluster-name pelo 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-0Atualize o campo
spec.controlPlane.versionpara 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 do Kubernetes de sua preferência. A versão compatível mais recente do Kubernetes é 1.25.5-gke.2100.
Salve o arquivo. Se você estiver usando
kubectl edit,kubectlaplicará as alterações automaticamente. Se você estiver editando o arquivo YAML, aplique-o ao serviço de gerenciamento com o seguinte comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yamlO serviço de gerenciamento atualiza seu AWSCluster.
AWSNodePool
Para atualizar um AWSNodePool, execute as seguintes etapas:
No diretório
anthos-aws, useanthos-gkepara alternar o contexto para o serviço de gerenciamento.cd anthos-aws anthos-gke aws management get-credentials
Abra o arquivo YAML que criou o AWSNodePool em um editor de texto. Se você seguiu as instruções em Como criar um cluster de usuário, esse arquivo será chamado de
cluster-0.yaml.Atualize o valor de
spec.versionnos recursos do 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 de sua preferência. A versão compatível mais recente do Kubernetes é 1.25.5-gke.2100.
Aplique a nova configuração ao seu serviço de gerenciamento com
kubectl.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yamlEm seguida, o serviço de gerenciamento atualiza o AWSNodePool de um nó por vez. Antes que um nó seja encerrado, os pods em execução nesse nó recebem um SIGTERM. Se um pod não for encerrado após um período de carência, ele receberá um SIGKILL.
Visualizar status
Para ver o status de um upgrade, 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, o estado, a idade, a versão e o endpoint de cada cluster.
Por exemplo, a saída a seguir inclui uma AWSCluster chamada cluster-0.
NAME STATE AGE VERSION ENDPOINT
cluster-0 Upgrading 2m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com
O upgrade do cluster de usuário será concluído quando o STATE for provisionado.