Migrar un clúster conforme a la CNCF

La versión anterior de los clústeres de GKE adjuntos se conoce como clústeres de GKE adjuntos (generación anterior). Si migras de la versión anterior de los clústeres adjuntos de GKE a la generación actual, podrás acceder a esta función, incluida la gestión del ciclo de vida y el registro de flotas. La migración es una operación unidireccional: una vez que hayas migrado a la generación actual de clústeres adjuntos de GKE, no podrás volver a la generación anterior.

Política de numeración de versiones

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 asocies o actualices 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 adjuntar un clúster que ejecute Kubernetes v1.22.* con la versión de plataforma 1.21.* o 1.22.* de clústeres adjuntos de GKE.

De esta forma, puedes actualizar tu clúster a la siguiente versión secundaria antes de actualizar los clústeres adjuntos de GKE.

Comprobar que Workload Identity esté habilitado

Los clústeres de GKE adjuntos (generación anterior) deben tener habilitada la identidad de carga de trabajo antes de migrarse a la generación actual de clústeres de GKE adjuntos.

Para determinar si WI está habilitado, ejecuta el siguiente comando y comprueba si hay algún campo de Workload Identity en el resultado:

gcloud container hub memberships describe MEMBERSHIP_NAME

Si Workload Identity no está habilitado, la pertenencia debe actualizarse para habilitarlo.

El comando para actualizar la pertenencia a tu clúster varía ligeramente en función de si el clúster tiene un emisor de OIDC público o privado. Elige la pestaña que se aplique a tu clúster:

Emisor de OIDC privado

gcloud container hub memberships register MEMBERSHIP_NAME \
--context=KUBECONFIG_CONTEXT \
--kubeconfig=KUBECONFIG_PATH \
--enable-workload-identity \
--has-private-issuer

Sustituye:

  • MEMBERSHIP_NAME: el nombre de la pertenencia de tu clúster
  • KUBECONFIG_CONTEXT: contexto de kubeconfig para acceder al clúster de AKS
  • KUBECONFIG_PATH: ruta a tu archivo kubeconfig

Entidad emisora de OIDC pública

  • Obtén la URL del emisor de OIDC de tu clúster. Las instrucciones específicas varían según la distribución.

El resultado de este comando será la URL de tu emisor de OIDC. Guarda este valor para usarlo más adelante.

  • Actualiza la suscripción:
gcloud container fleet memberships register MEMBERSHIP_NAME \
--context=KUBECONFIG_CONTEXT \
--kubeconfig=KUBECONFIG_PATH \
--enable-workload-identity \
--public-issuer-url=OIDC_URL

Sustituye:

  • MEMBERSHIP_NAME: el nombre de la pertenencia de tu clúster
  • KUBECONFIG_CONTEXT: contexto de kubeconfig para acceder al clúster de AKS
  • KUBECONFIG_PATH: ruta a tu kubeconfig
  • OIDC_URL: la URL de OIDC obtenida anteriormente

Migrar un clúster

Para migrar tu clúster de clústeres de GKE adjuntos (generación anterior) a clústeres de GKE adjuntos, sigue estos pasos:

  1. Extrae el contexto kubeconfig de tu clúster y almacénalo en la variable de entorno KUBECONFIG_CONTEXT:

    KUBECONFIG_CONTEXT=$(kubectl config current-context)
    
  2. Ejecuta el siguiente comando para migrar tu clúster a la generación actual de clústeres adjuntos de GKE. Este comando extrae los detalles relevantes de la configuración de tu clúster y registra tu clúster en Google Fleet Management, además de instalar o actualizar el software necesario, como el agente del ciclo de vida, en tu clúster.

    gcloud container attached clusters import \
      --location=GOOGLE_CLOUD_REGION \
      --fleet-membership=FLEET_MEMBERSHIP \
      --platform-version=PLATFORM_VERSION \
      --distribution=CLUSTER_DISTRIBUTION \
      --context=KUBECONFIG_CONTEXT \
      [--kubeconfig=KUBECONFIG_PATH]
    

    Sustituye:

    • GOOGLE_CLOUD_REGION: la Google Cloud ubicación desde la que se administra tu clúster
    • FLEET_MEMBERSHIP: el designador de pertenencia completo de tu clúster registrado (consulta la información que aparece más abajo).
    • PLATFORM_VERSION: la versión de los clústeres de GKE adjuntos a la que quieres migrar (por ejemplo, v1.22.0-gke.1).
    • CLUSTER_DISTRIBUTION: el tipo de clúster: eks para Elastic Kubernetes Service de AWS, aks para Azure Kubernetes Service o generic para cualquier otra distribución.
    • KUBECONFIG_CONTEXT: el nombre del contexto de tu kubeconfig para conectarte a tu clúster.
    • KUBECONFIG_PATH: la ubicación del archivo kubeconfig. Si no se especifica, el valor predeterminado es ~/.kube/config.

    El designador de pertenencia es una cadena que identifica de forma única el clúster adjunto y tiene el formato projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP_ID, donde

    • PROJECT_NUMBER es el número de tu proyecto host de flota. Debes especificar el mismo número de proyecto al que pertenece tu clúster

    • MEMBERSHIP_ID: debe ser el ID de miembro de la flota de tu clúster. Los clústeres adjuntos de GKE usarán este valor como nombre de clúster.