Actualizar clústeres de Anthos en AWS

Para actualizar el entorno de clústeres de Anthos en AWS (GKE on AWS), primero debes actualizar el servicio de administración y, luego, actualizar los clústeres de usuario.

Servicio de administración

En las siguientes secciones, actualizarás tu servicio de administración.

Antes de comenzar

Para conectarte a tus clústeres de Anthos en recursos de AWS, sigue estos pasos. Selecciona si tienes una VPC de AWS existente (o conexión directa a tu VPC) o si creaste una VPC dedicada cuando creaste tu servicio de administración.

VPC existente

Si tienes una conexión directa o de VPN con una VPC existente, omite la línea env HTTP_PROXY=http://localhost:8118 de los comandos en este tema.

VPC dedicada

Cuando creas un servicio de administración en una VPC dedicada, clústeres de Anthos alojados en AWS incluye un host de bastión en una subred pública.

Para conectarte al servicio de administración, realiza los siguientes pasos:

  1. Cambia al directorio con tus clústeres de Anthos en la configuración de AWS. Creaste este directorio cuando instalaste el servicio de administració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 de bastión, ejecuta el siguiente comando:

    ./bastion-tunnel.sh -N
    

    Los mensajes del túnel SSH aparecen en esta ventana. Cuando estés listo para cerrar la conexión, detén el proceso mediante Control+C o cierra la ventana.

  3. Abre una terminal nueva y cambia a tu directorio de anthos-aws.

    cd anthos-aws
  4. Verifica que puedas conectarte al clúster con kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    El resultado incluye la URL para el servidor de API del servicio de administración.

Actualiza tu servicio de administración

Para actualizar el servicio de administración, descarga una versión nueva de anthos-gke, edita anthos-gke.yaml y, luego, aplica los cambios.

Descarga una versión nueva de anthos-gke

La versión más reciente de la herramienta de anthos-gke es aws-1.14.1-gke.0. Para descargar una versión nueva de anthos-gke, sigue estos pasos:

La herramienta de línea de comandos de anthos-gke solo es compatible con Linux y macOS.

  1. Descarga el objeto binario desde Cloud Storage.

    Linux

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gsutil 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ópialo en /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Confirma que la versión sea aws-1.14.1-gke.0.

    anthos-gke version
    

Actualiza tu servicio de administración

Para actualizar tu clúster, realiza los siguientes pasos:

  1. Cambia al directorio con tu configuración de clústeres de Anthos alojados en AWS. Creaste este directorio cuando instalaste el servicio de administración.
    cd anthos-aws
  2. Abre 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 actualiza el archivo anthos-gke.status.yaml.

    anthos-gke aws management init
    
  4. Ejecuta anthos-gke aws management apply para actualizar el servicio de administración en AWS.

    anthos-gke aws management apply
    

    Mediante el comando anthos-gke, se comienza a actualizar el servicio de administración. La actualización puede llevar hasta diez minutos en completarse.

Clústeres de usuarios

En las siguientes secciones, actualizarás los clústeres de usuario.

Antes de comenzar

Antes de que puedas completar estos pasos, debes tener un servicio de administración y al menos un clúster de usuario.

Versiones de Kubernetes compatibles

Los clústeres de Anthos en AWS aws-1.14.1-gke.0 son compatibles con 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 compatibles, 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 versión nueva de los clústeres de Anthos en AWS sin actualizar los grupos de AWSNodePools.

AWSNodePools

No puedes actualizar un AWSNodePool a una versión más nueva que la del AWSCluster. Para actualizar los AWSNodePools, primero debes actualizar el AWSCluster.

Los AWSNodePools solo pueden tener una o dos versiones anteriores a la versión de los AWSCluster.

Actualiza un AWSCluster y un AWSNodePool existente

Para actualizar el clúster, actualiza el campo version de los objetos AWSCluster y AWSNodePool en el servicio de administración.

AWSCluster

Para actualizar un AWSCluster, realiza los siguientes pasos:

  1. Desde tu directorio de anthos-aws, usa anthos-gke para cambiar el contexto a tu servicio administrado.

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

  2. Abre el archivo YAML que creó el AWSCluster en un editor de texto. Si no tienes el archivo YAML inicial, puedes usar kubectl edit.

    Edita YAML

    Si seguiste las instrucciones en Crea un clúster de usuario, el archivo YAML se llama cluster-0.yaml. Abre este archivo en un editor de texto.

    Edita mediante kubectl

    Para usar kubectl edit a fin de editar el AWSCluster, ejecuta el siguiente comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Reemplaza cluster-name por el 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 versión nueva de clústeres de Anthos en AWS. La versión más reciente es 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
      ...
    

    Reemplaza gke-version por la versión de Kubernetes que deseas. La versión de Kubernetes compatible más reciente es 1.25.5-gke.2100.

  4. Guarde el archivo. Si usas kubectl edit, kubectl aplica los cambios de forma automática. Si editas el archivo YAML, aplícalo al servicio de administración mediante el siguiente comando:

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl apply -f cluster-0.yaml
    

    Luego, el servicio de administración actualiza el AWSCluster.

AWSNodePool

Para actualizar un AWSNodePool, sigue estos pasos:

  1. Desde tu directorio de anthos-aws, usa anthos-gke para cambiar el contexto a tu servicio administrado.

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

  2. Abre el archivo YAML que creó el AWSNodePool en un editor de texto. Si seguiste las instrucciones en Crea un clúster de usuario, este archivo se llama cluster-0.yaml.

  3. Actualiza el valor de spec.version en tus 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
      ...
    

    Reemplaza gke-version por la versión de Kubernetes que deseas. La versión de Kubernetes compatible más reciente es 1.25.5-gke.2100.

  4. Aplica la configuración nueva en tu servicio de administración con kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

    Luego, el servicio de administración actualiza tu AWSNodePool de a un nodo a la vez. Antes de cerrar un nodo, los Pods que se ejecutan en ese nodo reciben un SIGTERM. Si un Pod no se cierra después de un período de gracia, recibe un SIGKILL.

Ver estado

Para obtener el estado de una actualización, ejecuta kubectl get AWSClusters en el servicio de administración.

env HTTPS_PROXY=http://localhost:8118 \
    kubectl get AWSClusters

El resultado incluye el nombre, el estado, la antigüedad, la versión y el extremo 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 de tu clúster de usuario se completa cuando el ESTADO de tus clústeres es Aprovisionado.