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

2019-01-19  本文已影响0人  GreperXiao

最新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 其他参数2

3、然后点击启动,等待自动部署安装。

按照完成后如下图

安装完成

安装好之后有4个负载均衡,如下图,其中grafana需要自己配

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

servicegraph,访问报404。

kiali、tracing 直接可以打开

负载均衡部分

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

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

kiali 

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

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

tracing

3、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

每个应用里面都注入了enovy

4>istio-gateway

istio-gateway

5>访问网址  :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/

上一篇下一篇

猜你喜欢

热点阅读