rancher2试玩istio,安装部署官方示例bookinfo体验

1、版本html

Rancher2版本 v2.1.3git

istio :1.0.2github

k8s:1.11.5docker

2、安装istio架构

一、应用商店找到istioapp


15531947-d57b90a40396aa1b.png

二、修改部署参数负载均衡

因为gcr.io被墙的关系,默认的istio包是下载不到的,不过不要紧,能够在istio dockerhub上已经有构建好的相关的包。微服务

我这里选择istio v1.0.2,当时已经出到v1.0.5,但因为 grafana还只有v1.0.2的包,因此这里选择了v1.0.2测试

选择不使用默认image,而后按照红框修改。this

15531947-8e6c8a8c28fcf727.png
修改部署参数


15531947-8c8578e67f4a91d6.png
其余参数1


15531947-19ef3e8cc2ee1693.png
其余参数2


三、而后点击启动,等待自动部署安装。

按照完成后以下图

15531947-7a230a0524fc3a19.png
安装完成

安装好以后有4个负载均衡,以下图,其中grafana须要本身配

gateway,还没部署应用,暂时访问不到

servicegraph,访问报404。

kiali、tracing 直接能够打开

15531947-a351b243984837ad.png
负载均衡部分

一、kiali   地址:http://kiali.rancher.istio。(注意:域名是自定义的,须要修改hosts,将域名指向集群任意机器)

若是没有访问过istio边车的应用,里面刚开始进去是没有数据的。后面部署了bookinfo示例应用,有应用流量访问以后再回过头来查看监控,就有数据了。

15531947-ef3019484e428d69.png
kiali 

二、tracing     http://tracing.rancher.istio

此时没有访问过,应该是没有数据的


15531947-15d5a6aa2d32c0ee.png
tracing

三、grafana    http://graph2.rancher.istio

15531947-27ca785e7c2f3f5a.png
grafana效果图

grafana须要本身添加负载均衡才能打开,按照以下方式添加ingress

而后访问配置的域名便可,记得改hosts

15531947-19fc224ed43da2bd.png
istio grafana负载均衡配置

3、安装bookinfo示例

bookinfo是官方的一个istio的示例

地址:https://istio.io/docs/examples/bookinfo/

一、bookinfo介绍

此示例部署了一个示例应用程序,该应用程序由四个独立的微服务组成,用于演示各类Istio功能。应用程序显示有关书籍的信息,相似于在线书店的单个商品。页面上显示的是书籍的描述,书籍详细信息(ISBN,页数等)以及一些书评。

Bookinfo应用程序分为四个独立的微服务:

productpage。该productpage微服务调用details和reviews微服务来填充页面。

details。该details微服务包含图书信息。

reviews。该reviews微服务包含了书评。它也称为ratings微服务。

ratings。该ratings微服务包含伴随书评书排名信息。

reviews微服务有3个版本:

版本v1不会调用该ratings服务。

版本v2调用该ratings服务,并将每一个评级显示为1到5个黑色星。

版本v3调用该ratings服务,并将每一个评级显示为1到5个红星。

应用程序的端到端架构以下所示。


15531947-18ef7695a24376a5.png



15531947-2d7dcc37b8538401.png
部署了istio envoy边车的架构,envoy以棕色的方块标识

二、开始安装bookinfo(若是跟着个人流程走有问题,建议直接去跟着官方文档上的安装步骤走。)

如今,开始部署一个测试应用而且测试Istio的强大功能。首先,部署Bookinfo示例应用。这个应用有趣的部分在于它有三个版本的reviews程序同时运行。咱们可-以在这三个版本的程序中体验到Istio的一些功能。接着,访问rancher-demo的默认项目中的工做负载来部署Bookinfo app,具体的操做是:

1>执行kube命令,开启自动边车注入。

kubectl label namespace default istio-injection=enabled

此命令将default命名空间标记为自动注入,若是你将bookinfo应用部署到其余命名空间,要将此处default替换。

2>而后安装bookinfo应用

点击Import Yaml;下载bookinfo.yaml(https://info.rancher.com/hubfs/bookinfo.yaml)到本地;

当你进入Import Yaml菜单以后,经过从文件读取,将其上传至Rancher;

对于 Import Mode,选择【集群:将任何资源直接导入此集群】Cluster: Direct import of any resources into this cluster;

点击【导入/Import】。

3>经过Istio暴露Bookinfo app

应用此bookinfo-gateway.yaml(https://info.rancher.com/hubfs/bookinfo-gateway.yaml),操做方式与bookinfo.yaml相同

或者按照官方步骤:

kubectl label namespace default istio-injection=enabled

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.0/samples/bookinfo/platform/kube/bookinfo.yaml

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.0/samples/bookinfo/networking/bookinfo-gateway.yaml

固然同样的能够将yaml下载下来,而后在rancher界面上导入

3>安装好以后的效果

15531947-2443e699ecffeffd.png
bookinfo

看应用里面是否注入了enovy

15531947-796ca0fdc93b5e95.png
每一个应用里面都注入了enovy


4>istio-gateway

15531947-b9b20c8e69c5634c.png
istio-gateway

5>访问网址  :http://gateway.rancher.istio/productpage

不断刷新,会出现不一样的效果,istio在此示例中为咱们展现了指向不一样版本的流量负载均衡。

这个时候再回去查看以前配的grafana、kiali、tracing就开始有数据了。

15531947-5aceda3427919c47.png
效果1-红星星


15531947-6d5d267bfed6cd9e.png
效果2-黑星星


15531947-ceee61bb0f2ec15c.png
效果3-无星星

还能够经过修改配置实现灰度发布、限流、智能路由等效果,建议前往官方向导,继续尝试istio的各类高级特性。

15531947-1102173a1551ac09.png
istio的其余高级特性示例

四:补充一下负载均衡的配置(某些监控访问不到,须要修改负载均衡配置)

若是安装的时候没有选择配置负载均衡,后面能够手动添加

15531947-0add693d66128f82.png
grafana



15531947-09f0dfb928d78406.png
istio-gateway
15531947-0471ac84e9aad22c.png
这里默认是zipkin,要改为tracing


15531947-ba1490eafe1703cd.png
kiali

5、image拉取不到的问题

安装过程当中可能会有拉取image失败的问题,由于gcr.io被墙,因此须要从其余地方拉取image,而后修改image的tag

例如: proxy_init

咱们先去dockerhub上找image,https://hub.docker.com/r/istio/proxy_init/tags ,dockerhub是没有被墙的

而后到报错的主机上执行以下命令

docker pull istio/proxy_init:1.0.2

docker tag istio/proxy_init:1.0.2 gcr.io/istio-release/proxy_init:release-1.0

其中 gcr.io/istio-release/proxy_init:release-1.0  是报错的image的tag

而后就能够安装成功,若是遇到其余image被墙的问题,均可以按照该方法解决



今天istio试玩就到这里,感谢阅读


参考文章:

https://www.cnblogs.com/ganxie01/p/9468394.html

https://istio.io/docs/examples/bookinfo/