通过bookinfo的例子,可以体验istio的流量管理过程
参考来自istio/example
平台选择k8s,并且已安装istio
总共有4个微服务:
- productpage
- details
- reviews
- ratings
其中reviews又存在3个版本
- version v1
- version v2
- version v3
bookinfo.yml描述了bookinfo应用的deployment和service,就是简单的k8s对象,没有任何istio相关的东西
首先,在命名空间default(为了方便)开启sidecar自动注入
kubectl label namespace default istio-injection=enabled
kubectl get namespace -L istio-injection
接下来,部署应用bookinfo
kubectl apply -f bookinfo.yml
再接下来,为了能访问到bookinfo,即用户可以通过"ingres"进入到网格中,我们需要创建一个gateway
kubectl apply -f bookinfo-gateway.yml
至此,应用部署完成
首先,获取gateway的external IP
kubectl get svc istio-ingressgateway -n istio-system
# 显示
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-ingressgateway LoadBalancer 10.39.245.229 35.221.131.137 80:31380/TCP,443:31390/TCP,31400:31400/TCP,15011:31314/TCP,8060:30706/TCP,853:30684/TCP,15030:32002/TCP,15031:32463/TCP 14d
接下来,浏览器输入http://EXTERNAL-IP/productpage访问即可
- static-routing
- dynamic-routing
- fault-injection
- weight-based
- policy
