最新Rancher2.3.0已官方支持istio一鍵安裝
一、版本
Rancher2版本 v2.1.3
istio :1.0.2
k8s:1.11.5
二、安裝istio
1、應(yīng)用商店找到istio

2、修改部署參數(shù)
由于gcr.io被墻的關(guān)系,默認的istio包是下載不到的,不過沒關(guān)系,可以在istio dockerhub上已經(jīng)有構(gòu)建好的相關(guān)的包。
我這里選擇istio v1.0.2,當(dāng)時已經(jīng)出到v1.0.5,但由于?grafana還只有v1.0.2的包,所以這里選擇了v1.0.2
選擇不使用默認image,然后按照紅框修改。



3、然后點擊啟動,等待自動部署安裝。
按照完成后如下圖

安裝好之后有4個負載均衡,如下圖,其中g(shù)rafana需要自己配
gateway,還沒部署應(yīng)用,暫時訪問不到
servicegraph,訪問報404。
kiali、tracing 直接可以打開

1、kiali? ?地址:http://kiali.rancher.istio。(注意:域名是自定義的,需要修改hosts,將域名指向集群任意機器)
如果沒有訪問過istio邊車的應(yīng)用,里面剛開始進去是沒有數(shù)據(jù)的。后面部署了bookinfo示例應(yīng)用,有應(yīng)用流量訪問之后再回過頭來查看監(jiān)控,就有數(shù)據(jù)了。

2、tracing? ? ?http://tracing.rancher.istio
此時沒有訪問過,應(yīng)該是沒有數(shù)據(jù)的

3、grafana? ??http://graph2.rancher.istio

grafana需要自己添加負載均衡才能打開,按照如下方式添加ingress
然后訪問配置的域名即可,記得改hosts

三、安裝bookinfo示例
bookinfo是官方的一個istio的示例
地址:https://istio.io/docs/examples/bookinfo/
1、bookinfo介紹
此示例部署了一個示例應(yīng)用程序,該應(yīng)用程序由四個獨立的微服務(wù)組成,用于演示各種Istio功能。應(yīng)用程序顯示有關(guān)書籍的信息,類似于在線書店的單個商品。頁面上顯示的是書籍的描述,書籍詳細信息(ISBN,頁數(shù)等)以及一些書評。
Bookinfo應(yīng)用程序分為四個獨立的微服務(wù):
productpage。該productpage微服務(wù)調(diào)用details和reviews微服務(wù)來填充頁面。
details。該details微服務(wù)包含圖書信息。
reviews。該reviews微服務(wù)包含了書評。它也稱為ratings微服務(wù)。
ratings。該ratings微服務(wù)包含伴隨書評書排名信息。
reviews微服務(wù)有3個版本:
版本v1不會調(diào)用該ratings服務(wù)。
版本v2調(diào)用該ratings服務(wù),并將每個評級顯示為1到5個黑色星。
版本v3調(diào)用該ratings服務(wù),并將每個評級顯示為1到5個紅星。
應(yīng)用程序的端到端架構(gòu)如下所示。


2、開始安裝bookinfo(如果跟著我的流程走有問題,建議直接去跟著官方文檔上的安裝步驟走。)
現(xiàn)在,開始部署一個測試應(yīng)用并且測試Istio的強大功能。首先,部署B(yǎng)ookinfo示例應(yīng)用。這個應(yīng)用有趣的部分在于它有三個版本的reviews程序同時運行。我們可-以在這三個版本的程序中體驗到Istio的一些功能。接著,訪問rancher-demo的默認項目中的工作負載來部署B(yǎng)ookinfo app,具體的操作是:
1>執(zhí)行kube命令,開啟自動邊車注入。
kubectl label namespace default istio-injection=enabled
此命令將default命名空間標記為自動注入,如果你將bookinfo應(yīng)用部署到其他命名空間,要將此處default替換。
2>然后安裝bookinfo應(yīng)用
點擊Import Yaml;下載bookinfo.yaml(https://info.rancher.com/hubfs/bookinfo.yaml)到本地;
當(dāng)你進入Import Yaml菜單之后,通過從文件讀取,將其上傳至Rancher;
對于?Import Mode,選擇【集群:將任何資源直接導(dǎo)入此集群】Cluster: Direct import of any resources into this cluster;
點擊【導(dǎo)入/Import】。
3>通過Istio暴露Bookinfo app
應(yīng)用此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
當(dāng)然一樣的可以將yaml下載下來,然后在rancher界面上導(dǎo)入
3>安裝好之后的效果

看應(yīng)用里面是否注入了enovy

4>istio-gateway

5>訪問網(wǎng)址? :http://gateway.rancher.istio/productpage
不斷刷新,會出現(xiàn)不同的效果,istio在此示例中為我們展示了指向不同版本的流量負載均衡。
這個時候再回去查看之前配的grafana、kiali、tracing就開始有數(shù)據(jù)了。



還可以通過修改配置實現(xiàn)灰度發(fā)布、限流、智能路由等效果,建議前往官方向?qū)?,繼續(xù)嘗試istio的各種高級特性。

四:補充一下負載均衡的配置(某些監(jiān)控訪問不到,需要修改負載均衡配置)
如果安裝的時候沒有選擇配置負載均衡,后面可以手動添加




五、image拉取不到的問題
安裝過程中可能會有拉取image失敗的問題,因為gcr.io被墻,所以需要從其他地方拉取image,然后修改image的tag
例如: proxy_init
我們先去dockerhub上找image,https://hub.docker.com/r/istio/proxy_init/tags ,dockerhub是沒有被墻的
然后到報錯的主機上執(zhí)行如下命令
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/