1. 下载Istio

安装 1.5.1版本的 安装命令如下 curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.5.1 sh -
(最新版的安装命令如下 curl -L https://istio.io/downloadIstio | sh -)
image.png
根据提示,将Istio的命令行工具加到path中
export PATH=”$PATH:/root/istio-1.5.1/bin”

查看istioctl是否可以正常工作
istioctl version
image.png

2. 安装Istio

进入到istio的安装目录,安装istio
istioctl manifest apply —set profile=demo
image.png
PS:istio官方提供了,上图采用demo配置安装
image.png
安装完毕后,查看他的启动情况
kubectl get ns
image.png
kubeSphere中也可以看到启动情况,可以看到建了一个istio-system这样一个项目(namespace)
image.png
进入到istio-system这个namespace查看pod的启动情况
kubectl get po -n istio-system
image.png
kubeSphere中也可以看到pod的情况
image.png
至此已经装完了Istio,Istio自带一个dashboard名为kiali可视化的方式查看系统的状态
PS:外网访问需要将端口映射出去
image.png
访问 http://192.168.61.199:32042/kiali/ admin admin
image.png
image.png

3. 验证istio

部署bookInfo应用
image.png
部署应用前,先做一个Sidecar的注入
// 在默认的命名空间里加一个label(标签) 这个label名叫istioinjection
自动注入:kubectl label namespace default istioinjection=enabled —overwrite=true
手动注入:kubectl apply -f <(istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml)
image.png
通过安装清单部署应用
在安装目录下执行
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
image.png
查看pod启动情况
kubectl get pod
image.png
以productpage为例,可以看到已经注入的Sidecar
image.png

目前为止服务创建好了,但是还不能通过外界访问,还需要一个gateway。

4. 创建Ingress网关

命令 kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml (这个清单创建了一个gateway 和 vertualService)
(需在安装目录下执行)
image.png
gateway 为了让服务可以对外访问,vertualService是配合gateway使用的 他有一些基本的路由信息

5. 访问服务

完成以上操作就可以测试,bookinfo这个应用是否可以访问了。
(需要暴露productpage端口)
http://192.168.61.199:32697/productpage
image.png