Actualiza clústeres de usuarios

En este tema, se describe cómo actualizar la configuración de un clúster de usuario existente.

Descripción general

Con los clústeres de usuario que ejecutan la versión 1.20 de Kubernetes y las posteriores, puedes modificar los siguientes atributos:

Con Kubernetes 1.22 y versiones posteriores, puedes actualizar los tipos de instancias de EC2.

Para actualizar estos recursos, edita los recursos AWSCluster y AWSNodePool.

Después de actualizar la configuración, los clústeres de Anthos alojados en AWS colocan el clúster o el grupo de nodos en el estado Updating. Cuando se completa la actualización, el clúster o grupo de nodos vuelve al estado Provisioned.

Antes de comenzar

Para modificar tus clústeres de usuario, el clúster y el grupo de nodos deben ejecutar la versión 1.20 de Kubernetes o una posterior. Si tu clúster no ejecuta Kubernetes 1.20, primero actualiza tu clúster de usuario.

Para modificar los grupos de seguridad de tu clúster, la función IAM de AWS (configurada como spec.authentication.awsIAM.adminIdentityARNs en anthos-gke.yaml) que administra tus clústeres de Anthos en los clústeres de usuario de AWS debe tener el permiso ec2:ModifyNetworkInterfaceAttribute.

Actualizar grupos de seguridad

En esta sección, actualizarás los grupos de seguridad para un clúster y un grupo de nodos. Para actualizar los grupos de seguridad, 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. Edita el campo spec.controlPlane.securityGroupIDs de tu AWSCluster.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        securityGroupIDs:
          - SECURITY_GROUP_ID
        ...
    

    Reemplaza SECURITY_GROUP_ID por el ID del grupo de seguridad nuevo. Para agregar varios grupos de seguridad, agrega valores adicionales al array en spec.controlPlane.securityGroupIDs.

    En el siguiente ejemplo, se incluyen los grupos de seguridad sg-12345678ab y sg-abcdef1234:

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    spec:
      controlPlane:
        securityGroupIDs:
          - sg-12345678ab
          - sg-abcdef1234
        ...
    
  4. Edita el campo spec.securityGroupIDs de los recursos de AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      securityGroupIDs:
        - SECURITY_GROUP_ID
      ...
    
  5. Guarda 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
    
  6. Comprueba el estado de la actualización con kubectl. Cuando finaliza la actualización, el estado del objeto cambia de Updating a Provisioned.

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

    Por ejemplo, mientras el clúster está en estado de actualización, el resultado se parece al siguiente:

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

Actualizar tipos de instancias

En esta sección, actualizarás los tipos de instancias para un clúster y un grupo de nodos. Para actualizar los tipos de instancia, 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. Edita el campo spec.controlPlane.instanceType de tu AWSCluster.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        instanceType: AWS_INSTANCE_TYPE
        ...
    

    Reemplaza AWS_INSTANCE_TYPE por el nuevo tipo de instancia. Para obtener más información, consulta Tipos de instancias compatibles.

  4. Edita el campo spec.instanceType de los recursos de AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      instanceType: AWS_INSTANCE_TYPE
      ...
    
  5. Guarda 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
    
  6. Comprueba el estado de la actualización con kubectl. Cuando finaliza la actualización, el estado del objeto cambia de Updating a Provisioned.

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

    Por ejemplo, mientras el clúster está en estado de actualización, el resultado se parece al siguiente:

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

¿Qué sigue?