文章目录- 什么是istio
- 下载安装包
- 配置环境变量
- 检测结果
- 安装istio
- 设置命令自动完成
- 安装istio文档到本地
什么是istio
在谈istio之前,我们先搞清楚一个概念,那就是服务网格(Service Mesh),服务网格是什么呢? 按我自己个人的理解,服务网格就是一个基础环境,协调搭载在它上面的应用的不同部分进行工作,同时还可通过服务网格的一系列策略来控制部署在服务网格上的应用,如:流量治理,入口网关,出口网关,熔断,故障注入,超时等,另外,通过服务网格的各种监控指标数据,还可以实时监控应用的运行情况,对应用发生故障进行定位和排查,服务网格提供了很多方式,如:流量镜像,调用链,吞吐量等,CPU利用率,内存利用率等。
Istio 是一个开放的、与平台无关的服务网格,提供了流量管理,策略下发,和远程收集能力。 开放:Istio 是作为一个开源软件来开发和管理的。 平台无关:Istio目前支持Kubernetes的部署环境
Istio 的设计目标是管理微服务间和应用程序间的通信问题。而不用修改底层服务,Istio 针对所有服务之间的通信提供了自动的基线流量弹性,服务指标收集,分布式追踪,流量加密,协议升级和高级路由功能。
下载安装包
访问地址:https://github.com/istio/istio/releases,可以看到有很多版本可供下载
具体下载哪个版本通过自己安装的系统的架构进行选择,选择自己需要的版本进行下载,下载哪个版本可以通过命令查看自己的操作系统支持的是什么类型的
代码语言:javascript复制[root@node141 sleep]# arch
x86_64
我本机的架构是x86_64,所以我选择的是amd64的安装包,还有其他架构的需要选择相应的安装包即可。
架构 | 安装包 |
---|---|
x86_64 | amd64 |
配置环境变量
解压istio压缩包
代码语言:javascript复制tar -zxvf istio-1.6.14-linux-amd64.tar.gz
把istio解压后的bin目录添加到环境变量PATH中
代码语言:javascript复制cat >> ~/.bash_profile << EOF
> export PATH=$PATH:/root/istio-1.6.14/bin
> EOF
添加完执行如下命令应用生效
代码语言:javascript复制source ~/.bash_profile
检测结果
代码语言:javascript复制$ istioctl version
client version: 1.6.14
control plane version: 1.6.14
data plane version: 1.6.14 (9 proxies)
安装istio
执行命令安装istio环境前,需要确认环境是否已经准备就绪,Kubernetes环境是否已经安装好,1.6版本的istio支持的kubernetes版本是1.15, 1.16, 1.17, 1.18
default | demo | minimal | remote | |
---|---|---|---|---|
Core components | ||||
–>istio-egressgateway | X | |||
–>istio-ingressgateway | X | X | ||
–>istiod | X | X | X | |
Addons | ||||
–>grafana | X | |||
–>istio-tracing | X | |||
–>kiali | X | |||
–>prometheus | X | X | X |
根据官方提供的,只有配置为demo的才具备网格的全部能力,这里我们安装demo环境
代码语言:javascript复制$ istioctl install --set profile=demo
✔ Istio core installed
✔ Istiod installed
✔ Egress gateways installed
✔ Ingress gateways installed
✔ Addons installed
✔ Installation complete
如果你在安装过程中失败,则重新执行上述命令,只到成功为止,失败原因主要是网络问题,或者你可以通过命令
代码语言:javascript复制$ kubectl get pod -n istio-system
输出结果如下:
如果istio-system命名空间下的所有pod都处于running状态,则表示istio已经安装完成了
设置命令自动完成
istio提供了命令自动完成的工具,在istio的解压目录下有个tools目录,进入tools目录执行
代码语言:javascript复制$ source istioctl.bash
然后你就可以通过在终端输入istioctl 然后按两下tab键显示istioctl支持的命令,如果这样还不生效,或者有错误提示,则应该先安装命令自动提示包
代码语言:javascript复制yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
安装istio文档到本地
由于istio官网的文档访问速度实在太慢,所以我们可以考虑下载istio文档到本地,部署到nginx上,通过本地直接访问,这样速度提升非常快 访问官网:https://preliminary.istio.io/latest/docs/releases/contribute/build/ 按照官网的说明来一步一步操作即可。或者访问github地址:https://github.com/istio/istio.io/tree/master/archive 进行下载,下载后的文档直接放到本地的nginx的html目录下就可以访问了