Conecta tu clúster que cumpla con la CNCF

Con los clústeres conectados de GKE, puedes usar tus clústeres de Kubernetes existentes (ya sea que estén alojados en AWS, Azure o en otro lugar) al panel de la edición Enterprise de Google Kubernetes Engine (GKE) para la administración central. Esto incluye la capacidad de conectar cualquier clúster de Kubernetes que cumpla con las especificaciones de CNCF.

Clústeres de Kubernetes compatibles

Puedes agregar cualquier clúster de Kubernetes que cumpla con las especificaciones con nodos x86 a tu flota y, luego, verlo en la consola de Google Cloud junto con tus clústeres de GKE.

Si bien Google no verifica todas las distribuciones de Kubernetes para garantizar la compatibilidad total de las funciones, las incompatibilidades descubiertas se documentan aquí. Para obtener más detalles y asistencia para la solución de problemas, consulta Compatibilidad para actualizar y versiones de la edición Enterprise de Google Kubernetes Engine (GKE).

Requisitos previos

Asegúrate de que tu clúster cumpla con los requisitos del clúster.

Cuando adjuntas tu clúster, debes especificar lo siguiente:

La región administrativa es una región de Google Cloud desde la que se administra tu clúster conectado. Puedes elegir cualquier región compatible, pero la práctica recomendada es elegir la región geográficamente más cercana a tu clúster. No se almacenan datos del usuario en la región administrativa.

La versión de la plataforma es la versión de los clústeres adjuntos de GKE que se instalarán en tu clúster. Puedes obtener una lista de todas las versiones compatibles si ejecutas el siguiente comando:

gcloud container attached get-server-config  \
  --location=GOOGLE_CLOUD_REGION

Reemplaza GOOGLE_CLOUD_REGION por el nombre de la ubicación de Google Cloud desde la que se administra tu clúster.

Numeración de versiones de la plataforma

En estos documentos, se hace referencia a la versión de los clústeres adjuntos de GKE como la versión de la plataforma para distinguirla de la versión de Kubernetes. Los clústeres adjuntos de GKE usan la misma convención de numeración de versiones que GKE, por ejemplo, 1.21.5-gke.1. Cuando adjuntas o actualizas tu clúster, debes elegir una versión de plataforma cuya versión secundaria sea igual o un nivel inferior a la versión de Kubernetes de tu clúster. Por ejemplo, puedes conectar un clúster que ejecute Kubernetes v1.22.* con la versión 1.21.* o 1.22.* de la plataforma de clústeres conectados de GKE.

Esto te permite actualizar tu clúster a la siguiente versión secundaria antes de actualizar los clústeres conectados de GKE.

Conecta tu clúster

Para conectar tu clúster que cumple con la CNCF a la Administración de flotas de Google Cloud, ejecuta los siguientes comandos:

  1. Asegúrate de que tu archivo kubeconfig tenga una entrada para el clúster que deseas adjuntar. Las instrucciones específicas varían según la distribución.

  2. Ejecuta este comando para extraer el contexto de kubeconfig de tu clúster y almacenarlo en la variable de entorno KUBECONFIG_CONTEXT:

    KUBECONFIG_CONTEXT=$(kubectl config current-context)
    
  3. El comando para registrar tu clúster varía un poco en función de si tu clúster tiene una entidad emisora de OIDC pública o privada. Elige la pestaña que se aplica a tu clúster:

    Entidad emisora de OIDC privada

    Usa el comando gcloud container attached clusters register para registrar el clúster:

    gcloud container attached clusters register CLUSTER_NAME \
      --location=GOOGLE_CLOUD_REGION \
      --fleet-project=PROJECT_NUMBER \
      --platform-version=PLATFORM_VERSION \
      --distribution=generic \
      --context=KUBECONFIG_CONTEXT \
      --has-private-issuer \
      --kubeconfig=KUBECONFIG_PATH
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: es el nombre de tu clúster.
    • GOOGLE_CLOUD_REGION: es la región de Google Cloud desde la que se administra tu clúster.
    • PROJECT_NUMBER: es el proyecto host de la flota con el que se registrará el clúster.
    • PLATFORM_VERSION: es la versión de la plataforma que se usará para el clúster.
    • KUBECONFIG_CONTEXT: es el contexto en el kubeconfig para acceder al clúster.
    • KUBECONFIG_PATH: es la ruta de acceso a tu kubeconfig.

    Entidad emisora de OIDC pública

    1. Recupera la URL de la entidad emisora de OIDC del clúster y guárdala para usarla más adelante. Las instrucciones específicas varían según la distribución.

    2. Ejecuta este comando para extraer el contexto de kubeconfig de tu clúster y almacenarlo en la variable de entorno KUBECONFIG_CONTEXT:

      KUBECONFIG_CONTEXT=$(kubectl config current-context)
      
    3. Usa el comando gcloud container attached clusters register para registrar el clúster:

      gcloud container attached clusters register CLUSTER_NAME \
        --location=GOOGLE_CLOUD_REGION \
        --fleet-project=PROJECT_NUMBER \
        --platform-version=PLATFORM_VERSION \
        --distribution=generic \
        --issuer-url=ISSUER_URL \
        --context=KUBECONFIG_CONTEXT \
        --kubeconfig=KUBECONFIG_PATH
      

      Reemplaza lo siguiente:

      • CLUSTER_NAME: es el nombre de tu clúster.
      • GOOGLE_CLOUD_REGION: es la región de Google Cloud para administrar tu clúster.
      • PROJECT_NUMBER: es el proyecto host de la flota en el que se registrará el clúster.
      • PLATFORM_VERSION: es la versión de los clústeres conectados de GKE que se usarán para el clúster.
      • ISSUER_URL: es la URL de la entidad emisora que se recuperó antes.
      • KUBECONFIG_CONTEXT: es el contexto en el kubeconfig para acceder a tu clúster, como se extrajo antes.
      • KUBECONFIG_PATH: es la ruta de acceso a tu kubeconfig.

Autoriza Cloud Logging/Cloud Monitoring

Para que los clústeres adjuntos de GKE creen y suban registros y métricas del sistema a Google Cloud, debe tener autorización.

Para autorizar la identidad de carga de trabajo de Kubernetes gke-system/gke-telemetry-agent a fin de escribir registros en Google Cloud Logging y métricas en Google Cloud Monitoring, ejecuta este comando:

gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
  --member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
  --role=roles/gkemulticloud.telemetryWriter

Reemplaza GOOGLE_PROJECT_ID por el ID del proyecto de Google Cloud del clúster.

Esta vinculación de IAM otorga acceso a todos los clústeres del proyecto de Google Cloud para subir registros y métricas. Solo necesitas ejecutarlo después de crear tu primer clúster para el proyecto.

Nota: Agregar esta vinculación de IAM fallará, salvo que se cree al menos un clúster en tu proyecto de Google Cloud. Esto se debe a que el grupo de identidades para cargas de trabajo al que hace referencia (GOOGLE_PROJECT_ID.svc.id.goog) no se aprovisiona hasta que se crea el clúster.