Actualizar GKE on AWS

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:

  1. 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

  2. Para abrir el túnel, ejecuta la secuencia de comandos bastion-tunnel.sh. El túnel reenvía a localhost: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.

  3. Abre una terminal nueva y ve al directorio anthos-aws.

    cd anthos-aws
  4. 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.

  1. 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 .
    
  2. Actualiza los permisos de anthos-gke y cópialos en /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. 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:

  1. 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
  2. Abre el archivo anthos-gke.yaml en un editor de texto. Cambia el valor de spec.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
     ...
    
  3. Ejecuta anthos-gke aws management init para validar el objeto AWSManagementService y actualizar el archivo anthos-gke.status.yaml.

    anthos-gke aws management init
    
  4. 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:

  1. En tu directorio de anthos-aws, usa anthos-gke para cambiar el contexto a tu servicio de gestión.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 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
    
  3. 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.

  4. 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:

  1. En tu directorio de anthos-aws, usa anthos-gke para cambiar el contexto a tu servicio de gestión.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 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.

  3. 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.

  4. 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.