rancher2试玩istio,安装部署官方示例bookinfo
最新Rancher2.3.0已官方支持istio一键安装
一、版本
Rancher2版本 v2.1.3
istio :1.0.2
k8s:1.11.5
二、安装istio
1、应用商店找到istio
2、修改部署参数
由于gcr.io被墙的关系,默认的istio包是下载不到的,不过没关系,可以在istio dockerhub上已经有构建好的相关的包。
我这里选择istio v1.0.2,当时已经出到v1.0.5,但由于 grafana还只有v1.0.2的包,所以这里选择了v1.0.2
选择不使用默认image,然后按照红框修改。
修改部署参数 其他参数1 其他参数23、然后点击启动,等待自动部署安装。
按照完成后如下图
安装完成安装好之后有4个负载均衡,如下图,其中grafana需要自己配
gateway,还没部署应用,暂时访问不到
servicegraph,访问报404。
kiali、tracing 直接可以打开
负载均衡部分1、kiali 地址:http://kiali.rancher.istio。(注意:域名是自定义的,需要修改hosts,将域名指向集群任意机器)
如果没有访问过istio边车的应用,里面刚开始进去是没有数据的。后面部署了bookinfo示例应用,有应用流量访问之后再回过头来查看监控,就有数据了。
kiali2、tracing http://tracing.rancher.istio
此时没有访问过,应该是没有数据的
tracing3、grafana http://graph2.rancher.istio
grafana效果图grafana需要自己添加负载均衡才能打开,按照如下方式添加ingress
然后访问配置的域名即可,记得改hosts
istio grafana负载均衡配置三、安装bookinfo示例
bookinfo是官方的一个istio的示例
地址:https://istio.io/docs/examples/bookinfo/
1、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个红星。
应用程序的端到端架构如下所示。
部署了istio envoy边车的架构,envoy以棕色的方块标识2、开始安装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>安装好之后的效果
bookinfo看应用里面是否注入了enovy
每个应用里面都注入了enovy4>istio-gateway
istio-gateway5>访问网址 :http://gateway.rancher.istio/productpage
不断刷新,会出现不同的效果,istio在此示例中为我们展示了指向不同版本的流量负载均衡。
这个时候再回去查看之前配的grafana、kiali、tracing就开始有数据了。
效果1-红星星 效果2-黑星星 效果3-无星星还可以通过修改配置实现灰度发布、限流、智能路由等效果,建议前往官方向导,继续尝试istio的各种高级特性。
istio的其他高级特性示例四:补充一下负载均衡的配置(某些监控访问不到,需要修改负载均衡配置)
如果安装的时候没有选择配置负载均衡,后面可以手动添加
grafana istio-gateway 这里默认是zipkin,要改成tracing kiali五、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/