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:
- 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.
- Crea una plantilla de inicio nueva para la instancia.
- Actualizan la plantilla de lanzamiento del grupo de ajuste de escala automático.
- Borra la instancia. AWS vuelve a crear la instancia y esta se inicia con la configuración nueva.
- Realizan verificaciones de estado en la instancia nueva.
- 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. - 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
En la consola de Google Cloud, ve a la página Descripción general de los clústeres de Google Kubernetes Engine.
Selecciona el proyecto de Google Cloud en el que se encuentra el clúster.
En la lista de clústeres, selecciona su nombre y, luego, Ver detalles en el panel lateral.
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.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 compatibleUSERNAME_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 segundoROOT_VOLUME_SIZE
: el tamaño del volumen raíz, en GbROOT_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ústerSECURITY_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
.
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.
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 CloudPROJECT_ID
(obligatorio): tu proyecto de Google CloudGOOGLE_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ústerUPDATE_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ústerGOOGLE_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:
CLUSTER_NAME
: Es el nombre del clústerGOOGLE_CLOUD_LOCATION
: Es la región de Google Cloud compatible con la que se administra el clúster, por ejemplo,us-west1
.
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ústerGOOGLE_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 segundoROOT_VOLUME_SIZE
: el tamaño del volumen raíz, en GbROOT_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ústerGOOGLE_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?
- 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
gcloud container aws clusters update
. - Consulta la documentación de la API de REST de
projects.locations.awsClusters.patch
.