En este documento se muestra cómo realizar una actualización de clúster que no incluya un cambio de versión.
Una actualización de un clúster es un cambio en la configuración del clúster.
Una actualización de un clúster es un caso especial de actualización de clúster que incluye un cambio en la versión del plano de control o en la versión de un grupo de nodos. Para obtener información sobre cómo actualizar, consulta Actualizar Google Distributed Cloud.
Revisar las reglas de cortafuegos
En la versión 1.29 y posteriores, las comprobaciones previas del lado del servidor están habilitadas de forma predeterminada. Las comprobaciones previas del lado del servidor requieren reglas de cortafuegos adicionales. En Reglas de firewall para clústeres de administrador, busca "Comprobaciones previas" y asegúrate de que todas las reglas de firewall necesarias estén configuradas.
Con las comprobaciones previas del lado del servidor, cuando actualizas un clúster de usuarios con gkectl
, las comprobaciones previas se ejecutan en el clúster de administrador en lugar de localmente en la estación de trabajo del administrador. Las comprobaciones previas del lado del servidor se ejecutan en el clúster de administrador cuando usas la Google Cloud consola, la CLI de Google Cloud o Terraform
para actualizar un clúster.
Cuando actualizas un clúster de administrador, Google Distributed Cloud despliega un clúster Kubernetes in Docker (kind) para alojar temporalmente los controladores de Kubernetes necesarios para actualizar el clúster de administrador. Este clúster transitorio se denomina clúster de arranque. Las comprobaciones previas del lado del servidor se ejecutan en el clúster de arranque cuando actualizas un clúster de administrador.
Qué se puede actualizar
Algunas funciones y ajustes del clúster se pueden actualizar, pero otros no se pueden modificar una vez que se haya creado el clúster. Para ver qué funciones se pueden actualizar, consulta las páginas de referencia del archivo de configuración del clúster de administrador y del archivo de configuración del clúster de usuario. Los campos que se pueden actualizar están marcados como Mutable y los que no se pueden actualizar están marcados como Immutable.
También puedes ver qué funciones y ajustes se pueden actualizar ejecutando gkectl
comandos.
Para ver qué se puede actualizar en un clúster de administrador, haz lo siguiente:
gkectl update admin --help
Ejemplo:
Update the admin cluster. Only the following updates are supported and they can only be updated one at a time: - Enabling/Disabling Vsphere Resource Metrics - Adding static IPs - Updating vCenter CA certificate - Registering Admin Cluster - Enabling/Disabling Cloud Audit Logging - Enabling/Disabling Stackdriver - Enabling/Disabling Auto Repair - Enabling/Disabling Auto Resize for Addon Nodes - Enabling/Disabling GKE OnPrem API - Updating OS Image Type - Enabling/Disabling AntiAffinityGroups - Update Secrets Encryption Configuration - [Preview] Enabling/Disabling Cluster Backup - [Preview] Update Cluster Backup configs
Para ver qué se puede actualizar en un clúster de usuarios, sigue estos pasos:
gkectl update cluster --help
Ejemplo:
Update a GKE On-Prem cluster. Only the following updates are supported and they can only be updated one at a time: - Adding static IPs - Updating node pool - Updating user master cpu and memory - Enabling/Disabling Vsphere Resource Metrics - Enabling/Disabling vSphere CSI deployment - Enabling/Disabling Auto Repair - Enabling/Disabling Cloud Audit Logging - Enabling/Disabling Stackdriver - Enabling/Disabling GKE OnPrem API - Registering User Cluster - Updating vCenter CA certificate - Updating MetalLB Address Pools - Enabling/Disabling Auto Resizing on user master - Updating NodePoolUpdatePolicy - Enabling/Disabling AntiAffinityGroups - [Preview] Enabling/Disabling Node Network Policy - Updating Secrets Encryption - Enabling/Disabling DataplaneV2 forwardMode
Actualizar un elemento a la vez
Actualiza solo una función o un ajuste a la vez. Por ejemplo, supongamos que quieres actualizar la CPU y la memoria principales y también quieres inhabilitar la reparación automática.
A continuación, realizarías dos actualizaciones independientes: una para la CPU y la memoria principales, y otra para la reparación automática. Verifica que la primera actualización se haya realizado correctamente antes de hacer la segunda.
Procedimiento de actualización
Puedes usar gkectl
, la consola Google Cloud o la CLI de Google Cloud para actualizar un clúster de usuario. Si has creado el clúster de usuarios con Terraform, puedes usar Terraform para actualizarlo. En casi todos los casos, debe usar gkectl
para actualizar los clústeres de administrador.
Si usas gkectl
para actualizar un clúster, asegúrate de que tu estación de trabajo de administrador tenga la versión necesaria de gkectl
. Normalmente, se usa la misma versión de gkectl
que la del clúster que se está actualizando. Durante la actualización, se aplican las siguientes reglas de versión:
La versión secundaria
gkectl
no puede ser inferior a la versión secundaria del clúster. Por ejemplo, no se puede actualizar un clúster 1.30 con la versión 1.29 degkectl
. Las versiones de parche no importan. Por ejemplo, puedes usar la versióngkectl
1.29.0-gke.1456 para actualizar un clúster con una versión de parche superior, como 1.29.1000-gke.94.La versión secundaria
gkectl
no puede ser más de dos versiones secundarias superior a la versión del clúster. Por ejemplo, si actualizas un clúster 1.28, la versión degkectl
puede ser 1.29 o 1.30. Sin embargo, no puedes usar la versióngkectl
1.31 porque es tres versiones secundarias superior a la versión del clúster.Si actualizas el clúster a un clúster avanzado, la versión de
gkectl
debe ser la misma que la de tu clúster.
Si es necesario, consulta Descargar gkectl
para obtener una versión compatible de gkectl
.
En los siguientes ejemplos se muestra cómo actualizar clústeres.
gkectl
El comando gkectl update
puede tener uno de los siguientes formatos:
gkectl update credentials
: úsalo para actualizar las credenciales del clúster.gkectl update admin
: ejecuta este comando después de hacer un cambio en el archivo de configuración del clúster de administrador.gkectl update cluster
: ejecuta este comando después de hacer un cambio en el archivo de configuración del clúster de usuario.
Ejemplo de clúster de administrador (gkectl update admin
)
Supongamos que quiere cambiar el valor de
gkeOnPremAPI.enabled
de false
a true
en un clúster de administrador. Primero, edita el archivo de configuración del clúster de administrador y asigna el valor true
:
gkeOnPremAPI: enabled: true
A continuación, actualiza el clúster de administrador:
gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG
Haz los cambios siguientes:
ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador
ADMIN_CLUSTER_CONFIG: la ruta del archivo de configuración del clúster de administrador
Ejemplo de clúster de usuarios (gkectl update cluster
)
Supongamos que quiere cambiar el valor de stackdriver.vSphereDisableResourceMetrics
de false
a true
en un clúster de usuarios. Primero, edita el archivo de configuración del clúster de usuarios y asigna el valor true
:
stackdriver: disableVsphereResourceMetrics: true
A continuación, actualiza el clúster de usuarios:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Haz los cambios siguientes:
ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador
USER_CLUSTER_CONFIG: la ruta del archivo de configuración del clúster de usuarios
Ejemplo de clúster de usuarios (gkectl update credentials
)
Supongamos que quieres cambiar las credenciales que usa un clúster de usuarios para llamar a vCenter Server.
El archivo de configuración del clúster de usuarios tiene un campo vCenter.credentials.fileRef.path que apunta a un archivo de configuración de credenciales.
En el archivo de configuración de las credenciales, actualice los valores de username
y password
. Por ejemplo:
items: - name: "vcenter-creds" username: "new-vcenter-account" password: "U$icUKEW#INE"
A continuación, actualiza las credenciales:
gkectl update credentials vsphere \ --config USER_CLUSTER_CONFIG \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Haz los cambios siguientes:
USER_CLUSTER_CONFIG: la ruta del archivo de configuración del clúster de usuarios
ADMIN_CLUSTER_KUBECONFIG: la ruta del archivo kubeconfig del clúster de administrador
Consola
En la consola, ve a la página Descripción general de los clústeres de Google Kubernetes Engine.
Selecciona el Google Cloud proyecto y, a continuación, el clúster que quieras actualizar.
En el panel Detalles, haga clic en Más detalles.
Los campos que se pueden actualizar en la consola Google Cloud tienen un icono de lápiz. Haz clic en uno de los iconos de lápiz. En el cuadro que se abre, cambia los valores de los campos como quieras y haz clic en HECHO.
En la parte superior de la página, en la barra de progreso, haga clic en Mostrar detalles. Espera a que se complete la actualización.
CLI de gcloud
Ejecuta el comando de actualización correspondiente. Especifica solo las marcas de la configuración que quieras modificar:
Clústeres de administrador:
gcloud container vmware admin-clusters update
Clústeres de usuarios:
gcloud container vmware clusters update
Grupos de nodos en un clúster de usuarios:
gcloud container vmware node-pools update
Actualizar los usuarios administradores de un clúster de usuarios
El servidor de la API de Kubernetes de cada clúster debe poder autorizar las solicitudes que recibe. Para configurar la autorización, debes configurar las políticas de control de acceso basado en roles (RBAC) de Kubernetes en cada clúster. Un usuario administrador es un usuario al que se le ha asignado el rol cluster-admin
en el clúster de usuarios. Este rol concede al usuario acceso administrativo completo al clúster.
Supongamos que Alicia y Bob son los únicos usuarios administradores del clúster de usuarios llamado cluster-1 en la región us-west1. Supongamos que Alicia quiere añadir a Trent como usuario administrador adicional. Alice podría ejecutar el siguiente comando:
gcloud container vmware clusters update cluster-1 \ --project example-project-id-12345 \ --location us-west1 \ --admin-users alice@example.com \ --admin-users bob@example.com \ --admin-users trent@example.com
El comando anterior mantiene a Alicia y a Bob en la lista de administradores y añade a Trent a la lista. Ten en cuenta que Alice y Bob deben aparecer en el comando, ya que este sobrescribe la lista actual de usuarios administradores con la lista especificada en el comando. También debes tener en cuenta que cada marca --admin-users
especifica solo un usuario. No puedes especificar varios usuarios en una sola marca.
Terraform
Cambia los valores de los campos correspondientes del archivo de configuración de Terraform que has usado para crear el clúster o el grupo de nodos. Para obtener descripciones detalladas de los campos, consulta la documentación de referencia de Terraform:
Actualiza la configuración ejecutando
terraform apply
.
Actualizar los usuarios administradores de un clúster de usuarios
El servidor de la API de Kubernetes de cada clúster debe poder autorizar las solicitudes que recibe. Para configurar la autorización, debes configurar las políticas de control de acceso basado en roles (RBAC) de Kubernetes en cada clúster. Un usuario administrador es un usuario al que se le ha asignado el rol cluster-admin
en el clúster de usuarios. Este rol concede al usuario acceso administrativo completo al clúster.
Supongamos que Alicia y Borja son los únicos usuarios administradores de un clúster de usuarios concreto. Supongamos que Alice quiere añadir a Trent como administrador adicional. Alice podría ajustar la configuración de Terraform de la siguiente manera y, a continuación, ejecutar terraform apply
:
authorization { admin_users { username = "alice@example.com" username = "bob@example.com" username = "trent@example.com" } }
Con el ajuste anterior, Alice y Bob seguirán en la lista de usuarios administradores y se añadirá Trent. Ten en cuenta que Alice y Bob deben aparecer en la nueva configuración, ya que el comando terraform apply
sobrescribe la lista actual de usuarios administradores con la lista especificada en la configuración.
Más información
En los documentos que se indican en esta sección se ofrecen más detalles sobre la actualización de clústeres.
Actualizar clúster o administrador
En los siguientes documentos se explica cómo usar gkectl update admin
y gkectl update cluster
para actualizar funciones y ajustes:
Actualizar credenciales
En los siguientes documentos se explica cómo usar gkectl update credentials
para actualizar claves y certificados: