Actualización de clústeres de usuarios

Este tema describe cómo actualizar la configuración de un clúster de usuarios existente.

Descripción general

Con clústeres de usuarios que ejecutan Kubernetes versión 1.20 y superiores, puede modificar los siguientes atributos:

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

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

Tras actualizar la configuración, GKE en AWS coloca el clúster o grupo de nodos en estado " Updating . Una vez completada la actualización, el clúster o grupo de nodos vuelve al estado " Provisioned .

Antes de empezar

Para modificar sus clústeres de usuarios, el clúster y el grupo de nodos deben ejecutar Kubernetes 1.20 o superior. Si su clúster no ejecuta Kubernetes 1.20, actualice primero su clúster de usuarios .

Para modificar los grupos de seguridad de su clúster, la función de AWS IAM (establecida como spec.authentication.awsIAM.adminIdentityARNs en anthos-gke.yaml ) que administra sus clústeres de usuarios de GKE en AWS debe tener el permiso ec2:ModifyNetworkInterfaceAttribute .

Actualizar grupos de seguridad

En esta sección, se actualizan los grupos de seguridad de un clúster y un grupo de nodos. Para actualizarlos, siga estos 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. Edite el campo spec.controlPlane.securityGroupIDs de su AWSCluster .

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

    Reemplace SECURITY_GROUP_ID con el ID del nuevo grupo de seguridad. Para agregar varios grupos de seguridad, agregue valores adicionales a la matriz en spec.controlPlane.securityGroupIDs .

    El siguiente ejemplo incluye 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. Edite el campo spec.securityGroupIDs de sus recursos AWSNodePool .

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      securityGroupIDs:
        - SECURITY_GROUP_ID
      ...
    
  5. 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
    
  6. Comprueba el estado de la actualización con kubectl . Al finalizar 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, la salida se parece a la 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, se actualizan los tipos de instancia de un clúster y un grupo de nodos. Para actualizar los tipos de instancia, siga estos 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. Edite el campo spec.controlPlane.instanceType de su AWSCluster .

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

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

  4. Edite el campo spec.instanceType de sus recursos AWSNodePool .

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      instanceType: AWS_INSTANCE_TYPE
      ...
    
  5. 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
    
  6. Comprueba el estado de la actualización con kubectl . Al finalizar 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, la salida se parece a la 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?