Migra tu clúster de AKS

La versión predecesor de los clústeres conectados de GKE se conoce como clústeres conectados de GKE (generación anterior). Migrar desde la versión anterior de clústeres de GKE conectados a la generación actual te da acceso a esta funcionalidad, incluida la administración del ciclo de vida y el registro de flotas. La migración es una operación unidireccional: una vez que migras a la generación actual de clústeres conectados de GKE, no hay manera de volver a los clústeres conectados de GKE (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 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 el clúster a la siguiente versión secundaria antes de actualizar clústeres conectados de GKE.

Asegúrate de que Workload Identity esté habilitado.

Los clústeres existentes de los clústeres conectados de GKE (generación anterior) deben tener habilitado Workload Identity antes de migrarse a la generación actual de los clústeres conectados de GKE.

Para determinar si Wi-Fi está habilitado, ejecuta el siguiente comando y verifica el resultado de cualquier campo de Workload Identity:

gcloud container hub memberships describe MEMBERSHIP_NAME

Si Workload Identity no está habilitado, la membresía debe actualizarse para habilitarla.

El comando para actualizar la membresía de tu clúster varía un poco según si configuraste tu clúster con el emisor privado de OIDC predeterminado o el público experimental. Elige la pestaña que se aplica a tu clúster:

Emisor de OIDC privado (predeterminado)

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

Reemplaza lo siguiente:

  • MEMBERSHIP_NAME: el nombre de la membresía de tu clúster.
  • KUBECONFIG_CONTEXT: contexto en kubeconfig para acceder al clúster de AKS
  • KUBECONFIG_PATH: la ruta de acceso a tu archivo kubeconfig

Emisor público de OIDC

  • Recupera la URL del emisor de OIDC del clúster con el siguiente comando:
  az aks show -n CLUSTER_NAME \
    -g RESOURCE_GROUP \
    --query "oidcIssuerProfile.issuerUrl" -otsv

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

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

Reemplaza lo siguiente:

  • MEMBERSHIP_NAME: el nombre de la membresía de tu clúster.
  • KUBECONFIG_CONTEXT: contexto en kubeconfig para acceder al clúster de AKS
  • KUBECONFIG_PATH: la ruta de acceso a tu kubeconfig
  • OIDC_URL: la URL de OIDC que se recuperó antes

Migra tu clúster

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

  1. Extrae el contexto de 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 conectados de GKE. Este comando extrae los detalles relevantes de la configuración de tu clúster y lo registra en Google Fleet Management y, luego, instala o actualiza cualquier software necesario, como el agente de 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]
    

    Reemplaza lo siguiente:

    • GOOGLE_CLOUD_REGION: la ubicación de Google Cloud desde la que se administra tu clúster
    • FLEET_MEMBERSHIP: el designador de membresía completamente calificado de tu clúster registrado (consulta a continuación)
    • PLATFORM_VERSION: la versión de los clústeres conectados de GKE que a la que deseas migrar (por ejemplo: v1.22.0-gke.1)
    • CLUSTER_DISTRIBUTION: el tipo de clúster: eks para el servicio Elastic de Kubernetes de AWS, aks para Azure Kubernetes Service o generic para cualquier otra distribución
    • KUBECONFIG_CONTEXT: el nombre del contexto en tu kubeconfig con el que te conectarás al clúster.
    • KUBECONFIG_PATH: la ubicación del archivo kubeconfig. Si no se especifica, el valor predeterminado es ~/.kube/config.

    El nombre de la membresía es una cadena que identifica de manera inequívoca el clúster adjunto y tiene el formato projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP_ID, dónde

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

    • MEMBERSHIP_ID: este debe ser el ID de membresía de la flota de tu clúster existente. Los clústeres conectados de GKE usarán este valor como nombre del clúster.

Compatibilidad con Azure Workload Identity

Azure ofrece compatibilidad con WI en versión preliminar pública. Cuando habilitas esta función, se cambia la URL del emisor de OIDC del clúster. Si ya registraste tu clúster con una URL de OIDC anterior, no puedes actualizar a la URL nueva, ya que ese campo no se puede actualizar por el momento.

Para solucionar el problema, sigue estos pasos:

  1. Vuelve a crear el clúster con Workload Identity habilitado.
  2. Conecta tu clúster de AKS.
  3. Migra tus cargas de trabajo al clúster nuevo.
  4. Borra el clúster anterior.