在前面的实验中,服务部署完成之后,可以单独访问service-js服务的前端静态页面,也可以单独访问service-python实现的API接口,但是仍然不能实现两者相互配合调用,展现整个服务调用链情况。本节会体验一下Istio的简单路由功能,并了解整个微服务的调用流程
1)在default命令空间开启自动注入功能
kubectl label namespace default istio-injection=enabled
2)部署服务
kubectl apply -f service/go/service-go.yaml
kubectl apply -f service/node/service-node.yaml
kubectl apply -f service/lua/service-lua.yaml
kubectl apply -f service/python/service-python.yaml
kubectl apply -f service/js/service-js.yaml
3)查看服务部署状态
kubectl get pod
4)应用路由规则,将service-js服务的流量全部导入v1版本
kubectl apply -f istio/route/gateway-js-v1.yaml
5)在浏览器中访问测试
6)应用路由规则,将流量全部导入service-js的v2版本
kubectl delete -f istio/route/gateway-js-v1.yaml
kubectl apply -f istio/route/gateway-js-v2.yaml
gateway.networking.istio.io/istio-lab-gateway created
destinationrule.networking.istio.io/service-js created
virtualservice.networking.istio.io/istio-lab created
7)在浏览器中访问测试 此时通过刷新浏览器,点击“发射”按钮,应该看到Vue版本的服务调用图
8)清理
kubectl label namespace default istio-injection-
kubectl delete -f istio/route/gateway-js-v2.yaml
kubectl delete -f service/go/service-go.yaml
kubectl delete -f service/node/service-node.yaml
kubectl delete -f service/lua/service-lua.yaml
kubectl delete -f service/python/service-python.yaml
kubectl delete -f service/js/service-js.yaml