Creating a Service Mesh
This document explains how to create a single-cluster service mesh. Before proceeding, please ensure you are familiar with the following topics:
- Mesh Deployment Models: Select the mesh deployment model that suits your needs.
- Mesh Component Descriptions: Understand the roles of mesh components and prepare the necessary CPU and memory resources for the service mesh.
For instructions on creating a multi-cluster service mesh, please refer to the Multi-Cluster Service Mesh documentation.
TOC
Constraints and Limitations
- Only one service mesh is allowed per cluster.
- When the cluster is a global cluster and the platform is in a disaster recovery environment (i.e., the global has a primary cluster and a disaster recovery cluster), the global cluster cannot deploy a service mesh.
- When the cluster is an IPv4/IPv6 dual-stack network, a service mesh cannot be deployed.
Prerequisites
-
The Alauda Service Mesh Essentials Cluster Plugin has been installed.
-
Download the following installation package corresponding to your platform architecture, and use the Upload Packages mechanism to upload the package to the global cluster and the target cluster (please do not install them manually).
Alauda Service MeshOperatorFlaggerOperatorAlauda Build of JaegerOperatorAlauda Build of OpenTelemetryOperator
-
Ensure that the cluster has deployed the Prometheus plugin or VictoriaMetrics plugin.
Note: When VictoriaMetrics is a multi-cluster deployment architecture,
vmstoragecan be in a different cluster from the service mesh. -
Ensure there is an available Elasticsearch. The service mesh can interface with the cluster's Elasticsearch logging plugin or your own Elasticsearch.
-
When the cluster is an OpenShift cluster, the following prerequisites must also be met:
- The namespace
istio-systemhas been created. - Add the
istio-systemnamespace to theanyuidSCC (Security Context Constraints) group. To do this, log in to the OpenShift cluster's bastion host and execute the command:
- The namespace
Steps
- In the left navigation bar, click Service Mesh > Mesh.
- Click Create Service Mesh.
- Select the cluster and Istio version to deploy the service mesh. In the advanced configuration, ensure the mesh architecture is single-cluster and fill in the interface parameters for Elasticsearch and the monitoring system. You can choose the platform's existing system or an external system.
- If high availability is strictly required, set Pod anti-affinity to mandatory.
- Component resources can use default values, but as the scale of services in the mesh grows, the components will need to scale up. Configure alert policies for the mesh components in time to be informed when scaling is needed.
For more information, please see Mesh Parameter Description
Note: When the cluster is an OpenShift cluster, the mesh will automatically detect and deploy the istio-cni component by default.
Next Steps
- Enable Istio CNI to eliminate the need for privileged init containers in each Pod.
- Enable Global Rate Limiting.
- Use the Istioctl Tool.
- Monitor Mesh Components.
Mesh Parameter Description
Global Configuration
The global configuration of the mesh will be applied to all clusters where the mesh is deployed.
Cluster Dimension Configuration
The cluster dimension configuration applies only to the selected cluster.
Component Configuration
Note: Mesh components are deployed in specific namespaces of the cluster in the form of Deployments. After the mesh is successfully created, you can view the running status of the components in the Components tab, or click the Component Name to go to the namespace where the component is deployed on the Container Platform and view the detailed information of the running component's Deployment.