Actualiza los parámetros de tu clúster de AWS

En esta página, se describe cómo actualizar la configuración del clúster de GKE en AWS. Puedes usar estas instrucciones para actualizar cualquier parámetro de configuración que se pueda actualizar de tu clúster, incluida la versión de Kubernetes. Debido a que la actualización de la versión es una de las operaciones de actualización de clúster más comunes, una página separada, Actualiza tu clúster, abarca cómo actualizar una versión del clúster.

Razones 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.
  • Para actualizar las anotaciones de tu clúster.
  • Para actualizar la lista de usuarios administradores del clúster.
  • Para actualizar la configuración de registro de tu clúster.
  • Para rotar tus claves de encriptación
  • Para actualizar los grupos de seguridad del plano de control de tu clúster.

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

Prerequisites

  • Para actualizar cualquiera de los campos del clúster, debes tener el permiso gkemulticloud.googleapis.com/awsClusters.update de Identity and Access Management.

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

  • Además, para actualizar las etiquetas de tu clúster, la función de la 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 Crea funciones de IAM de AWS para obtener información sobre cómo crear y agregar permisos el rol de la API de tu clúster.

El proceso de actualización

El proceso mediante el cual GKE en AWS actualiza un clúster difiere según el tipo de actualización. Para algunos cambios, GKE en AWS puede actualizar un clúster sin reiniciar ni volver a crear ningún recurso, por ejemplo, actualizar la descripción de un clúster. GKE en AWS realiza estos cambios de inmediato.

Otros cambios requieren reiniciar los nodos del plano de control, por ejemplo, actualizar la versión de Kubernetes. Para estas actualizaciones, GKE en AWS realiza una “actualización progresiva” que consiste en los siguientes pasos:

  1. Elige una instancia del plano de control para actualizar. GKE en AWS actualiza las instancias en mal estado, si las hay, antes que aquellas en buen estado.
  2. Crea una plantilla de inicio nueva para la instancia.
  3. Actualizan la plantilla de lanzamiento del grupo de ajuste de escala automático.
  4. Borra la instancia. AWS vuelve a crear la instancia y esta se inicia con la configuración nueva.
  5. Realizan verificaciones de estado en la instancia nueva.
  6. Si las verificaciones de estado se ejecutan correctamente, selecciona otra instancia y realiza los mismos pasos en ella. Repite este ciclo hasta que todas las instancias se reinicien o se vuelvan a crear. Si la verificación de estado falla, GKE on AWS coloca el clúster en un estado DEGRADED y detiene la actualización. Para obtener más información, consulta la siguiente sección.
  7. Borran la plantilla de inicio original.

Cuando falla una actualización

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

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

Reemplaza lo siguiente:

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

Actualiza tu clúster

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

Elige un método de actualización

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

Consola

  1. En la consola de Google Cloud, ve a la página Descripción general de los clústeres de Google Kubernetes Engine.

    Ir a los clústeres de GKE

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

  3. En la lista de clústeres, selecciona su nombre y, luego, Ver detalles en el panel lateral.

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

    Por ejemplo, para otorgar privilegios de administrador de clúster a otros usuarios, selecciona Editar junto a Usuarios administradores y, luego, ingresa la dirección de correo electrónico del usuario.

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

gcloud

Cuando actualizas un clúster con gcloud CLI, siempre debes incluir los campos CLUSTER_NAME y GOOGLE_CLOUD_LOCATION, que indican a los clústeres de GKE en AWS qué clúster deben actualizar. En el siguiente comando, solo incluye los campos que quieras actualizar; quita los otros 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

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre de tu clúster.
  • GOOGLE_CLOUD_LOCATION (obligatorio): es la región de Google Cloud compatible con la que se administra el clúster, por ejemplo, us-west1.
  • CLUSTER_VERSION: la nueva versión de clúster compatible
  • USERNAME_LIST: una 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 les otorgas privilegios de administrador en este clúster. Los nombres en este ajuste reemplazarán cualquier lista anterior de usuarios administradores en el clúster.
  • ROOT_VOLUME_IOPS: Las operaciones de E/S máximas del volumen raíz por segundo
  • ROOT_VOLUME_SIZE: el 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 ID de los grupos de seguridad de AWS que se agregarán a las instancias del plano de control del clúster
  • SECURITY_GROUP_IDS: Los ID de los grupos de seguridad de AWS que se agregarán a las instancias del plano de control del clúster

API

Cuando actualizas un clúster con la API GKE Multi-Cloud, siempre debes incluir los campos CLUSTER_NAME y GOOGLE_CLOUD_LOCATION en la solicitud HTTP. Estos campos le indican a GKE en AWS qué clúster debe actualizar. También debes incluir el extremo de API en la solicitud. Debes crear un archivo JSON con los campos que quieras actualizar. Solo incluye los campos que quieras actualizar en el archivo JSON y en el UPDATE_MASK.

En el siguiente ejemplo, se muestra cómo actualizar tu 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 deseas actualizar.

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

    Reemplaza lo siguiente:

    • CLUSTER_VERSION: la nueva versión de clúster compatible. Ten en cuenta que debes actualizar todas las versiones secundarias cuando actualizas el clúster.
    • CLUSTER_DESCRIPTION: Es la descripción del clúster nuevo.
    • USERNAME1,USERNAME2,USERNAME3: Son las direcciones de correo electrónico de los usuarios a los que les otorgarás privilegios administrativos en este clúster. Los nombres en estos campos reemplazarán cualquier lista anterior de usuarios administradores en el clúster.
  2. Actualiza esta configuración a través de la API de GKE Multi-Cloud 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
    

Reemplaza lo siguiente:

  • ENDPOINT (obligatorio): el extremo de servicio de Google Cloud
  • PROJECT_ID (obligatorio): tu proyecto de Google Cloud
  • GOOGLE_CLOUD_LOCATION (obligatorio): es la región de Google Cloud compatible con la que se administra el clúster, por ejemplo, us-west1.
  • CLUSTER_NAME (obligatorio): El nombre de tu clúster
  • UPDATE_MASK (obligatorio): es una lista separada por comas de una o más de las siguientes marcas, que indican qué campos quieres actualizar: En este ejemplo, especifica lo siguiente.
    • controlPlane.version
    • descripción
    • authorization.admin_users

Actualiza los grupos de seguridad de tu clúster

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

Puedes usar el comando gcloud container aws clusters update para agregar grupos de seguridad adicionales al plano de control de los clústeres.

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

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster
  • GOOGLE_CLOUD_LOCATION: Es la región de Google Cloud compatible con la que se administra el clúster, por ejemplo, us-west1.
  • SECURITY_GROUP_IDS: Los ID de los grupos de seguridad de AWS que se agregarán a las instancias del plano de control del clúster

Quita grupos de seguridad del clúster

Puedes quitar todos los grupos de seguridad no predeterminados del clúster con Google Cloud CLI. Para actualizar un clúster, ejecuta lo siguiente:

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

Reemplaza lo siguiente:

Actualiza la información de los volúmenes del clúster

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

Para actualizar el tamaño del volumen, el tipo o las IOPS, 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

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster
  • GOOGLE_CLOUD_LOCATION: Es la región de Google Cloud compatible con la que se administra el clúster, por ejemplo, us-west1.
  • ROOT_VOLUME_IOPS: las operaciones de E/S del volumen raíz por segundo
  • ROOT_VOLUME_SIZE: el tamaño del volumen raíz, en Gb
  • ROOT_VOLUME_TYPE: el tipo de volumen de EBS de AWS del volumen raíz.

Actualiza la configuración de Logging

Puedes actualizar la configuración de Cloud Logging del clúster con Google Cloud CLI. 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 \

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster
  • GOOGLE_CLOUD_LOCATION: Es la región de Google Cloud compatible con la que se administra el clúster, por ejemplo, us-west1.
  • LOGGING_CONFIG: [SYSTEM] o [SYSTEM,WORKLOAD]

¿Qué sigue?