Habilitar e inhabilitar el controlador del servicio canónico

Nota: Los servicios canónicos se admiten automáticamente en Cloud Service Mesh versión 1.6.8 y posteriores.

Cuando instalas o actualizas Cloud Service Mesh con asmcli, se implementa el controlador del servicio canónico 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 que el panel de servicios de la consola de Google Cloud funcione correctamente. Al desplegar el controlador, se crea el despliegue canonical-service-controller-manager en tu clúster en el espacio de nombres asm-system, y no afecta a tus servicios ni cargas de trabajo.

Si no has usado 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

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

Si el controlador del servicio canónico no está habilitado, puedes habilitarlo siguiendo estos 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.22 asm
    
  2. Aplica la configuración del controlador:

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

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

Si quieres inhabilitar el controlador del servicio canónico, sigue estos 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.22 asm
    
  2. Elimina el controlador de tu clúster:

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

Habilitar el controlador del servicio canónico gestionado

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

El controlador gestionado está diseñado para ceder el control al controlador del clúster. Si vas a migrar desde el controlador en el clúster, debes eliminarlo de cada clúster en el que se esté ejecutando para que el controlador gestionado tome el control. Para obtener más información, consulta Inhabilitar el controlador de servicio canónico en el clúster.

Para habilitar el controlador gestionado, sigue estos pasos:

Creación de clústeres de GKE

Si has usado la opción Habilitar Cloud Service Mesh al crear un clúster de GKE, el controlador del servicio canónico gestionado se habrá instalado de forma predeterminada.

Asegúrate de que estás ejecutando el controlador del servicio canónico gestionado con el siguiente comando:

gcloud beta container hub mesh describe --project=PROJECT_ID

En la descripción se indica que los servicios canónicos se han conciliado correctamente:

  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 reconcilian correctamente, se mostrará un mensaje de error o un resultado similar al 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.22/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 del plano de control gestionado

Si has instalado Cloud Service Mesh gestionado (con la API Fleet o con asmcli), el controlador de servicio canónico gestionado se habrá instalado de forma predeterminada.

Asegúrate de que estás ejecutando el controlador del servicio canónico gestionado con el siguiente comando:

gcloud beta container hub mesh describe --project=PROJECT_ID

En la descripción se indica que los servicios canónicos se han conciliado correctamente:

  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 reconcilian correctamente, se mostrará un mensaje de error o un resultado similar al 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.22/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

Siguientes pasos

Puedes informarte sobre lo siguiente: