Actualiza un clúster de administrador o de usuario con los clientes de la API de GKE On-Prem

En esta página, se explica cómo usar la consola de Google Cloud o Google Cloud CLI para actualizar un clúster de usuario o administrador de GKE en Bare Metal que esté inscrito en la API de GKE On-Prem. Si creaste el clúster de usuario con Terraform, puedes usar Terraform para actualizar el clúster de usuario. Para conocer los requisitos de actualización, las prácticas recomendadas y la información adicional sobre el proceso de actualización, consulta las prácticas recomendadas para la actualización y el ciclo de vida y las etapas de las actualizaciones de clústeres antes de continuar.

¿Qué es la API de GKE On-Prem?

La API de GKE On-Prem es una API alojada en Google Cloud que te permite administrar el ciclo de vida de tus clústeres locales con Terraform y las herramientas estándar de Google Cloud. La API de GKE On-Prem se ejecuta en la infraestructura de Google Cloud. Terraform, la consola de Google Cloud y Google Cloud CLI son clientes de la API y la usan para crear, actualizar, actualizar y borrar clústeres de tu centro de datos. Si creaste el clúster con un cliente estándar, este se inscribe en la API de GKE On-Prem, lo que significa que puedes usar los clientes estándar para administrar el ciclo de vida del clúster (con algunas excepciones). Si creaste el clúster con bmctl, puedes inscribirlo en la API de GKE On-Prem, lo que te permite usar los clientes estándar.

Antes de comenzar

Configura la CLI de gcloud

Sigue estos pasos para usar gcloud CLI o Terraform para actualizar un clúster:

  1. Asegúrate de tener la versión más reciente de la CLI de gcloud. Si es necesario, actualiza los componentes de gcloud CLI:

    gcloud components update
    

Requisitos de IAM

Si no eres propietario de un proyecto, se te debe otorgar la función de Identity and Access Management roles/gkeonprem.admin en el proyecto de Google Cloud en el que se creó el clúster. Para obtener detalles sobre los permisos incluidos en esta función, consulta las funciones de GKE On-Prem en la documentación de IAM.

Si quieres usar la consola para actualizar el clúster, como mínimo, necesitas lo siguiente:

  • roles/container.viewer. Esta función permite a los usuarios ver la página Clústeres de GKE y otros recursos de contenedor en la consola. Para obtener detalles sobre los permisos incluidos en esta función, o sobre cómo otorgar una función con permisos de lectura o escritura, consulta Funciones de Kubernetes Engine en la documentación de IAM.

  • roles/gkehub.viewer: Esta función permite a los usuarios ver los clústeres en la consola. Para obtener detalles sobre los permisos incluidos en esta función o para otorgar una función con permisos de lectura o escritura, consulta Funciones de GKE Hub en la documentación de IAM.

Requisitos de la versión

Una vez que se realiza un lanzamiento de GKE en Bare Metal, se necesitan entre 7 y 10 días para que la versión esté disponible en la API de GKE On-Prem.

Puedes actualizar directamente a una versión que se encuentre en la misma versión secundaria o en la siguiente. Por ejemplo, puedes actualizar de la 1.15.1 a la 1.15.2, o de la 1.14.1 a la 1.15.2. No se permite actualizar a una versión que sea más de una versión secundaria posterior a la versión instalada.

Un clúster de administrador puede administrar clústeres de usuario que se encuentran en la misma versión secundaria o en una anterior. Los clústeres de usuario administrados no pueden tener una versión secundaria menor que el clúster de administrador, por lo que, antes de actualizar un clúster de administrador a una versión secundaria nueva, asegúrate de que todos los clústeres de usuario administrados usen la misma versión secundaria que el clúster de administrador.

Actualiza un clúster de administrador

Console

  1. En la consola, ve a la página de 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 y, luego, elige el clúster que deseas actualizar.

  3. En el panel Detalles, haz clic en Más detalles.

  4. En la sección Conceptos básicos del clúster, haz clic en Actualizar.

  5. En la lista Choose target version, selecciona la versión a la que deseas actualizar. Te recomendamos que actualices a la versión más reciente del parche.

  6. Haz clic en Actualizar.

Antes de actualizar el clúster, se ejecutan las comprobaciones preliminares para validar su estado y el de los nodos. Si se aprueban las comprobaciones preliminares, se actualiza el clúster de administrador. La actualización tarda 30 minutos o más en completarse, según el tamaño del clúster.

Para ver el estado de la actualización, haz clic en Mostrar detalles en la pestaña Detalles del clúster.

gcloud CLI

  1. De manera opcional, enumera todos los clústeres de administrador inscritos en el proyecto para confirmar el nombre del clúster y la región:

    gcloud container bare-metal admin-clusters list \
      --project=PROJECT_ID \
      --location=-
    
    • Reemplaza PROJECT_ID por el ID del proyecto host de la flota en el que es miembro el clúster. Si creaste el clúster con bmctl, este es el ID del proyecto en el campo gkeConnect.projectID del archivo de configuración del clúster.

    • Cuando configuras --location=-, significa que se enumeran todos los clústeres en todas las regiones. Si necesitas ampliar el alcance de la lista, establece --location en una región específica.

    Si recibes un error PERMISSION_DENIED, vuelve a verificar el ID del proyecto que ingresaste. Si el ID del proyecto es correcto, ejecuta gcloud auth login para acceder a Google Cloud CLI con la cuenta que tiene acceso al proyecto.

  2. Obtén una lista de las versiones disponibles para actualizar:

    gcloud container bare-metal admin-clusters query-version-config \
      --admin-cluster=ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    Reemplaza lo siguiente:

    • ADMIN_CLUSTER_NAME: Es el nombre del clúster de administrador.

    • PROJECT_ID: El ID del proyecto host de la flota en el que es miembro el clúster.

    • REGION: Es la región de Google Cloud en la que la API de GKE On-Prem ejecuta y almacena los metadatos del clúster.

  3. Actualiza el clúster de administrador:

    gcloud container bare-metal admin-clusters update ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --version=VERSION
    

    Reemplaza VERSION por la versión de GKE en Bare Metal a la que deseas actualizar. Especifica una versión del resultado del comando anterior. Te recomendamos que actualices a la versión más reciente del parche.

    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 string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 es la OPERATION_ID de la operación de larga duración.

    Para averiguar el estado de la operación, copia el OPERATION_ID de tu resultado en el siguiente comando. Abre otra ventana de terminal y ejecuta el comando.

    gcloud container bare-metal operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=REGION
    

La actualización tarda 30 minutos o más en completarse, según el tamaño del clúster. Mientras se actualiza el clúster, puedes ejecutar el comando anterior de vez en cuando para obtener el estado actual.

Cuando finalice la actualización, verás algo similar a lo siguiente en la ventana de la terminal en la que ejecutaste el comando gcloud ... update:

Updated Anthos on bare metal Admin Cluster [https://gkeonprem.googleapis.com/v1/projects/example-project-1234/locations/us-central1/bareMetalAdminClusters/abm-admin-cluster].
NAME               LOCATION     VERSION     MEMBERSHIP         STATE
abm-admin-cluster  us-central1  1.15.11      abm-admin-cluster  RUNNING

Para obtener información adicional sobre los campos y las marcas, consulta la referencia de admin-clusters de gcloud container bare-metal admin-clusters.

Actualiza un clúster de usuario

Console

  1. En la consola, ve a la página de 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 y, luego, elige el clúster que deseas actualizar.

  3. En el panel Detalles, haz clic en Más detalles.

  4. En la sección Conceptos básicos del clúster, haz clic en Actualizar.

  5. En la lista Choose target version, selecciona la versión a la que deseas actualizar.

  6. Haz clic en Actualizar.

Antes de actualizar el clúster, se ejecutan las comprobaciones preliminares para validar su estado y el de los nodos. Si se aprueban las comprobaciones preliminares, el clúster de usuario se actualiza. La actualización tarda 30 minutos o más en completarse, según el tamaño del clúster.

Para ver el estado de la actualización, haz clic en Mostrar detalles en la pestaña Detalles del clúster.

gcloud CLI

  1. De manera opcional, enumera todos los clústeres de usuario inscritos en el proyecto para confirmar el nombre del clúster y la región:

    gcloud container bare-metal clusters list \
      --project=PROJECT_ID \
      --location=-
    
    • Reemplaza PROJECT_ID por el ID del proyecto host de la flota en el que es miembro el clúster. Si creaste el clúster con bmctl, este es el ID del proyecto en el campo gkeConnect.projectID del archivo de configuración del clúster.

    • Cuando configuras --location=-, significa que se enumeran todos los clústeres en todas las regiones. Si necesitas ampliar el alcance de la lista, establece --location en una región específica.

    El resultado del comando es similar al siguiente:

    NAME              LOCATION     VERSION  ADMIN_CLUSTER      STATE
    abm-user-cluster  us-central1  1.15.11   abm-admin-cluster  RUNNING
    

    Si recibes un error PERMISSION_DENIED, vuelve a verificar el ID del proyecto que ingresaste. Si el ID del proyecto es correcto, ejecuta gcloud auth login para acceder a Google Cloud CLI con la cuenta que tiene acceso al proyecto.

  2. Obtén una lista de las versiones disponibles para actualizar:

    gcloud container bare-metal clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    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 en el que es miembro el clúster.

    • REGION: Es la región de Google Cloud en la que la API de GKE On-Prem ejecuta y almacena los metadatos del clúster.

    El resultado del comando es similar al siguiente:

    versions:
    - hasDependencies: true
    version: 1.15.2
    - hasDependencies: true
    version: 1.15.1
    - hasDependencies: true
    version: 1.15.0
    - version: 1.14.6
    

    Elige una versión que no aparezca en la lista de - hasDependencies: true. En este ejemplo, la única versión disponible a la que puedes actualizar el clúster de usuario es 1.14.6.

  3. Actualiza el clúster de usuario:

    gcloud container bare-metal clusters update USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --version=VERSION
    

    Reemplaza VERSION por la versión de GKE en Bare Metal a la que deseas actualizar. Especifica una versión del resultado del comando anterior. Te recomendamos que actualices a la versión más reciente del parche.

    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 string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 es la OPERATION_ID de la operación de larga duración.

    Para averiguar el estado de la operación, copia el OPERATION_ID de tu resultado en el siguiente comando. Abre otra ventana de terminal y ejecuta el comando.

    gcloud container bare-metal operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=REGION
    

La actualización tarda 30 minutos o más en completarse, según el tamaño del clúster. Mientras se actualiza el clúster, puedes ejecutar el comando anterior de vez en cuando para obtener el estado actual.

Para obtener información adicional sobre los campos y las marcas, consulta la referencia de clústeres de gcloud container bare-metal.

Terraform

Para actualizar un clúster mediante Terraform, debes usar la misma configuración de Terraform que usaste para crear el clúster.

  1. Cambia al directorio en el que se encuentra el archivo de configuración de Terraform.

  2. Obtén una lista de las versiones disponibles para actualizar:

    gcloud container bare-metal clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    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 en el que es miembro ese clúster de usuario.

    • REGION: Es la región de Google Cloud en la que se ejecuta y almacena los metadatos de la API de GKE On-Prem.

    Si recibes un error PERMISSION_DENIED, vuelve a verificar el ID del proyecto que ingresaste. Si el ID del proyecto es correcto, ejecuta gcloud auth login para acceder a Google Cloud CLI con la cuenta que tiene acceso al proyecto.

  3. En tu configuración de Terraform, cambia bare_metal_version a la versión de GKE en Bare Metal a la que deseas actualizar. Especifica una versión del resultado del comando anterior. Te recomendamos que actualices a la versión más reciente del parche.

  4. Inicializa y crea terraform plan:

    terraform init
    

    Terraform instala las bibliotecas necesarias, como el proveedor de Google Cloud.

  5. Revisa la configuración y realiza cambios si es necesario:

    terraform plan
    
  6. Aplica el plan de Terraform para crear el clúster de usuario:

    terraform apply
    

Para obtener información sobre el recurso google_gkeonprem_bare_metal_cluster, consulta la documentación de referencia.