Stay organized with collections
Save and categorize content based on your preferences.
In-cluster Cloud Service Mesh prerequisites
This page describes the prerequisites and the requirements for installing
in-cluster Cloud Service Mesh for Kubernetes workloads off Google Cloud, such
as GKE Enterprise licensing, cluster requirements, fleet requirements, and
general requirements.
To install Cloud Service Mesh on-premises, on GKE on AWS, on
Amazon EKS, on GKE on Azure, or on Microsoft AKS, you have to be
an GKE Enterprise customer. GKE Enterprise customers are not billed separately
for Cloud Service Mesh because it is already included in the GKE Enterprise
pricing. For more information, see the GKE Enterprise Pricing guide.
General requirements
To be included in the service mesh, service ports must be named, and the name
must include the port's protocol in the following syntax:
name: protocol[-suffix]
where the square brackets indicate an optional suffix that must start with a
dash. For more information, see
Naming service ports.
Ensure that the client machine that you install Cloud Service Mesh from has
network connectivity to the API server.
If you are deploying sidecars in application pods where direct connectivity
to CA services (such as meshca.googleapis.com and
privateca.googleapis.com) is not available, you must
configure an explicit CONNECT-based HTTPS proxy.
For public clusters with egress firewall rules set that are blocking
implied rules, ensure you have
configured HTTP/HTTPS and DNS rules to reach public Google APIs.
Fleet requirements
All clusters must be registered to a
fleet, and
fleet workload identity
must be enabled. You can either
setup up the clusters
yourself, or you can let asmcli register the clusters as long as they
meet the following requirements:
GKE clusters outside Google Cloud:
(applies to in-cluster Cloud Service Mesh)Google Distributed Cloud (software only) for VMware,
Google Distributed Cloud (software only) for bare metal,
GKE on AWS, and
GKE on Azure are
automatically registered to your project fleet at cluster creation time. As of
GKE Enterprise 1.8, all these cluster types automatically enable fleet
Workload Identity when registered. Existing registered clusters are updated
to use fleet Workload Identity when they are upgraded to GKE Enterprise 1.8.
Amazon EKS clusters: (applies to in-cluster Cloud Service Mesh) The cluster
must have a public IAM OIDC Identity Provider. Follow the instructions in
Create an IAM OIDC provider for your cluster
to check if a provider exists, and create a provider if necessary.
When you run asmcli install, you specify the project ID
of the
fleet host project.
asmcli registers the cluster if it isn't already registered.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# In-cluster Cloud Service Mesh prerequisites\n===========================================\n\n| **Note:** This guide only supports Cloud Service Mesh with Istio APIs and does not support Google Cloud APIs. For more information see, [Cloud Service Mesh overview](/service-mesh/docs/overview).\n\nThis page describes the prerequisites and the requirements for installing\nin-cluster Cloud Service Mesh for Kubernetes workloads off Google Cloud, such\nas GKE Enterprise licensing, cluster requirements, fleet requirements, and\ngeneral requirements.\n\nCloud project\n-------------\n\nBefore you begin:\n\n- [Select or create a Google Cloud project](https://console.cloud.google.com/projectselector2).\n\n- [Verify that billing is enabled](https://cloud.google.com/billing/docs/how-to/modify-project) for your project.\n\nGKE Enterprise licensing\n------------------------\n\nTo install Cloud Service Mesh on-premises, on GKE on AWS, on\nAmazon EKS, on GKE on Azure, or on Microsoft AKS, you have to be\nan GKE Enterprise customer. GKE Enterprise customers are not billed separately\nfor Cloud Service Mesh because it is already included in the GKE Enterprise\npricing. For more information, see the [GKE Enterprise Pricing guide](/kubernetes-engine/pricing).\n\nGeneral requirements\n--------------------\n\n- To be included in the service mesh, service ports must be named, and the name\n must include the port's protocol in the following syntax:\n `name: `\u003cvar translate=\"no\"\u003eprotocol\u003c/var\u003e`[-`\u003cvar translate=\"no\"\u003esuffix\u003c/var\u003e`]`\n where the square brackets indicate an optional suffix that must start with a\n dash. For more information, see\n [Naming service ports](/service-mesh/docs/naming-service-ports).\n\n- If you have created a [service perimeter](/vpc-service-controls/docs/service-perimeters)\n in your organization, you might need to add the Cloud Service Mesh certificate authority service\n to the perimeter. See\n [Adding Cloud Service Mesh certificate authority to a service perimeter](/service-mesh/docs/set-service-perimeter)\n for more information.\n\n- If you want to change the default [resource limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits)\n for the `istio-proxy` sidecar container, the new values must be greater than the\n default values to\n [avoid out-of-memory (OOM) events](/service-mesh/docs/troubleshooting/troubleshoot-sidecar-proxies).\n\n-\n A Google Cloud project can only have one mesh associated with it.\n\nCluster requirements\n--------------------\n\n- Ensure that the user cluster that you install Cloud Service Mesh on has at\n least 4 vCPUs, 15 GB memory, and 4 nodes.\n\n- Verify that your cluster version is listed in\n [Supported platforms](/service-mesh/docs/supported-platforms).\n\n- Ensure that the client machine that you install Cloud Service Mesh from has\n network connectivity to the API server.\n\n- If you are deploying sidecars in application pods where direct connectivity\n to CA services (such as `meshca.googleapis.com` and\n `privateca.googleapis.com`) is not available, you must\n [configure an explicit `CONNECT`-based HTTPS proxy](/service-mesh/docs/unified-install/options/configure-ca-through-proxy).\n\n- For public clusters with egress firewall rules set that are blocking\n [implied rules](/vpc/docs/firewalls#default_firewall_rules), ensure you have\n configured HTTP/HTTPS and DNS rules to reach public Google APIs.\n\nFleet requirements\n------------------\n\nAll clusters must be registered to a\n[fleet](/kubernetes-engine/docs/fleets-overview), and\n[fleet workload identity](/kubernetes-engine/fleet-management/docs/use-workload-identity)\nmust be enabled. You can either\n[setup up the clusters](/kubernetes-engine/fleet-management/docs/use-workload-identity#cluster_setup)\nyourself, or you can let `asmcli` register the clusters as long as they\nmeet the following requirements:\n| **Caution:** All Cloud Service Mesh clusters for one mesh must be registered to the same fleet at all times to use Cloud Service Mesh. Other clusters in the project of a Cloud Service Mesh cluster must not be registered to a different fleet.\n\n- **GKE clusters outside Google Cloud** : *(applies to in-cluster Cloud Service Mesh)* [Google Distributed Cloud (software only) for VMware](/anthos/clusters/docs/on-prem), [Google Distributed Cloud (software only) for bare metal](/kubernetes-engine/distributed-cloud/bare-metal/docs), [GKE on AWS](/anthos/clusters/docs/aws), and [GKE on Azure](/anthos/clusters/docs/multi-cloud/azure) are automatically registered to your project fleet at cluster creation time. As of GKE Enterprise 1.8, all these cluster types automatically enable fleet Workload Identity when registered. Existing registered clusters are updated to use fleet Workload Identity when they are upgraded to GKE Enterprise 1.8.\n- **Amazon EKS clusters** : *(applies to in-cluster Cloud Service Mesh)* The cluster must have a public IAM OIDC Identity Provider. Follow the instructions in [Create an IAM OIDC provider for your cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) to check if a provider exists, and create a provider if necessary.\n\nWhen you run `asmcli install`, you specify the project ID\nof the\n[fleet host project](/kubernetes-engine/fleet-management/docs/fleet-concepts#fleet-host-project).\n`asmcli` registers the cluster if it isn't already registered.\n| **Note:** If you have not registered a cluster from a project to a fleet hosted in a different project before, there are extra steps required to configure fleet permissions. For detailed instructions, see [Grant permissions for registering a cluster into a different project](/anthos/fleet-management/docs/before-you-begin#gke-cross-project).\n\nWhat's next?\n------------\n\n- [Plan a new installation](/service-mesh/docs/onboarding/kubernetes-off-gcp/install/plan-install)\n- [Plan an upgrade](/service-mesh/docs/upgrade/plan-upgrade)"]]