- What's New
- Product Bulletin
- Service Overview
- Billing
- Getting Started
-
User Guide
- Application Service Mesh
- Buying a Service Mesh
- Mesh Management
- Service Management
- Gateway Management
- Grayscale Release
- Mesh Configuration
- Traffic Management
- Security
-
Best Practices
- Upgrading Data Plane Sidecars Without Service Interruption
- Service Governance for Dubbo-based Applications
- Reserving Source IP Address for Gateway Access
- Creating a Service Mesh with IPv4/IPv6 Dual Stack Enabled
- How Do I Query Application Metrics in AOM?
- Reducing the Agency Permissions of ASM Users
- Istio-ingressgateway HA Configuration
-
FAQs
- Service Mesh Cluster
-
Mesh Management
- Why Cannot I Create a Mesh for My Cluster?
- Why Are Exclusive Nodes Still Exist After Istio Is Uninstalled?
- How Do I Upgrade ICAgent?
- How Do I Enable Namespace Injection for a Cluster?
- How Do I Disable Sidecar Injection for Workloads?
- What Can I Do If A Pod Cannot Be Started Due to Unready Sidecar
- How Do I Handle a Canary Upgrade Failure?
-
Adding a Service
- What Do I Do If an Added Gateway Does Not Take Effect?
- Why Does It Take a Long Time to Start the Demo Application in Experiencing Service Mesh in One Click?
- Why Cannot I Access the page of the Demo Application After It Is Successfully Deployed?
- Why Cannot I Select the Corresponding Service When Adding a Route?
- How Do I Inject a Sidecar for the Pod Created Using a Job or CronJob?
- Performing Grayscale Release
-
Managing Traffic
- Why Are the Created Clusters, Namespaces, and Applications Not Displayed on the Traffic Management Page?
- How Do I Change the Resource Requests of the istio-proxy Container?
- Does ASM Support HTTP/1.0?
- How Can I Block Access from Some IP Address Ranges or Ports for a Service Mesh?
- How Do I Configure max_concurrent_streams for a Gateway?
- How Do I Fix Compatibility Issues Between Istio CNI and Init Containers?
-
Monitoring Traffic
- Why Cannot I View Traffic Monitoring Data Immediately After a Pod Is Started?
- Why Are the Latency Statistics on the Dashboard Page Inaccurate?
- Why Is the Traffic Ratio Inconsistent with That in the Traffic Monitoring Chart?
- Why Can't I Find Certain Error Requests in Tracing?
- Why Cannot I Find My Service in the Traffic Monitoring Topology?
- How Do I Connect a Service Mesh to Jaeger or Zipkin for Viewing Traces?
- Videos
-
More Documents
-
User Guide (ME-Abu Dhabi Region)
- Service Overview
- Getting Started
- User Guide
-
FAQs
- Service Mesh Cluster
- Mesh Management
-
Adding a Service
- What Do I Do If an Added Gateway Does Not Take Effect?
- Why Does It Take a Long Time to Start the Demo Application in Experiencing Service Mesh in One Click?
- Why Cannot I Access the page of the Demo Application After It Is Successfully Deployed?
- Why Cannot I Select the Corresponding Service When Adding a Route?
- Performing Grayscale Release
-
User Guide (ME-Abu Dhabi Region)
- General Reference
Show all
Copied.
Upgrading v1.3 to v1.8 to Allow VirtualService to Support Delegate Switchover
Scenarios
By default, the mesh of v1.8 supports the Delegate function of VirtualService, and the ASM console supports only the VirtualService in Delegate format. The upgrade does not modify your VirtualService, but you cannot maintain the route on the page after the upgrade. Therefore, you need to modify your VirtualService according to this section.
For details about Delegate, see the description in the Istio community.
https://istio.io/latest/docs/reference/config/networking/virtual-service/#Delegate
Constraints
- Delegate can be set only when route and redirect are left blank.
- ASM supports only 1-level Delegate. Multi-level Delegate does not take effect.
- HTTPMatchRequest of Delegate VirtualService must be a subset of root VirtualService.
- The Delegate feature is valid only for HTTP and gRPC protocols.
Procedure
The modification involves two scenarios. The following uses the Tomcat service added to a mesh as an example.
Scenario 1: If no gateway is added to the service before the upgrade, you can skip the following operations after the upgrade.
Scenario 2: If a gateway is added to the service before the upgrade, perform the following operations after the upgrade.
- Configure the kubectl command for the cluster where the mesh is located. For details, see the cluster details on the CCE console.
- Create two VirtualService YAML files in the istio-system namespace.
File name: tomcat-default-gateway.yaml
To be more specific:
- tomcat: name of the service to be modified.
- tomcat-default-gateway: name of the VirtualService. The format is {Service name}-default-gateway.
- tomcat-route: name of the VirtualService to be modified.
- 100.85.219.117: ELB IP address.
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: tomcat-default-gateway namespace: istio-system spec: gateways: - istio-system/tomcat-default-gateway hosts: - 100.85.219.117 http: - delegate: name: tomcat-route namespace: default match: - uri: prefix: /test
File name: tomcat-route-default.yaml
To be more specific:
- tomcat: name of the service to be modified.
- tomcat-route-default: name of the VirtualService. The format is {Service name}-route-default.
- tomcat-route: name of the VirtualService to be modified.
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: tomcat-route-default namespace: istio-system spec: hosts: - tomcat.default.svc.cluster.local http: - delegate: name: tomcat-route namespace: default match: - uri: prefix: /
Run the following commands to create a VirtualService:
kubectl create -f tomcat-route-default.yaml
kubectl create -f tomcat-default-gateway.yaml
- Run the kubectl -n{namespace} get vs command to obtain the VirtualService of the service and run the kubectl -n{namespace} edit vs tomcat-route command to modify it as follows:
- Delete spec.gateways, spec.hosts, and spec.http.match.uri.
- Replace tomcat-default-gateway.istio-system.svc.cluster.local with istio-system/tomcat-default-gateway.
- Change apiVersion: networking.istio.io/v1alpha3 to apiVersion: networking.istio.io/v1beta1.
- destination.host: The format is {Service name}.{namespace}.svc.cluster.local.
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: tomcat-route namespace: default spec: gateways: - tomcat-default-gateway.istio-system.svc.cluster.local - mesh hosts: - tomcat - 100.85.219.117 # spec.gateways and spec.hosts need to be deleted. http: - match: - gateways: - istio-system/tomcat-default-gateway port: 5555 uri: prefix: /test # spec.http.match.uri needs to be deleted. route: - destination: host: tomcat.default.svc.cluster.local port: number: 8080 subset: v1 - match: - gateways: - mesh port: 8080 route: - destination: host: tomcat.default.svc.cluster.local port: number: 8080 subset: v1
- Click External Access URL on the service list page to check whether it can be accessed normally.
- On the Service Gateway page, check whether the service gateway route is displayed properly.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot