Actualizar clústeres de usuarios

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

Información general

En los clústeres de usuario con la versión 1.20 de Kubernetes o una posterior, puedes modificar los siguientes atributos:

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

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

Después de actualizar la configuración, GKE on AWS coloca el clúster o el grupo de nodos en el estado Updating. Cuando se complete la actualización, el clúster o el grupo de nodos volverá al estado Provisioned.

Antes de empezar

Para modificar los clústeres de usuarios, 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, actualiza primero el clúster de usuarios.

Para modificar los grupos de seguridad de tu clúster, el rol de gestión de identidades y accesos de AWS (definido como spec.authentication.awsIAM.adminIdentityARNs en anthos-gke.yaml) que gestiona tus clústeres de usuarios de GKE en AWS debe tener el permiso ec2:ModifyNetworkInterfaceAttribute.

Actualizar grupos de seguridad

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

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

    Sustituye SECURITY_GROUP_ID por el ID del nuevo grupo de seguridad. Para añadir varios grupos de seguridad, añade valores adicionales a la matriz 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 tus recursos 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 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
    
  6. Consulta el estado de la actualización con kubectl. Cuando se complete la actualización, el estado del objeto cambiará de Updating a Provisioned.

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

    Por ejemplo, mientras el clúster está en el estado de actualización, el resultado es similar 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 instancia de un clúster y un grupo de nodos. Para actualizar los tipos de instancia, 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. Edita el campo spec.controlPlane.instanceType de tu AWSCluster.

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

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

  4. Edita el campo spec.instanceType de tus recursos 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 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
    
  6. Consulta el estado de la actualización con kubectl. Cuando se complete la actualización, el estado del objeto cambiará de Updating a Provisioned.

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

    Por ejemplo, mientras el clúster está en el estado de actualización, el resultado es similar 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
    

Siguientes pasos

  • Para obtener más información sobre cómo actualizar un clúster de usuario, consulta Actualizar GKE en AWS.