Para actualizar tu entorno de GKE en AWS, primero debes actualizar tu servicio de gestión y, a continuación, tus clústeres de usuario.
Servicio de gestión
En las siguientes secciones, actualizarás tu servicio de gestión.
Antes de empezar
Para conectarte a tus recursos de GKE en AWS, sigue estos pasos. Selecciona si tienes una VPC de AWS (o una conexión directa a tu VPC) o si has creado una VPC específica al crear tu servicio de gestión.
VPC ya creada
Si tienes una conexión directa o VPN a una VPC, omite la línea env HTTP_PROXY=http://localhost:8118
de los comandos de este tema.
VPC dedicada
Cuando creas un servicio de gestión en una VPC dedicada, GKE en AWS incluye un host bastión en una subred pública.
Para conectarte a tu servicio de gestión, sigue estos pasos:
Cambia al directorio con tu configuración de GKE en AWS. Has creado este directorio al instalar el servicio de gestión.
cd anthos-aws
Para abrir el túnel, ejecuta la secuencia de comandos
bastion-tunnel.sh
. El túnel reenvía alocalhost:8118
.Para abrir un túnel al host bastion, ejecuta el siguiente comando:
./bastion-tunnel.sh -N
Los mensajes del túnel SSH aparecen en esta ventana. Cuando quieras cerrar la conexión, detén el proceso con Control+C o cierra la ventana.
Abre una terminal nueva y ve al directorio
anthos-aws
.cd anthos-aws
Comprueba que puedes conectarte al clúster con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
La salida incluye la URL del servidor de la API del servicio de gestión.
Actualizar el servicio de gestión
Para actualizar tu servicio de gestión, descarga una nueva versión de anthos-gke
, edita tu anthos-gke.yaml
y aplica los cambios.
Descargar una nueva versión de anthos-gke
La versión más reciente de la herramienta anthos-gke
es la aws-1.14.1-gke.0
. Para descargar una nueva versión de anthos-gke
, sigue estos pasos:
La herramienta de línea de comandos anthos-gke
solo es compatible con Linux y macOS.
Descarga el archivo binario de 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 .
Actualiza los permisos de
anthos-gke
y cópialos en/usr/local/bin
.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
Comprueba que la versión sea
aws-1.14.1-gke.0
.anthos-gke version
Actualizar el servicio de gestión
Para actualizar el clúster, sigue estos pasos:
- Cambia al directorio con tu configuración de GKE en AWS.
Has creado este directorio al instalar el servicio de gestión.
cd anthos-aws
Abre el archivo
anthos-gke.yaml
en un editor de texto. Cambia el valor despec.version
a 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 ...
Ejecuta
anthos-gke aws management init
para validar el objetoAWSManagementService
y actualizar el archivoanthos-gke.status.yaml
.anthos-gke aws management init
Ejecuta
anthos-gke aws management apply
para actualizar el servicio de gestión en AWS.anthos-gke aws management apply
El comando
anthos-gke
empieza a actualizar el servicio de gestión. La actualización puede tardar hasta diez minutos en completarse.
Clústeres de usuarios
En las siguientes secciones, actualizará sus clústeres de usuario.
Antes de empezar
Para poder completar estos pasos, debes tener un servicio de gestión y al menos un clúster de usuarios.
Versiones de Kubernetes compatibles
GKE on AWS aws-1.14.1-gke.0 admite las siguientes versiones de Kubernetes:
- 1.23.15-gke.2000
- 1.24.9-gke.2100
- 1.25.5-gke.2100
Para obtener información sobre las versiones anteriores admitidas, consulta las notas de la versión.
Actualizaciones de componentes
En esta sección se describe cómo actualizar los AWSClusters y los AWSNodePools.
AWSCluster
Puedes actualizar un AWSCluster a una nueva versión de GKE en AWS sin actualizar tus AWSNodePools.
AWSNodePools
No puedes actualizar un AWSNodePool a una versión más reciente que tu AWSCluster. Para actualizar tus AWSNodePools, primero debes actualizar tu AWSCluster.
La versión de tus AWSNodePools no debe ser inferior a dos versiones secundarias de la versión de tu AWSCluster.
Actualizar un AWSCluster y un AWSNodePool
Para actualizar el clúster, debes actualizar el campo version
de los objetos AWSCluster
y AWSNodePool
en el servicio de gestión.
AWSCluster
Para actualizar un AWSCluster, sigue estos pasos:
En tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu servicio de gestión.cd anthos-aws anthos-gke aws management get-credentials
Abre el archivo YAML que creó tu AWSCluster en un editor de texto. Si no tienes el archivo YAML inicial, puedes usar
kubectl edit
.Editar YAML
Si has seguido las instrucciones de Crear un clúster de usuario, tu archivo YAML se llama
cluster-0.yaml
. Abre este archivo en un editor de texto.kubectl edit
Para usar
kubectl edit
y editar tu AWSCluster, ejecuta el siguiente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
Sustituye cluster-name por tu AWSCluster. Por ejemplo, para editar el clúster predeterminado,
cluster-0
, ejecuta el siguiente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
Actualiza el campo
spec.controlPlane.version
a una nueva versión de GKE en AWS. La versión más reciente es la 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 ...
Sustituye gke-version por la versión de Kubernetes que quieras. La versión de Kubernetes más reciente compatible es la 1.25.5-gke.2100.
Guarda el archivo. Si usas
kubectl edit
,kubectl
aplica los cambios automáticamente. Si estás editando el archivo YAML, aplícalo a tu servicio de gestión con el siguiente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
A continuación, el servicio de gestión actualiza tu AWSCluster.
AWSNodePool
Para actualizar un AWSNodePool, sigue estos pasos:
En tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu servicio de gestión.cd anthos-aws anthos-gke aws management get-credentials
Abre el archivo YAML que creó tu AWSNodePool en un editor de texto. Si has seguido las instrucciones de Crear un clúster de usuarios, este archivo se llama
cluster-0.yaml
.Actualiza el valor de
spec.version
en tus recursos de 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 ...
Sustituye gke-version por la versión de Kubernetes que quieras. La versión de Kubernetes más reciente compatible es la 1.25.5-gke.2100.
Aplica la nueva configuración a tu servicio de gestión con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
A continuación, el servicio de gestión actualiza tu AWSNodePool de un nodo en un nodo. Antes de que se cierre un nodo, los pods que se ejecutan en ese nodo reciben una señal SIGTERM. Si un pod no se cierra después de un periodo de gracia, recibe una señal SIGKILL.
Ver estado
Para obtener el estado de una actualización, ejecuta kubectl get AWSClusters
en tu servicio de gestión.
env HTTPS_PROXY=http://localhost:8118 \
kubectl get AWSClusters
La salida incluye el nombre, el estado, la antigüedad, la versión y el endpoint de cada clúster.
Por ejemplo, el siguiente resultado incluye un AWSCluster
llamado cluster-0
.
NAME STATE AGE VERSION ENDPOINT
cluster-0 Upgrading 2m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com
La actualización del clúster de usuarios se habrá completado cuando el ESTADO de los clústeres sea Provisioned.