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:
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
Para abrir o túnel, execute o script
bastion-tunnel.sh
. O túnel segue em frente paralocalhost: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.
Abra um novo terminal e mude para o diretório
anthos-aws
.cd anthos-aws
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.
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 .
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
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:
- 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
Abra o ficheiro
anthos-gke.yaml
num 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 ficheiroanthos-gke.status.yaml
.anthos-gke aws management init
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:
No diretório do
anthos-aws
, useanthos-gke
para mudar o contexto para o seu serviço de gestão.cd anthos-aws anthos-gke aws management get-credentials
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
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.
Guarde o ficheiro. Se estiver a usar o
kubectl edit
, okubectl
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:
No diretório do
anthos-aws
, useanthos-gke
para mudar o contexto para o seu serviço de gestão.cd anthos-aws anthos-gke aws management get-credentials
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
.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.
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.