Deploy Istio Resources in a Hosted Mesh Worker Cluster Based on GitOps¶
Scenario: How can customers deploy Istio-related resources in a Hosted Mesh worker cluster using GitOps?
Prerequisites¶
- Prepare the workbench and service mesh, with the service mesh version being v0.26.0 or above.
- Prepare a worker cluster.
Create a Hosted Mesh and Manage the Worker Cluster¶
Steps¶
-
Click Service Mesh and refer to Create a Hosted Mesh.
-
Select Load Balancer as the Entry of Control Plane, and keep other settings as default.

-
After creating the hosted mesh, manage the worker cluster into it by referring to Add a Cluster.

Notes¶
When deploying Istio-related resources directly to a worker cluster under a hosted mesh based on GitOps, the resources in the worker cluster need to be deployed to the hosted mesh to take effect. You need to conduct the following operations:
-
In the Global Management cluster, find the CRD resource
globalmeshes.discovery.mspider.ioin themspider-systemnamespace, edit the YAML resource with the same name as the hosted mesh, and modify it as follows:# 1. Add under controlPlaneParams enabled_resources_synchronizer: true # Enable resource synchronization for the worker cluster sync_resource_worker_cluster: "zcl-98" # Choose the name of the worker cluster to monitor and synchronize # 2. Add at the same level as controlPlaneParams controlPlaneParamsStruct: global: sync_istio_resources: - group: networking.istio.io kind: VirtualService resource: virtualservices version: v1beta1 - group: networking.istio.io kind: DestinationRule resource: destinationrules version: v1beta1 - group: networking.istio.io kind: Gateway resource: gateways version: v1alpha3 -
If the current
Service Meshversion is v0.26.0, additional operations are required to properly synchronizegatewayresources.- In the Global Management cluster, edit the YAML of the ConfigMap named
mspider-mcpcin themspider-systemnamespace:
# Add the following information sync_istio_resources: - group: networking.istio.io kind: VirtualService resource: virtualservices version: v1beta1 - group: networking.istio.io kind: DestinationRule resource: destinationrules version: v1beta1 - group: networking.istio.io kind: Gateway resource: gateways version: v1alpha3- In the Global Management cluster, edit the YAML of the ConfigMap named
mspider-mcpc-ckube-remotein themspider-systemnamespace:
# Add the following information { "group": "networking.istio.io", "version": "v1alpha3", "resource": "gateways", "list_kind": "GatewayList", "index": { "namespace": "{.metadata.namespace}", "name": "{.metadata.name}", "labels": "{{- range $key, $value := .metadata.labels }}{{- print $key \"=\" $value | quote }},{{- end -}}", "createdAt": "{.metadata.creationTimestamp}", "port": "{.spec.servers[*].port}", "hosts": "{.spec.servers[*].hosts}" } },Note
Service Mesh versions below v0.26.0 do not support this capability. Versions above v0.26.0 do not require this step.
- In the Global Management cluster, edit the YAML of the ConfigMap named
-
Go to the host cluster of the hosted mesh, in the
istio-systemnamespace -> Deployments, and restart the resource mspider-mcpc-mcpc-controller
Deploy Application Resources Based on GitOps and Verify¶
Introduction¶
Demonstration example repository: https://github.com/amamba-io/rollout-examples
The dubbo3-consumer and dubbo3-provider services are related. When accessing the /hello interface of dubbo3-consumer, dubbo3-consumer will forward the request to dubbo3-provider.
Steps¶
-
Create Application in
GitOps, with the repository address:https://github.com/amamba-io/rollout-examples. Path should be set torollouts/v1, and select the namespace in the worker cluster. -
After creating application, manually synchronize the application resources.
-
Go to the service mesh and check the vs, dr, and gateway resources synchronized in the worker cluster under the hosted mesh. If not found, check if the notes in the Create a Hosted Mesh and Manage the Worker Cluster section are configured correctly.
-
By default, the load balancer of the worker cluster exposes port
80, so you need to modify the gateway port of the service to 80 in the worker cluster to access the service. -
Access
http://<worker cluster node IP>/hello?name=test-v1in the browser. Successful access indicates that the Istio-related resources are effective.