Actualizar los parámetros del clúster de AWS

En esta página se describe cómo actualizar la configuración de tu clúster de GKE en AWS. Puedes usar estas instrucciones para actualizar cualquier ajuste de tu clúster, incluida la versión de Kubernetes. Como la actualización de la versión es una de las operaciones de actualización de clústeres más habituales, en la página Actualizar un clúster se explica cómo actualizar la versión de un clúster.

Motivos para actualizar un clúster

Puedes actualizar un clúster por cualquiera de los siguientes motivos:

  • Para actualizar la descripción de tu clúster, sigue estos pasos:
  • Para actualizar las anotaciones de tu clúster,
  • Para actualizar la lista de usuarios administrativos de tu clúster.
  • Para actualizar la configuración de registro de tu clúster, sigue estos pasos.
  • Para rotar tus claves de cifrado.
  • Para actualizar los grupos de seguridad del plano de control del clúster.

También puede actualizar otros campos de sus clústeres que no se mencionan aquí. Para ver una lista completa de los campos que puedes actualizar, consulta la documentación de gcloud container aws clusters update y projects.locations.awsClusters.patch.

Requisitos previos

  • Para actualizar cualquiera de los campos de tu clúster, debes tener el permiso gkemulticloud.googleapis.com/awsClusters.updateGestión de Identidades y Accesos.

  • Para actualizar los grupos de seguridad de tu clúster, el rol del plano de control del clúster debe tener el permiso ec2:ModifyNetworkInterfaceAttribute. Para obtener más información, consulta Crear el rol de plano de control.

  • Además, para actualizar las etiquetas de tu clúster, el rol de API del clúster debe tener los siguientes permisos de AWS:

    • autoscaling:CreateOrUpdateTags
    • autoscaling:DeleteTags
    • ec2:CreateTags
    • ec2:DescribeLaunchTemplates
    • ec2:DescribeSecurityGroupRules
    • ec2:DeleteTags
    • elasticloadbalancing:AddTags
    • elasticloadbalancing:RemoveTags

    Consulta el artículo Crear roles de gestión de identidades y accesos de AWS para saber cómo crear y añadir permisos al rol de API de tu clúster.

El proceso de actualización

El proceso por el que GKE on AWS actualiza un clúster varía en función del tipo de actualización. En algunos casos, GKE en AWS puede actualizar un clúster sin reiniciar ni volver a crear ningún recurso, por ejemplo, al actualizar la descripción de un clúster. GKE on AWS aplica estos cambios inmediatamente.

Otros cambios requieren reiniciar los nodos del plano de control, como actualizar la versión de Kubernetes. Para estas actualizaciones, GKE en AWS realiza una "actualización continua" que consta de los siguientes pasos:

  1. Elige una instancia del plano de control que quieras actualizar. GKE on AWS actualiza las instancias incorrectas, si las hay, antes que las correctas.
  2. Crea una plantilla de lanzamiento para la instancia.
  3. Actualice la plantilla de lanzamiento del grupo de escalado automático.
  4. Elimina la instancia. AWS vuelve a crear la instancia y esta se inicia con la nueva configuración.
  5. Realiza comprobaciones del estado en la nueva instancia.
  6. Si las comprobaciones de estado se realizan correctamente, selecciona otra instancia y sigue los mismos pasos. Repite este ciclo hasta que se hayan reiniciado o recreado todas las instancias. Si la comprobación del estado falla, GKE en AWS coloca el clúster en el estado DEGRADED y detiene la actualización. Para obtener más información, consulta la siguiente sección.
  7. Elimina la plantilla de lanzamiento original.

Cuando falla una actualización

Después de una actualización, GKE on AWS realiza una comprobación del estado del clúster. Si la comprobación del estado falla, el clúster se marca como DEGRADED. Puedes mostrar el estado de tu clúster con el siguiente comando de la CLI de Google Cloud:

gcloud container aws clusters describe CLUSTER_NAME \
  --location=GOOGLE_CLOUD_LOCATION

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster
  • GOOGLE_CLOUD_LOCATION: la región Google Cloud que gestiona tu clúster

Actualizar un clúster

Puedes usar la Google Cloud consola, la CLI de Google Cloud o la API GKE Multi-Cloud para actualizar varios campos de clúster a la vez.

Elegir un método de actualización

Puedes actualizar la mayoría de los campos a través de la consola, la CLI de gcloud o la API Multi-Cloud de GKE. Algunos campos solo se pueden actualizar mediante un mecanismo u otro. Si quieres usar la consola para actualizar un clúster, primero debes elegir y configurar un método de autenticación para iniciar sesión en el clúster. Para obtener más información, consulta Conectarse y autenticarse en tu clúster.

Consola

  1. En la Google Cloud consola, ve a la página Resumen de clústeres de Google Kubernetes Engine.

    Ir a clústeres de GKE

  2. Selecciona el Google Cloud proyecto en el que se encuentra el clúster.

  3. En la lista de clústeres, selecciona el nombre del clúster y, a continuación, Ver detalles en el panel lateral.

  4. En la pestaña Detalles, selecciona Editar en el campo que quieras cambiar.

    Por ejemplo, para conceder privilegios de administrador del clúster a otros usuarios, selecciona Editar junto a Usuarios administradores e introduce la dirección de correo del usuario.

  5. Cuando hayas terminado de hacer los cambios, selecciona Hecho.

gcloud

Cuando actualizas un clúster con la CLI de gcloud, siempre debes incluir los campos CLUSTER_NAME y GOOGLE_CLOUD_LOCATION, que indican a GKE en AWS qué clúster se debe actualizar. En el siguiente comando, incluya solo los campos que quiera actualizar. Elimine los demás campos antes de ejecutar el comando.

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION \
    --admin-users=USERNAME_LIST \
    --root-volume-iops=ROOT_VOLUME_IOPS \
    --root-volume-size=ROOT_VOLUME_SIZE \
    --root-volume-type=ROOT_VOLUME_TYPE \
    --security-group-ids=SECURITY_GROUP_IDS

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster
  • GOOGLE_CLOUD_LOCATION (obligatorio): la región admitida Google Cloud que gestiona tu clúster. Por ejemplo, us-west1.
  • CLUSTER_VERSION: la nueva versión del clúster compatible
  • USERNAME_LIST: lista de nombres de usuario separados por comas (por ejemplo, "kai@example.com,hao@example.com,kalani@example.com"). Estas son las direcciones de correo electrónico de los usuarios a los que vas a conceder privilegios de administrador en este clúster. Los nombres de este ajuste sustituirán a cualquier lista anterior de usuarios administradores del clúster.
  • ROOT_VOLUME_IOPS: el número máximo de operaciones de E/S por segundo del volumen raíz
  • ROOT_VOLUME_SIZE: tamaño del volumen raíz en GB
  • ROOT_VOLUME_TYPE: el tipo de volumen de EBS de AWS del volumen raíz
  • SECURITY_GROUP_IDS: los IDs de los grupos de seguridad de AWS que se van a añadir a las instancias del plano de control del clúster
  • SECURITY_GROUP_IDS: los IDs de los grupos de seguridad de AWS que se van a añadir a las instancias del plano de control del clúster

API

Cuando actualizas un clúster mediante la API GKE Multi-Cloud, siempre debes incluir los campos CLUSTER_NAME y GOOGLE_CLOUD_LOCATION en la solicitud HTTP. Estos campos indican a GKE on AWS qué clúster se debe actualizar. También debes incluir el endpoint de la API en la solicitud. Crea un archivo JSON con los campos que quieras actualizar. Incluye solo los campos que quieras actualizar en el archivo JSON y en el UPDATE_MASK.

En el siguiente ejemplo se muestra cómo actualizar el clúster a través de la API. Para obtener más información, incluida la lista de campos que puedes actualizar, consulta la documentación del método projects.locations.awsClusters.patch.

  1. Crea un archivo JSON llamado cluster_update.json con los campos que quieras actualizar.

    {
        "controlPlane": {
           "version": "CLUSTER_VERSION",
        },
        "description": "CLUSTER_DESCRIPTION",
        "authorization": {
            "adminUsers": [
                {
                "username": USERNAME1,
                "username": USERNAME2,
                "username": USERNAME3
                }
            ]
        }
    }
    

    Haz los cambios siguientes:

    • CLUSTER_VERSION: la nueva versión del clúster admitida. Ten en cuenta que debes actualizar todas las versiones secundarias al actualizar tu clúster
    • CLUSTER_DESCRIPTION: la nueva descripción del clúster
    • USERNAME1, USERNAME2 y USERNAME3: las direcciones de correo de los usuarios a los que vas a conceder privilegios de administrador en este clúster. Los nombres de estos campos sustituirán a cualquier lista anterior de usuarios administradores del clúster.
  2. Actualiza estos ajustes a través de la API Multi-Cloud de GKE con el siguiente comando.

    curl -d @cluster_update.json -X PATCH \
       ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters/CLUSTER_NAME?update_mask=UPDATE_MASK
    

Haz los cambios siguientes:

  • ENDPOINT (obligatorio): el Google Cloud endpoint de servicio
  • PROJECT_ID (obligatorio): tu Google Cloud proyecto
  • GOOGLE_CLOUD_LOCATION (obligatorio): la región admitida Google Cloud que gestiona tu clúster. Por ejemplo, us-west1.
  • CLUSTER_NAME (obligatorio): nombre del clúster
  • UPDATE_MASK (obligatorio): lista separada por comas de una o varias de las siguientes marcas, que indican los campos que quieres actualizar. En este ejemplo, especifica lo siguiente.
    • controlPlane.version
    • description
    • authorization.admin_users

Actualizar los grupos de seguridad de un clúster

Para actualizar los grupos de seguridad de tu clúster, el rol del plano de control del clúster debe tener el permiso ec2:ModifyNetworkInterfaceAttribute. Para obtener más información, consulta Crear el rol de plano de control.

Puedes usar el comando gcloud container aws clusters update para añadir grupos de seguridad adicionales al plano de control de tu clúster.

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --security-group-ids=SECURITY_GROUP_IDS

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster
  • GOOGLE_CLOUD_LOCATION: la región Google Cloud admitida que gestiona tu clúster. Por ejemplo, us-west1.
  • SECURITY_GROUP_IDS: los IDs de los grupos de seguridad de AWS que se van a añadir a las instancias del plano de control del clúster

Quitar grupos de seguridad de clústeres

Puedes eliminar todos los grupos de seguridad no predeterminados de tu clúster con la CLI de Google Cloud. Para actualizar un clúster, ejecuta el siguiente comando:

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --clear-security-group-ids

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster
  • GOOGLE_CLOUD_LOCATION: la región Google Cloud admitida que gestiona tu clúster. Por ejemplo, us-west1.

Actualizar la información del volumen del clúster

Puedes actualizar los volúmenes del plano de control de tu clúster con la CLI de Google Cloud. Para actualizar las claves de KMS de volumen, consulta Rotación de claves.

Para actualizar el tamaño, el tipo o las IOPS de un volumen, ejecuta el siguiente comando:

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --root-volume-iops=ROOT_VOLUME_IOPS
    --root-volume-size=ROOT_VOLUME_SIZE
    --root-volume-type=ROOT_VOLUME_TYPE

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster
  • GOOGLE_CLOUD_LOCATION: la región Google Cloud admitida que gestiona tu clúster. Por ejemplo, us-west1.
  • ROOT_VOLUME_IOPS: operaciones de E/S por segundo del volumen raíz
  • ROOT_VOLUME_SIZE: tamaño del volumen raíz en GB
  • ROOT_VOLUME_TYPE: el tipo de volumen de EBS de AWS del volumen raíz.

Actualizar configuración de registro

Puedes actualizar los ajustes de configuración de Cloud Logging de tu clúster con la CLI de Google Cloud. Para actualizar la configuración de registro, ejecuta el siguiente comando:

gcloud container aws clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --logging=LOGGING_CONFIG \

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster
  • GOOGLE_CLOUD_LOCATION: la región Google Cloud admitida que gestiona tu clúster. Por ejemplo, us-west1.
  • LOGGING_CONFIG: [SYSTEM] o [SYSTEM,WORKLOAD]

Siguientes pasos