1.8.1 1.3 升级 1.8 VirtualService 支持 Delegate 切换
操作场景
1.8版本的网格默认支持VirtualService的Delegate功能,同时ASM控制台界面也仅支持 delegate格式的VirtualService,升级版本并不会对用户的VirtualService进行修改,在 升级后用户将无法在页面对路由进行维护,因此用户需要根据本文指导对应用
VirtualService进行修改。
说明
对于delegate的介绍可以参考istio社区的说明:
https://istio.io/latest/docs/reference/config/networking/virtual-service/#Delegate
约束与限制
● 只有在route和redirect为空时才能设置Delegate。
● ASM只支持一级Delegate,多级Delegate不会生效。
● Delegate VirtualService的HTTPMatchRequest必须是root virtualservice的子集,
否则会产生冲突。
● Delegate特性只对HTTP/GRPC协议有效,其他协议无需修改。
操作步骤
修改将分两种情况,下面以加入网格的tomcat服务为例。
一、若升级前服务未添加网关,则升级后进行如下修改,若升级前进行修改则 apiVersion不变:
修改apiVersion: networking.istio.io/v1alpha3为apiVersion: networking.istio.io/
v1beta1
二、若升级前服务添加了网关,则升级后进行如下修改,若升级前进行修改则 apiVersion不变:
1. 为网格所在集群配置kubectl命令,参考CCE控制台集群详情页的指导进行配置。
2. 在istio-system命名空间下创建两个virtualservice YAML文件。
文件名:tomcat-default-gateway.yaml 其中,
– tomcat:为修改的服务名
– tomcat-default-gateway:为该virtualservice名,格式为{服务名}-default-gateway
– tomcat-route:为修改virtualservice的名字 – 100.85.219.117:为ELB的IP
apiVersion: networking.istio.io/v1beta1 kind: VirtualService
metadata:
name: tomcat-default-gateway namespace: istio-system spec:
gateways:
- istio-system/tomcat-default-gateway hosts:
文件名:tomcat-route-default.yaml 其中,
– tomcat:为修改的服务名
– tomcat-route-default:为该virtualservice名,格式为{服务名}-route-default
– tomcat-route:为修改virtualservice的名字
apiVersion: networking.istio.io/v1beta1 kind: VirtualService
metadata:
name: tomcat-route-default namespace: istio-system spec:
hosts:
- tomcat.default.svc.cluster.local http:
使用如下命令创建virtualservice。
kubectl create -f tomcat-route-default.yaml kubectl create -f tomcat-default-gateway.yaml
3. kubectl n{namespace} get vs获取到服务的virtualservice,执行kubectl -n{namespace} edit vs tomcat-route修改如下:
a. 删除spec.gateways、spec.hosts和spec.http.match.uri
b. tomcat-default-gateway.istio-system.svc.cluster.local替换成istio-system/
tomcat-default-gateway
c. 修改apiVersion: networking.istio.io/v1alpha3为apiVersion:
networking.istio.io/v1beta1
d. destination.host:格式为{服务名}.{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
- istio-system/tomcat-default-gateway port: 5555
uri:
prefix: /test route:
- destination:
host: tomcat.default.svc.cluster.local port:
host: tomcat.default.svc.cluster.local port:
number: 8080 subset: v1
4. 升级完成后在服务列表页面,单击外部访问URL,检查访问是否正常。
5. 在服务网关页面,检查服务网关路由是否显示正常。
2 用户指南(2.0)
2.1 什么是应用服务网格
应用服务网格(Application Service Mesh,简称ASM)是华为云基于开源Istio推出的 服务网格平台,它深度、无缝对接了华为云的企业级Kubernetes集群服务云容器引擎
(CCE),在易用性、可靠性、可视化等方面进行了一系列增强,可为客户提供开箱即 用的上手体验。
ASM提供非侵入式的微服务治理解决方案,支持完整的生命周期管理和流量治理,兼 容Kubernetes和Istio生态,其功能包括负载均衡、熔断、限流等多种治理能力。ASM 内置金丝雀、蓝绿等多种灰度发布流程,提供一站式自动化的发布管理。ASM基于无 侵入的监控数据采集,提供实时流量拓扑、调用链等服务性能监控和运行诊断,构建 全景的服务运行视图。
更多应用服务网格ASM介绍请参见产品介绍。