Registra un clúster fuera de Google Cloud en tu flota

En esta página, se muestra cómo agregar un clúster de GKE a Google Cloud en tu flota. Según tu proyecto y caso práctico, puedes usar la consola de Google Cloud, Terraform, Config Connector o Google Cloud CLI para el registro. También puedes crear y registrar un clúster nuevo en un solo paso con Google Cloud CLI, la consola de Google Cloud o Terraform.

Antes de comenzar

Asegúrate de haber seguido los requisitos generales para registrar un clúster.

Según tu caso de uso, los registros de clústeres de GKE en Google Cloud también pueden requerir lo siguiente:

Registra tu clúster de GKE en Google Cloud

Como viste en los requisitos previos, te recomendamos registrar tus clústeres de GKE con federación de identidades para cargas de trabajo de la flota para GKE habilitada, que proporciona una forma coherente para que las aplicaciones se autentiquen en las APIs y los servicios de Google Cloud. Puedes obtener más información sobre las ventajas de habilitar la federación de identidades para cargas de trabajo de la flota para GKE en Usa la federación de identidades para cargas de trabajo de la flota para GKE. El registro de clústeres con cualquiera de las siguientes opciones te permite habilitar la federación de identidades para cargas de trabajo de la flota para GKE si es necesario.

Puedes elegir entre registrar un clúster nuevo durante la creación del clúster o registrar un clúster existente.

Registra un clúster nuevo

Si habilitaste GKE Enterprise, te recomendamos registrar clústeres nuevos en una flota durante la creación del clúster. Esto se debe a que estos clústeres “nacidos en la flota” se crean con la configuración predeterminada a nivel de la flota que elegiste para una serie de funciones empresariales y con los registros y las métricas recomendados ya habilitados. Puedes obtener más información al respecto en las siguientes guías:

Si no habilitaste GKE Enterprise, aún puedes registrar clústeres durante la creación del clúster con estas instrucciones, pero no obtendrás ninguna configuración predeterminada a nivel de la flota.

Console

  1. En la consola de Google Cloud, ve a la página de creación de clústeres relevante.

  2. Sigue las instrucciones de la documentación de GKE para completar las secciones con el objetivo de crear un clúster de Autopilot, Regional estándar o Zonado estándar en la consola de Google Cloud.

  3. En la sección Registro de flotas, selecciona la casilla de verificación Registrar en una flota. De forma predeterminada, el nombre de la flota se basa en el ID del proyecto.

  4. Completa las secciones restantes.

  5. Si elegiste crear un clúster estándar y quieres que el clúster registrado use la federación de identidades para cargas de trabajo de la flota (recomendado), haz clic en Seguridad en el panel de navegación y asegúrate de que Habilitar la federación de identidades para cargas de trabajo para GKE está seleccionado. Los clústeres en modo Autopilot tienen esta función habilitada de forma predeterminada.

  6. Cuando termines de revisar los detalles del clúster, haz clic en Crear para crear y registrar el clúster en una flota.

gcloud

Estos comandos requieren la versión 450.0.0 de gcloud CLI o una posterior.

Cuando registras un clúster con Google Cloud CLI, le otorgas una ubicación de membresía regional de forma predeterminada.

  • Para crear y registrar un clúster de GKE Autopilot nuevo, ejecuta el siguiente comando:

    gcloud container clusters create-auto CLUSTER_NAME --enable-fleet
    

    Reemplaza CLUSTER_NAME por un nombre único para el clúster que estás creando. Este también se convertirá en el nombre de la membresía del clúster. Si ya existe un clúster con este nombre en la flota que elegiste, el comando devolverá un error.

  • A fin de crear y registrar un clúster estándar de GKE nuevo con la federación de identidades para cargas de trabajo para GKE habilitada, ejecuta el siguiente comando:

    gcloud container clusters create CLUSTER_NAME --enable-fleet \
    --workload-pool=PROJECT_ID.svc.id.goog
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: Es un nombre único para el clúster que creas. Este también se convertirá en el nombre de la membresía del clúster. Si ya existe un clúster con este nombre en la flota que elegiste, el comando devolverá un error.
    • PROJECT_ID: Es el ID del proyecto de Google Cloud que tendrá el clúster nuevo.

    Si creas un clúster estándar, te recomendamos que lo crees con la federación de identidades para cargas de trabajo para GKE habilitada, ya que esto habilita la federación de identidades para cargas de trabajo de la flota para tu clúster registrado. Sin embargo, puedes omitir la marca --workload-pool si no deseas usar esta función. Los clústeres en modo Autopilot tienen la federación de identidades para cargas de trabajo para GKE habilitada de forma predeterminada.

Según el clúster que desees crear, también puedes especificar cualquiera de las otras opciones para crear un clúster Zonal estándar, Regional estándar o Autopilot. Es posible que también debas especificar una zona de Compute Engine si no configuraste una zona predeterminada para Google Cloud CLI y un proyecto de Google Cloud para ser propietario del clúster si no configuraste un proyecto predeterminado.

Obtén más información para crear diferentes tipos de clústeres de GKE en la documentación de GKE.

Terraform

Puedes crear y registrar clústeres de GKE con Terraform con el proveedor google-beta. Puedes encontrar una referencia completa del recurso google_container_cluster que se usa para administrar un clúster de GKE en el registro de Terraform.

Asegúrate de haber creado una cuenta de servicio para que Terraform la use como se describe en los requisitos previos antes de seguir estas instrucciones.

Para crear y registrar un clúster nuevo, agrega los siguientes bloques a la configuración de Terraform.

  1. Especifica el proveedor google-beta como proveedor obligatorio:

    terraform {
      required_providers {
        google-beta = {
          source = "hashicorp/google-beta"
          version = "VERSION"
        }
      }
    }
    

    Reemplaza VERSION por 5.6.0 o una versión posterior.

  2. Crea y registra un clúster nuevo:

    resource "google_container_cluster" "TF_CLUSTER_RESOURCE_NAME" {
      provider = google-beta
      name               = "CLUSTER_NAME"
      location           = "ZONE"
      initial_node_count = 1
      fleet {
        project = "FLEET_HOST_PROJECT"
      }
    }
    

    Reemplaza lo siguiente:

    • TF_CLUSTER_RESOURCE_NAME: Un nombre único para el recurso google_container_cluster nuevo que creas.
    • CLUSTER_NAME: Un nombre único para el clúster de GKE nuevo que deseas crear y registrar.
    • ZONE: La zona del recurso del clúster de GKE. Por ejemplo: us-central1-a.
    • FLEET_HOST_PROJECT: El ID del proyecto de Google Cloud en el que creas y registras el clúster. Si no se configura, el clúster no se registrará en una flota. Especifica un ID del proyecto diferente si deseas registrar el clúster en una flota en un proyecto diferente.

Registrar un clúster existente

Usa cualquiera de las siguientes opciones para registrar clústeres existentes, ya sea en la flota de su propio proyecto o en una flota de un proyecto diferente (todas las opciones, excepto la consola de Google Cloud). También puedes optar por registrar algunos o todos tus clústeres existentes mientras actualizas a GKE Enterprise.

Para registrar un clúster de GKE existente, sigue estos pasos:

Console

Si deseas que tu clúster use la federación de Workload Identity de la flota (recomendado), asegúrate de que la federación de identidades para cargas de trabajo para GKE esté habilitada en el clúster antes de seguir estas instrucciones. Los clústeres en modo Autopilot tienen la federación de identidades para cargas de trabajo para GKE habilitada de forma predeterminada. Los clústeres con la federación de identidades para cargas de trabajo para GKE tienen habilitada la federación de identidades para cargas de trabajo de la flota de forma automática cuando los registras desde la consola de Google Cloud.

  1. En la consola de Google Cloud, ve a la página de clústeres de GKE.

    Ve a la página Clústeres de GKE

  2. Haz clic en Registrar junto al clúster no registrado que deseas agregar a tu flota.

  3. Vuelve a hacer clic en Registrar en el cuadro de diálogo de confirmación que aparece.

gcloud

Estos comandos requieren la versión 450.0.0 de gcloud CLI o una posterior.

Cuando registras un clúster con Google Cloud CLI, le otorgas una ubicación de membresía regional de forma predeterminada.

Ambos comandos habilitan la federación de identidades para cargas de trabajo de la flota para el clúster si el clúster ya tiene habilitada la Federación de Workload Identity para GKE.

  • Para registrar un clúster de GKE existente en Google Cloud en la flota de su proyecto, ejecuta el siguiente comando:

    gcloud container clusters update CLUSTER_NAME --enable-fleet
    

    Reemplaza CLUSTER_NAME por el nombre del clúster que deseas registrar. Este también se convertirá en el nombre de la membresía del clúster.

  • Para registrar el clúster en una flota en un proyecto diferente, usa la marca --fleet-project, como se muestra a continuación. Asegúrate de haber configurado los permisos necesarios para el registro entre proyectos antes de ejecutar este comando.

    gcloud container clusters update CLUSTER_NAME --fleet-project=PROJECT_ID_OR_NUMBER
    
    • Reemplaza CLUSTER_NAME por el nombre del clúster que deseas registrar. Este también se convertirá en el nombre de la membresía del clúster.
    • Reemplaza PROJECT_ID_OR_NUMBER por el ID o el número del proyecto host de flota elegido.

Terraform

Puedes registrar clústeres de GKE con Terraform mediante el proveedor google-beta. Puedes encontrar una referencia completa del recurso google_container_cluster que se usa para administrar un clúster de GKE en el registro de Terraform.

Asegúrate de haber creado una cuenta de servicio para que Terraform la use como se describe en los requisitos previos antes de seguir estas instrucciones.

Registrar un clúster existente

Para registrar un clúster existente, agrega el siguiente bloque a la configuración de recursos google_container_cluster de tu clúster:

fleet {
        project = "FLEET_HOST_PROJECT"
      }

Reemplaza FLEET_HOST_PROJECT por el ID del proyecto de Google Cloud al que pertenece tu clúster o un ID del proyecto diferente si deseas registrar el clúster en una flota en un proyecto diferente.

Habilita la federación de identidades para cargas de trabajo para GKE en un clúster registrado

Puedes usar Terraform a fin de habilitar la federación de identidades para cargas de trabajo para GKE en un clúster.

A fin de habilitar la federación de identidades para cargas de trabajo para GKE en tu clúster nuevo o existente, agrega el siguiente bloque en la configuración de recursos google_container_cluster del clúster relevante:

  workload_identity_config {
    workload_pool = "PROJECT_ID.svc.id.goog"
  }
  ```

 Replace <code><var>PROJECT_ID</var></code> with the Google Cloud project ID for your Terraform resources.

Config Connector

Si tienes el complemento de Config Connector instalado, puedes usar Config Connector para registrar clústeres de GKE. Asegúrate de tener una versión de Config Connector superior a 1.47.0 y de que hayas creado una cuenta de servicio como se describe en los requisitos.

Puedes encontrar una referencia completa del recurso GKEHubMembership en la documentación de referencia de Config Connector.

Registra un clúster de GKE

Para registrar el clúster, primero especifica dónde deseas crear tus recursos y sigue las instrucciones en la guía de Config Connector. Luego, crea un archivo YAML para registrar y, de manera opcional, un clúster de la siguiente manera:

Crea y registra un clúster de GKE

  1. Crea un clúster de GKE, como se muestra en el siguiente ejemplo simple:

    apiVersion: container.cnrm.cloud.google.com/v1beta1
    kind: ContainerCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      location: LOCATION
      initialNodeCount: 1
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: El nombre que elegiste para representar de forma única el clúster que creaste con Config Connector.
    • LOCATION: Es la zona o región que elegiste para aprovisionar el recurso del clúster de GKE. Por ejemplo: us-central1-a.

    Para obtener una lista completa de las opciones cuando creas un clúster de GKE con Config Connector, consulta la documentación de Config Connector.

  2. Registra una membresía para el clúster de GKE.

    apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
    kind: GKEHubMembership
    metadata:
      name: MEMBERSHIP_NAME
    spec:
      location: MEMBERSHIP_LOCATION
      endpoint:
        gkeCluster:
          resourceRef:
            name: CLUSTER_NAME
    

    Reemplaza lo siguiente:

    • MEMBERSHIP_NAME: El nombre de membresía que eliges para representar de forma única el clúster que se registra en la flota.
    • MEMBERSHIP_LOCATION: La ubicación del servicio de flota que deseas administrar la membresía de tu clúster. Puede ser la propia ubicación del clúster (recomendado) o global. Obtén más información en Ubicación de la membresía de la flota. No puedes especificar una ubicación que no sea la del clúster: si haces esto, el registro fallará.
    • CLUSTER_NAME: El nombre que elegiste para representar de forma única el clúster que creaste con Config Connector.

Registra el clúster en otro proyecto

Agrega lo siguiente al campo metadata del recurso GKEHubMembership para registrar un clúster en una flota en otro proyecto.

   metadata:
     annotations:
       cnrm.cloud.google.com/project-id: FLEET_PROJECT_ID

Reemplaza lo siguiente:

  • FLEET_PROJECT_ID: Es el proyecto host de la flota que elegiste para registrar el clúster de GKE.

Registrar un clúster existente

Usa la siguiente configuración si deseas registrar cualquier clúster existente, sin importar cómo se creó. En este caso, debes especificar el nombre completo del recurso del clúster para que el Config Connector pueda encontrarlo. Reemplaza el campo resourceRef del recurso GKEHubMembership por lo siguiente:

   resourceRef:
     external: //container.googleapis.com/CLUSTER_RESOURCE_NAME

Reemplaza lo siguiente:

  • CLUSTER_RESOURCE_NAME: El nombre del recurso de Google Cloud para el clúster de GKE. Por ejemplo: projects/my-project/zones/us-west1-a/clusters/my-cluster.

Si el clúster se creó con Config Connector, no necesitas especificar el nombre completamente calificado.

Habilita la federación de identidades para cargas de trabajo para GKE en un clúster registrado

La habilitación de la federación de identidades para cargas de trabajo para GKE usa la misma configuración que para registrar un clúster, con los siguientes pasos adicionales.

  1. A fin de habilitar la federación de identidades para cargas de trabajo para GKE, agrega lo siguiente en el campo spec del recurso ContainerCluster. Debes hacer esto para los clústeres nuevos y existentes.

    spec:
      workloadIdentityConfig:
        workloadPool: PROJECT_ID.svc.id.goog
    

    Reemplaza lo siguiente:

  2. Para habilitar la federación de identidades para cargas de trabajo de la flota, agrega lo siguiente en el campo spec del bloque de recursos GKEHubMembership.

    spec:
      authority:
        issuer: https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME
    }
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El proyecto predeterminado que elegiste mediante la anotación de espacio de nombres para crear el recurso del clúster de GKE.
    • LOCATION: Es la zona o región que elegiste para aprovisionar el recurso del clúster de GKE. Por ejemplo: us-central1-a.
    • CLUSTER_NAME: El nombre que elegiste para representar de forma única el clúster que creaste.

Soluciona problemas

Si tienes algún problema durante esta configuración, consulta nuestra guía de solución de problemas.

Próximos pasos