Istio安装
环境准备
Istio安装的前提是需要准备一个kubernetes环境。
这对我们学习比较麻烦,因为安装一套k8s比较麻烦,而且对服务器资源的要求比较高。
学习istio阶段可以使用一些免费资源。比如katacoda。
Katacoda 可以快速的提供一套完整的临时环境,在浏览器中使用该环境来学习和测试新技术。
最重要的是,它是免费的!
打开这个网址
Kubernetes Playground | Katacoda
直接一个临时的k8s环境就可以用了。

下载安装包
1 | curl -L https://istio.io/downloadIstio | sh - |

下载完成,按照提示讲istio添加到环境变量里
1 | export PATH="$PATH:/root/istio-1.11.2/bin" |

使用istioctl version看一下版本。
因为我们还没有安装istio本身,所以显示没有pod在运行
安装
istio提供了几个profile配置文档,供不同的环境安装使用
todo图
生产环境下使用
1 | istioctl manifest apply |
安装default这个版本
学习阶段我们安装demo
1 | istioctl manifest apply --set profile=demo |
等待安装完成

1 | controlplane $ kubectl get ns |
看到新创建了一个istio-system的namespace

验证安装
命令行验证
1 | istioctl manifest generate > $HOME/generated-manifest.yaml |
可视化验证
dashboard
1 | istioctl dashboard kiali |
部署一个应用
istio提供了一个图书管理的微服务系统。是一个多语言的异构的微服务系统。
todo图
1 | kubectl label namespace default istio-injection-enabled --overwrite=true namespace/default labeled |
给default namespace加一个label,自动注入
在以后部署应用的时候,自动改写清单,把siadecar的相关配置自动注入进去。
1 | kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml |
再部署一个gateway,供外界访问
1 | kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml |