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 -N
As 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-info
A 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
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
macOS
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
Atualize as permissões de
anthos-gke
e copie-as para/usr/local/bin
.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
Confirme se a versão é
aws-1.14.1-gke.0
anthos-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.yaml
em um editor de texto. Altere o valor despec.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 ...
Execute
anthos-gke aws management init
para validar o objetoAWSManagementService
e atualizar o arquivoanthos-gke.status.yaml
.anthos-gke aws management init
Execute
anthos-gke aws management apply
para atualizar o serviço de gerenciamento na AWS.anthos-gke aws management apply
O comando
anthos-gke
começ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-gke
para 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 edit
para editar seu AWSCluster, execute o seguinte comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
Substitua 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-0
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 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
,kubectl
aplicará 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.yaml
O serviço de gerenciamento atualiza seu AWSCluster.
AWSNodePool
Para atualizar um AWSNodePool, execute as seguintes etapas:
No diretório
anthos-aws
, useanthos-gke
para 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.version
nos 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.yaml
Em 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.