这里以istio 1.6.0为例

不同版本的istio安装步骤参考官网:Istio / Getting Started

可参考文章(弱弱参考!):在docker desktop的k8s中部署Istio-demo - 简书

一、istio下载

1、在网址中下载,或者,使用如下命令进行下载。

下载网址:https://github.com/istio/istio/releases    

istoreos设置docker docker istio_容器

使用命令下载:

curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.6.0 sh -  #这里ISTIO_VERSION指定下载的istio的版本

istoreos设置docker docker istio_ide_02

2、进入到下载的istio目录:


istoreos设置docker docker istio_容器_03



3、添加istioctl客户端到你的路径。

istoreos设置docker docker istio_配置文件_04

在执行上面的命令之前输入istioctl命令是会报错【没有istioctl命令】

在执行上面的命令之后输入istioctl命令是不会报错的【有istioctl命令】

二、istio部署

1、针对安装,在这里使用demo的配置文件。它被选择为具有一组用于测试的良好默认配置,但是还有用于生产或性能测试的其他配置文件。

  • 建议学习的时候,使用-- set profile=demo。因为是demo部署,所以将大部分组件全部部署了,并增加了cpu和memory的限制。在生产环境中部署istio时,官方建议使用default【不加-- set profile参数,即默认profile=default。或者加-- set profile=default参数】

查看istio支持的配置文件类型:

istoreos设置docker docker istio_ide_05

 设置istio使用demo配置文件:

istoreos设置docker docker istio_容器_06

2、添加名称空间的标签,当部署应用后,告诉istio去自动的注入Envoy sidecar代理。

  • 其实Envoy sidecar代理,是pod中的一个容器。

istoreos设置docker docker istio_docker_07


istoreos设置docker docker istio_docker_08


istoreos设置docker docker istio_docker_09




3、查看istio是否部署成功。

istoreos设置docker docker istio_容器_10


三、测试—istio部署应用案例

1、部署案例应用

(1)部署Bookinfo的案例应用。


istoreos设置docker docker istio_ide_11

(2)当每个pod准备就绪后【状态为Running】,istio sidecar也会随之展开。

istoreos设置docker docker istio_配置文件_12


istoreos设置docker docker istio_配置文件_13

(3)检查所有的工作是否正常

istoreos设置docker docker istio_容器_14

istoreos设置docker docker istio_配置文件_15



2、打开应用给外面访问

(1)Bookinfo应用程序已部署,但不能从外部访问。要使其可访问,您需要创建一个istio ingress网关,它将路径映射到网格边缘的一个路由。【类似于外部要访问k8s中的应用有三种方式:1、设置service为NodePort类型;2、设置service为LoadBalancer类型;3、设置ingress nginx controller或ingress traefik controller】

istoreos设置docker docker istio_istoreos设置docker_16

istoreos设置docker docker istio_配置文件_17

  

(2)查看创建的gateway。

istoreos设置docker docker istio_ide_18

istoreos设置docker docker istio_docker_19

  

3、确定ingress的IP和端口号

(1)查看ingress-gateway服务【ingress-gateway服务是上面二中部署完istio后,创建的服务】的IP和端口

istoreos设置docker docker istio_ide_20

istoreos设置docker docker istio_istoreos设置docker_21

istoreos设置docker docker istio_容器_22


需注意:

istoreos设置docker docker istio_istoreos设置docker_23

(2)在浏览器中访问http://192.168.20.88/productpage校验访问


istoreos设置docker docker istio_docker_24


4、在DashBoard中查看安装的应用

istio安装了几个可选的仪表板。Kiali仪表板通过显示拓扑并指示网格的健康状况,帮助您了解服务网格的结构。

(1)修改kiali的服务,将类型改为LoadBalancer【需注意:这里因为作者安装了matalb产品,所以改为LoadBalancer类型后,可以分配到EXTERNAL-IP。在没有安装metalb产品的情况下,可以将该服务类型改为NodePort】


istoreos设置docker docker istio_docker_25



(2)再次查看服务


istoreos设置docker docker istio_ide_26


(3)使用浏览器访问http://192.168.20.89:20001/kiali

  • 初始用户名和密码均为admin

istoreos设置docker docker istio_配置文件_27


istoreos设置docker docker istio_ide_28



四、在k8s中移除istio

istoreos设置docker docker istio_docker_29