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.update
Gestió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:
- Elige una instancia del plano de control que quieras actualizar. GKE on AWS actualiza las instancias incorrectas, si las hay, antes que las correctas.
- Crea una plantilla de lanzamiento para la instancia.
- Actualice la plantilla de lanzamiento del grupo de escalado automático.
- Elimina la instancia. AWS vuelve a crear la instancia y esta se inicia con la nueva configuración.
- Realiza comprobaciones del estado en la nueva instancia.
- 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. - 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ústerGOOGLE_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
En la Google Cloud consola, ve a la página Resumen de clústeres de Google Kubernetes Engine.
Selecciona el Google Cloud proyecto en el que se encuentra el clúster.
En la lista de clústeres, selecciona el nombre del clúster y, a continuación, Ver detalles en el panel lateral.
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.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ústerGOOGLE_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 compatibleUSERNAME_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ízROOT_VOLUME_SIZE
: tamaño del volumen raíz en GBROOT_VOLUME_TYPE
: el tipo de volumen de EBS de AWS del volumen raízSECURITY_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ústerSECURITY_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
.
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ústerCLUSTER_DESCRIPTION
: la nueva descripción del clústerUSERNAME1
,USERNAME2
yUSERNAME3
: 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.
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 servicioPROJECT_ID
(obligatorio): tu Google Cloud proyectoGOOGLE_CLOUD_LOCATION
(obligatorio): la región admitida Google Cloud que gestiona tu clúster. Por ejemplo,us-west1
.CLUSTER_NAME
(obligatorio): nombre del clústerUPDATE_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ústerGOOGLE_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ústerGOOGLE_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ústerGOOGLE_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ízROOT_VOLUME_SIZE
: tamaño del volumen raíz en GBROOT_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ústerGOOGLE_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
- Para actualizar las claves de KMS de volumen, consulta Rotación de claves.
- Para obtener más información sobre los campos actualizables, consulta la documentación de referencia de
gcloud container aws clusters update
. - Consulta la documentación de la API REST
projects.locations.awsClusters.patch
.