Note: Canonical Services are supported automatically in Anthos Service Mesh version 1.6.8 and higher.
When you install or upgrade Anthos Service Mesh using the
asmcli
, it deploys
the
Canonical Service controller
to your cluster. The Canonical Service controller groups workloads belonging to
the same logical service, and it is required for the full functionality of
the Services dashboard in the Google Cloud console. Deploying the controller
creates the canonical-service-controller-manager
Deployment in your cluster in
the asm-system
namespace, and does not affect your services or workloads.
If you didn't use the asmcli
to install Anthos Service Mesh, you
might not have the Canonical Service controller enabled on your cluster. To
determine if the Canonical Service controller is enabled on your cluster:
kubectl get services -n asm-system
Enable the in-cluster Canonical Service controller
If the Canonical Service controller isn't enabled, you can enable it with the following steps:
Download the
kpt
package that contains the controller to the current working directory:kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.11 asm
Apply the controller configuration:
kubectl apply -f asm/canonical-service/controller.yaml
Disable the in-cluster Canonical Service controller
If you want to disable the Canonical Service controller:
Download the kpt package that contains the controller to the current working directory:
kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.11 asm
Delete the controller from your cluster:
kubectl delete -f asm/canonical-service/controller.yaml
Enable the Managed Canonical Service Controller (Preview)
If you would prefer not to install the in-cluster controller, you can instead enable the Managed Canonical Service Controller, which performs the same function for all the registered clusters in your mesh without the need to install or manage the controller yourself. To enable the Managed controller:
In the Google Cloud console, go to the GKE Enterprise Clusters page.
"Register" all the clusters in your mesh.
In the Google Cloud console, go to the GKE Enterprise Features page.
Click Enable next to the "Service Mesh" feature
After a few minutes, the Managed controller activates and creates Canonical
Services for the registered clusters in your mesh. To confirm it is working
run kubectl get canonicalservices --all-namespaces
and confirm that some
Canonical Services have been created for the workloads in your mesh.
What's next
Learn about:
- Canonical Services
- Best practices in Canonical Services
- Defining a Canonical Service
- Resolving Canonical Service issues