• 沒有找到結果。

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介绍请参见产品介绍。

相關文件