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:
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
Para abrir o túnel, execute o script
bastion-tunnel.sh
. O túnel encaminha paralocalhost: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.
Abra um novo terminal e entre no 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 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.
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 .
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
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:
- 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
Abra seu
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
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:
No seu diretório
anthos-aws
, useanthos-gke
para alternar o contexto para seu serviço de gerenciamento.cd anthos-aws anthos-gke aws management get-credentials
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
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.
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:
No seu diretório
anthos-aws
, useanthos-gke
para alternar o contexto para seu serviço de gerenciamento.cd anthos-aws anthos-gke aws management get-credentials
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
.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.
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 .