En esta página, se muestra cómo actualizar el plano de control y los grupos de nodos por separado en un clúster de usuario creado con Google Distributed Cloud (solo software) en VMware. Esta página está destinada a administradores de TI y operadores que administran el ciclo de vida de la infraestructura tecnológica subyacente. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Tareas y roles comunes de los usuarios de GKE Enterprise. Antes de leer este documento, asegúrate de estar familiarizado con la planificación y ejecución de las actualizaciones de Google Distributed Cloud, como se describe a continuación:
La actualización de los grupos de nodos por separado del plano de control es compatible con los grupos de nodos de Ubuntu y COS, pero no con los de Windows. Además, esta función no está disponible en clústeres avanzados.
¿Por qué actualizar el plano de control y los grupos de nodos por separado?
Si tus clústeres están en la versión 1.16 o una posterior, puedes omitir una versión menor cuando actualices los grupos de nodos. Realizar una actualización sin versión reduce a la mitad el tiempo que se tardaría en actualizar de forma secuencial dos versiones de los grupos de nodos. Además, las actualizaciones que omiten versiones te permiten aumentar el tiempo entre las actualizaciones necesarias para mantener una versión compatible. Reducir la cantidad de actualizaciones reduce las interrupciones de la carga de trabajo y el tiempo de verificación. Para obtener más información, consulta Cómo omitir una versión cuando se actualizan grupos de nodos.
En ciertas situaciones, es posible que desees actualizar algunos, pero no todos los grupos de nodos de un clúster de usuario, por ejemplo:
Primero, puedes actualizar el plano de control y un grupo de nodos que tenga tráfico ligero o que ejecute tus cargas de trabajo menos críticas. Una vez que te convenzas de que tus cargas de trabajo se ejecutan correctamente en la versión nueva, puedes actualizar grupos de nodos adicionales, hasta que, finalmente, se actualicen todos.
En lugar de un período de mantenimiento grande para la actualización del clúster, puedes actualizarlo en varios períodos de mantenimiento. Consulta Estima el compromiso de tiempo y planifica un período de mantenimiento para obtener información sobre cómo estimar el tiempo de un período de mantenimiento.
Antes de comenzar
En la versión 1.29 y versiones posteriores, las verificaciones previas del servidor están habilitadas de forma predeterminada. Asegúrate de revisar las reglas de firewall para realizar los cambios necesarios.
Para actualizar a la versión 1.28 y versiones posteriores, debes habilitar
kubernetesmetadata.googleapis.com
y otorgar el rol de IAMkubernetesmetadata.publisher
a la cuenta de servicio de supervisión y registro. Para obtener más información, consulta Requisitos de la API de Google y de IAM.Asegúrate de que la versión actual del clúster sea la 1.14 o una posterior.
Actualiza el plano de control y los grupos de nodos seleccionados
La actualización del plano de control de un clúster de usuario por separado de los grupos de nodo trabajador es compatible con gkectl
, Google Cloud CLI y Terraform.
Solo puedes usar Terraform para la actualización si creaste el clúster de usuario con Terraform.
gkectl
Define la versión de origen y la versión de destino en las siguientes variables de marcador de posición. Todas las versiones deben ser el número de versión completo en el formato
x.y.z-gke.N
, como1.16.11-gke.25
.Versión Descripción SOURCE_VERSION
Es la versión actual del clúster. TARGET_VERSION
Elige la versión de destino. Selecciona el parche recomendado de la versión secundaria objetivo. Actualiza tu estación de trabajo de administrador a la versión de destino. Espera a que aparezca un mensaje que indique que la actualización se realizó correctamente.
Importa las imágenes de SO correspondientes a vSphere:
gkectl prepare \ --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Reemplaza
ADMIN_CLUSTER_KUBECONFIG
por la ruta de acceso del archivokubeconfig
del clúster de administrador.Realiza los siguientes cambios en el archivo de configuración del clúster de usuario:
Establece el campo
gkeOnPremVersion
en la versión objetivo,TARGET_VERSION
.Para cada grupo de nodos que quieras actualizar, configura el campo
nodePools.nodePool[i].gkeOnPremVersion
como la cadena vacía.Para cada grupo de nodos que no deseas actualizar, establece
nodePools.nodePool[i].gkeOnPremVersion
en la versión de origen,SOURCE_VERSION
.
En el siguiente ejemplo, se muestra una parte del archivo de configuración del clúster de usuario. Especifica que el plano de control y
pool-1
se actualizarán aTARGET_VERSION
, peropool-2
permanecerá enSOURCE_VERSION
.gkeOnPremVersion: TARGET_VERSION ... nodePools: - name: pool-1 gkeOnPremVersion: "" ... - name: pool-2 gkeOnPremVersion: SOURCE_VERSION ...
Actualiza el plano de control y los grupos de nodos seleccionados:
gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE
Reemplaza
USER_CLUSTER_CONFIG
por la ruta de acceso del archivo de configuración del clúster de usuario.
Actualiza grupos de nodos adicionales
En el ejemplo anterior, supongamos que todo funciona bien con pool-1
y ahora quieres actualizar pool-2
.
En el archivo de configuración del clúster de usuario, en
pool-2
, establecegkeOnPremVersion
en la cadena vacía:gkeOnPremVersion: TARGET_VERSION ... nodePools: - name: pool-1 gkeOnPremVersion: "" ... - name: pool-2 gkeOnPremVersion: "" ...
Ejecuta
gkectl update cluster
para aplicar el cambio:gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
gcloud CLI
La actualización de un clúster de usuario requiere algunos cambios en el clúster de administrador. El comando gcloud container vmware clusters upgrade
realiza automáticamente lo siguiente:
Inscribe el clúster de administrador en la API de GKE On-Prem si aún no está inscrito.
Descarga y, luego, implementa un paquete de componentes en el clúster de administrador. La versión de los componentes coincide con la que especificaste para la actualización. Estos componentes permiten que el clúster de administrador administre clústeres de usuario en esa versión.
Actualizar el plano de control
Sigue el siguiente paso para actualizar el plano de control del clúster de usuario.
Actualiza los componentes de la Google Cloud CLI:
gcloud components update
Cambia la política de actualización en el clúster:
gcloud container vmware clusters update USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --upgrade-policy control-plane-only=True
Reemplaza lo siguiente:
USER_CLUSTER_NAME
: Es el nombre del clúster de usuario que se actualizará.PROJECT_ID
: El ID del proyecto host de la flota del que es miembro el clúster del usuario. Este es el proyecto que especificaste cuando se creó el clúster. Si creaste el clúster congkectl
, este es el ID del proyecto en el campogkeConnect.projectID
del archivo de configuración del clúster.REGION
: Es la región de Google Cloud en la que se ejecuta la API de GKE On-Prem y se almacenan sus metadatos. Si creaste el clúster con un cliente de API de GKE On-Prem, esta es la región que seleccionaste cuando creaste el clúster. Si creaste el clúster congkectl
, esta es la región que especificaste cuando lo inscribiste en la API de GKE On-Prem.
Actualiza el plano de control del clúster:
gcloud container vmware clusters upgrade USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --version=TARGET_VERSION
Reemplaza
TARGET_VERSION
por la versión a la que deseas actualizar. Selecciona el parche recomendado de la versión secundaria objetivo.El resultado del comando es similar al siguiente:
Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
En el resultado de ejemplo, la cadena
operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
es el OPERATION_ID de la operación de larga duración. Para averiguar el estado de la operación, ejecuta el siguiente comando en otra ventana de terminal:gcloud container vmware operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=REGION
Actualizar grupos de nodos
Sigue los pasos que se indican a continuación para actualizar los grupos de nodos después de actualizar el plano de control del clúster de usuario:
Obtén una lista de los grupos de nodos en el clúster de usuario:
gcloud container vmware node-pools list --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
Para cada grupo de nodos que quieras actualizar, ejecuta el siguiente comando:
gcloud container vmware node-pools update NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --version=TARGET_VERSION
Terraform
Actualiza los componentes de la Google Cloud CLI:
gcloud components update
Si aún no lo has hecho, inscribe el clúster de administrador en la API de GKE On-Prem. Una vez que el clúster esté inscrito en la API de GKE On-Prem, no necesitarás volver a realizar este paso.
Descarga la versión nueva de los componentes y, luego, impleméntalos en el clúster de administración:
gcloud vmware admin-clusters update ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION \ --required-platform-version=TARGET_VERSION
Reemplaza lo siguiente:
USER_CLUSTER_NAME
: Es el nombre del clúster de usuario que se actualizará.PROJECT_ID
: Es el ID del proyecto host de la flota del que es miembro el clúster del usuario. Este es el proyecto que especificaste cuando se creó el clúster. Si creaste el clúster congkectl
, este es el ID del proyecto en el campogkeConnect.projectID
del archivo de configuración del clúster.REGION
: Es la región de Google Cloud en la que se ejecuta la API de GKE On-Prem y se almacenan sus metadatos. Si creaste el clúster con un cliente de API de GKE On-Prem, esta es la región que seleccionaste cuando creaste el clúster. Si creaste el clúster congkectl
, esta es la región que especificaste cuando lo inscribiste en la API de GKE On-Prem.TARGET_VERSION
: Es la versión a la que se actualizará. Selecciona el parche recomendado de la versión secundaria objetivo.
Con este comando, se descarga la versión de los componentes que especificas en
--required-platform-version
al clúster de administrador y, luego, se implementan los componentes. Estos componentes permiten que el clúster de administrador administre clústeres de usuario en esa versión.En el archivo
main.tf
que usaste para crear el clúster de usuario, cambiaon_prem_version
en el recurso del clúster a la versión nueva.Agrega lo siguiente al recurso del clúster para que solo se actualice el plano de control:
upgrade_policy { control_plane_only = true }
Inicializa y crea terraform plan:
terraform init
Terraform instala las bibliotecas necesarias, como el proveedor de Google Cloud.
Revisa la configuración y realiza cambios si es necesario:
terraform plan
Aplica el plan de Terraform para crear el clúster de usuario:
terraform apply
Actualizar grupos de nodos
Sigue los pasos que se indican a continuación para actualizar los grupos de nodos después de actualizar el plano de control del clúster de usuario:
En
main.tf
, en el recurso de cada grupo de nodos que deseas actualizar, agrega lo siguiente:on_prem_version = "TARGET_VERSION"
Por ejemplo:
resource "google_gkeonprem_vmware_node_pool" "nodepool-basic" { name = "my-nodepool" location = "us-west1" vmware_cluster = google_gkeonprem_vmware_cluster.default-basic.name config { replicas = 3 image_type = "ubuntu_containerd" enable_load_balancer = true } on_prem_version = "1.16.0-gke.0" }
Inicializa y crea terraform plan:
terraform init
Revisa la configuración y realiza cambios si es necesario:
terraform plan
Aplica el plan de Terraform para crear el clúster de usuario:
terraform apply
Soluciona problemas
Si encuentras un problema después de actualizar un grupo de nodos, puedes revertirlo a la versión anterior. Para obtener más información, consulta Cómo revertir un grupo de nodos después de una actualización.