Actualización de GKE en AWS

Para actualizar su entorno de GKE en AWS, primero actualice su servicio de administración y luego actualice sus clústeres de usuarios .

Servicio de gestión

En las siguientes secciones actualizará su servicio de administración.

Antes de empezar

Para conectarse a sus recursos de GKE en AWS, siga estos pasos. Seleccione si ya tiene una VPC de AWS (o una conexión directa a su VPC) o si creó una VPC dedicada al crear su servicio de administración.

VPC existente

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

VPC dedicada

Cuando crea un servicio de administración en una VPC dedicada, GKE en AWS incluye un host bastión en una subred pública.

Para conectarse a su servicio de administración, realice los siguientes pasos:

  1. Vaya al directorio con su configuración de GKE en AWS. Este directorio se creó al instalar el servicio de administración .

    cd anthos-aws

  2. Para abrir el túnel, ejecute el script bastion-tunnel.sh . El túnel redirecciona a localhost:8118 .

    Para abrir un túnel al host bastión, ejecute el siguiente comando:

    ./bastion-tunnel.sh -N
    

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

  3. Abra una nueva terminal y cámbiese a su 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 API del servicio de administración.

Mejore su servicio de gestión

Para actualizar su servicio de administración, descargue una nueva versión de anthos-gke , edite su anthos-gke.yaml y luego aplique los cambios.

Descargar una nueva versión de anthos-gke

La última versión de la herramienta anthos-gke es aws-1.14.1-gke.0 . Para descargar una nueva versión de anthos-gke , siga estos pasos:

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

  1. Descargue el 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. Actualice los permisos de anthos-gke y cópielo a /usr/local/bin .

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

    anthos-gke version
    

Mejore su servicio de gestión

Para actualizar su clúster, realice los siguientes pasos:

  1. Vaya al directorio con su configuración de GKE en AWS. Este directorio se creó al instalar el servicio de administración .
    cd anthos-aws
  2. Abra anthos-gke.yaml en un editor de texto. Cambie 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. Ejecute anthos-gke aws management init para validar el objeto AWSManagementService y actualizar el archivo anthos-gke.status.yaml .

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

    anthos-gke aws management apply
    

    El comando anthos-gke inicia la actualización del servicio de administración. La actualización puede tardar hasta diez minutos en completarse.

Clústeres de usuarios

En las siguientes secciones, actualizará sus clústeres de usuarios.

Antes de empezar

Antes de poder completar estos pasos, debe tener un servicio de administración y al menos un clúster de usuarios .

Versiones de Kubernetes compatibles

GKE en 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 versiones anteriores compatibles, consulte Notas de la versión .

Actualizaciones de componentes

Esta sección describe cómo actualizar sus AWSClusters y AWSNodePools.

Clúster de AWS

Puede actualizar un AWSCluster a una nueva versión de GKE en AWS sin actualizar sus AWSNodePools.

Grupos de nodos de AWS

No es posible actualizar un AWSNodePool a una versión posterior a la de su AWSCluster. Para actualizar sus AWSNodePools, primero debe actualizar su AWSCluster.

Su versión de AWSNodePools no debe ser inferior a dos versiones menores de su versión de AWSCluster.

Actualizar un AWSCluster y un AWSNodePool existente

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

Clúster de AWS

Para actualizar un AWSCluster, realice los siguientes pasos:

  1. Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su servicio de administración.

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

  2. Abra el archivo YAML que creó su AWSCluster en un editor de texto. Si no tiene el archivo YAML inicial, puede usar kubectl edit .

    Editar YAML

    Si siguió las instrucciones de "Crear un clúster de usuarios" , su archivo YAML se llamará cluster-0.yaml . Abra este archivo en un editor de texto.

    edición de kubectl

    Para usar kubectl edit para editar su AWSCluster, ejecute el siguiente comando:

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

    Reemplace cluster-name por su clúster de AWS. Por ejemplo, para editar el clúster predeterminado, cluster-0 , ejecute el siguiente comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Actualice el campo spec.controlPlane.version a la nueva versión de GKE 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
      ...
    

    Reemplace gke-version con la versión de Kubernetes que desee. La versión de Kubernetes compatible más reciente es 1.25.5-gke.2100.

  4. Guarde el archivo. Si usa kubectl edit , kubectl aplicará los cambios automáticamente. Si edita el archivo YAML, aplíquelo a su servicio de administración con el siguiente comando:

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

    A continuación, el servicio de administración actualiza su AWSCluster.

Grupo de nodos de AWS

Para actualizar un AWSNodePool, realice los siguientes pasos:

  1. Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su servicio de administración.

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

  2. Abra el archivo YAML que creó su AWSNodePool en un editor de texto. Si siguió las instrucciones de "Creación de un clúster de usuarios" , este archivo se llama cluster-0.yaml .

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

    Reemplace gke-version con la versión de Kubernetes que desee. La versión de Kubernetes compatible más reciente es 1.25.5-gke.2100.

  4. Aplique la nueva configuración a su servicio de administración con kubectl .

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

    El servicio de administración actualiza su AWSNodePool nodo por nodo. Antes de que un nodo se apague, los pods que se ejecutan en él reciben un SIGTERM . Si un pod no se apaga después de un período de gracia, recibe un SIGKILL.

Ver estado

Para obtener el estado de una actualización, ejecute kubectl get AWSClusters en su servicio de administració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 punto final de cada clúster. Por ejemplo, la siguiente salida 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 su clúster de usuarios estará completa cuando el ESTADO de sus clústeres sea Aprovisionado .