1、什么是Istio

云平台为使用它们的组织提供了很多好处。但是,不可否认的是,采用云技术会对DevOps团队造成压力。开发人员必须使用微服务来构建可移植性,同时运营商正在管理超大型混合和多云部署。Istio使您可以连接,保护,控制和观察服务。

从较高的角度来看,Istio有助于降低这些部署的复杂性,并减轻开发团队的负担。它是一个完全开源的服务网格,可以透明地分层到现有的分布式应用程序上。它也是一个平台,包括可将其集成到任何日志记录平台,遥测或策略系统中的API。Istio的多样化功能集使您能够成功,高效地运行分布式微服务架构,并提供一种统一的方式来保护,连接和监视微服务。

2、为什么要使用Istio

Istio可以轻松创建带有负载平衡,服务到服务的身份验证,监视等功能的已部署服务网络,而服务代码中的代码更改很少或没有更改。通过在整个环境中部署一个特殊的sidecar代理来拦截微服务之间的所有网络通信,然后使用其控制平面功能配置和管理Istio,可以为服务添加Istio支持,包括:

  • HTTP,gRPC,WebSocket和TCP通信的自动负载平衡。

  • 通过丰富的路由规则,重试,故障转移和故障注入对流量行为进行细粒度控制。

  • 可插拔的策略层和配置API,支持访问控制,速率限制和配额。

  • 集群内所有流量的自动度量,日志和跟踪,包括集群的入口和出口。

  • 通过强大的基于身份的身份验证和授权,在群集中进行安全的服务间通信。

Istio专为可扩展性而设计,可满足多种部署需求。

3、安装Istio

3.1环境介绍

安装Istio_第1张图片

3.2运行以下命令来自动下载并解压缩最新版本:

curl -L https://istio.io/downloadIstio | sh -

3.3安装目录包含:

  • Kubernetes的安装YAML文件在 install/kubernetes

  • 中的示例应用程序 samples/

  • 目录中的客户端二进制文件。手动注入Envoy作为Sidecar代理时使用。istioctlbin/istioctl

安装Istio_第2张图片

3.4设置环境变量

cat /etc/profile.d/istio


ISTIO_HOME=/root/istio-1.4.3

export PATH=$ISTIO_HOME/bin:$PATH


source /etc/profile.d/istio

chmod 777 istio-1.4.3/bin/istioctl

3.5安装demo配置文件

istioctl manifest apply --set profile=demo

安装Istio_第3张图片

备注:这里有的镜像可能拉不下来,需要自己想办法,等待时间可能有点长

3.6通过确保已部署以下Kubernetes服务来验证安装

kubectl get pod -n istio-system

kubectl get svc -n istio-system

安装Istio_第4张图片

3.7卸载会删除RBAC权限,istio-system名称空间以及它下面的层次结构中的所有资源

istioctl manifest generate --set profile=demo | kubectl delete -f -