Habilita e inhabilita el controlador del servicio canónico

Nota: Los servicios canónicos son compatibles de forma automática en Cloud Service Mesh versión 1.6.8 y versiones posteriores.

Cuando instalas o actualizas Cloud Service Mesh con asmcli, se implementa el controlador de servicios canónicos en tu clúster. El controlador del servicio canónico agrupa las cargas de trabajo que pertenecen al mismo servicio lógico y es necesario para la funcionalidad completa del panel de servicios en la consola de Google Cloud. Implementar el controlador crea la implementación canonical-service-controller-manager en tu clúster en el espacio de nombres asm-system y no afecta tus servicios ni cargas de trabajo.

Si no usaste la herramienta asmcli para instalar Cloud Service Mesh, es posible que no tengas habilitado el controlador del servicio canónico en tu clúster. Para determinar si el controlador del servicio canónico está habilitado en tu clúster, haz lo siguiente:

kubectl get services -n asm-system

Habilita el controlador del servicio canónico en el clúster

Si el controlador del servicio canónico no está habilitado, puedes habilitarlo si realizas los siguientes pasos:

  1. Descarga el paquete kpt que contiene el controlador en el directorio de trabajo actual:

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.18 asm
    
  2. Aplica la configuración del controlador:

        kubectl apply -f asm/canonical-service/controller.yaml
    

Inhabilita el controlador del servicio canónico en el clúster

Si quieres inhabilitar el controlador del servicio canónico, haz lo siguiente:

  1. Descarga el paquete kpt que contiene el controlador en el directorio de trabajo actual:

    kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.18 asm
    
  2. Borra el controlador de tu clúster:

    kubectl delete -f asm/canonical-service/controller.yaml
    

Habilita el controlador del servicio canónico administrado

Si prefieres no instalar el controlador en el clúster, puedes habilitar el controlador de servicio canónico administrado, que realiza la misma función para todos los clústeres registrados en tu malla sin necesidad de instalar o administrar el controlador tú mismo.

El controlador administrado está diseñado para funcionar con el controlador en el clúster. Si migras desde el controlador dentro del clúster, debes borrar el controlador dentro de cada clúster en el que se ejecuta para que el controlador administrado tome el control. Para obtener más información, consulta Inhabilita el controlador del servicio canónico en el clúster.

Para habilitar el controlador administrado, haz lo siguiente:

Página de funciones de Anthos

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

    Ve a la página de clústeres de GKE Enterprise

  2. “Registra” todos los clústeres en la malla.

  3. En la consola de Google Cloud, ve a la página Funciones de GKE Enterprise.

    Ve a la página Funciones de GKE Enterprise

  4. Haz clic en Habilitar junto a la función “Malla de servicios”.

Después de unos minutos, el controlador administrado se activa y crea servicios canónicos para las cargas de trabajo que se ejecutan en los clústeres registrados en tu malla. Ejecuta kubectl get canonicalservices --all-namespaces a fin de confirmar que se crearon algunos servicios canónicos para las cargas de trabajo en la malla.

Creación del clúster de GKE

Si usaste la opción Habilitar Cloud Service Mesh cuando creaste un clúster de GKE nuevo, se instaló el controlador de servicio canónico administrado de forma predeterminada.

Asegúrate de ejecutar el controlador del servicio canónico administrado mediante el siguiente comando:

gcloud beta container hub mesh describe --project=PROJECT_ID

La descripción indica que los servicios canónicos se concilian de forma correcta:

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: asm-managed.
      All Canonical Services have been reconciled successfully.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:10:36.289467777Z'

Si los servicios canónicos no se concilian de forma correcta, aparecerá un mensaje de error o un resultado similar al mensaje siguiente:

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: istiod-asm-173-6.
      The Managed Canonical Service Controller is yielding to the in-cluster controller.  See https://cloud.google.com/service-mesh/v1.18/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:05:43.286828851Z'
  lifecycleState: ENABLED

Instalación de plano de control administrado

Si instalaste Cloud Service Mesh administrado (con la API de Fleet o asmcli), el controlador de servicios canónicos administrado se instaló de forma predeterminada.

Asegúrate de ejecutar el controlador del servicio canónico administrado mediante el siguiente comando:

gcloud beta container hub mesh describe --project=PROJECT_ID

La descripción indica que los servicios canónicos se concilian de forma correcta:

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: asm-managed.
      All Canonical Services have been reconciled successfully.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:10:36.289467777Z'

Si los servicios canónicos no se concilian de forma correcta, aparecerá un mensaje de error o un resultado similar al mensaje siguiente:

  projects/<your project number>/locations/global/memberships/<your cluster name>:
    code: OK
    description: |-
      Revision(s) ready for use: istiod-asm-173-6.
      The Managed Canonical Service Controller is yielding to the in-cluster controller.  See https://cloud.google.com/service-mesh/v1.18/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller.
    servicemeshFeatureState: {}
    updateTime: '2021-11-16T21:05:43.286828851Z'
  lifecycleState: ENABLED

¿Qué sigue?

Obtén más información acerca de los siguientes temas: