本章介绍一些Istio提供的其他功能,主要包括:使用CORS来解决跨域问题,如何进行URL重定向和重写,TCP路由和TLS路由的配置。还介绍了在Istio集群中的服务健康检查问题,以及生产环境中如何暴露ingressgateway。最后介绍了Mixer与Adapter模型,这对理解前面章节实验中使用到的yaml配置文件会有很大的帮助。
【实验前的准备】
进行本章实验前,需要先执行如下的前置步骤。
1)下载实验时用到的源码仓库:
$ sudo yum install -y git $ git clone https://github.com/mgxian/istio-lab Cloning into 'istio-lab'... remote: Enumerating objects: 252, done. remote: Counting objects: 100% (252/252), done. remote: Compressing objects: 100% (177/177), done. remote: Total 779 (delta 157), reused 166 (delta 74), pack-reused 527 Receiving objects: 100% (779/779), 283.37 KiB | 243.00 KiB/s, done. Resolving deltas: 100% (451/451), done. $ cd istio-lab
2)开启default命名空间的自动注入功能:
$ kubectl label namespace default istio-injection=enabled namespace/default labeled
3)部署用于测试的服务:
$ kubectl apply -f service/go/service-go.yaml $ kubectl get pod NAME READY STATUS RESTARTS AGE service-go-v1-7cc5c6f574-xdgxz 2/2 Running 0 40s service-go-v2-7656dcc478-cf2mf 2/2 Running 0 40s