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 -NLos 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-infoLa 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-gkey cópialo en/usr/local/bin.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/binComprueba 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.yamlen un editor de texto. Cambia el valor despec.versiona 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 initpara validar el objetoAWSManagementServicey actualizar el archivoanthos-gke.status.yaml.anthos-gke aws management initEjecuta
anthos-gke aws management applypara actualizar el servicio de gestión en AWS.anthos-gke aws management applyEl comando
anthos-gkeempieza 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-gkepara 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 edity editar tu AWSCluster, ejecuta el siguiente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-nameSustituye 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-0Actualiza el campo
spec.controlPlane.versiona 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,kubectlaplica 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.yamlA 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-gkepara 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.versionen 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.yamlA 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.