天天看點

使用阿裡雲容器服務部署Bookinfo示例

Bookinfo應用介紹

Bookinfo是一個樣例應用,用來示範多種 Istio 特性,它由四個單獨的微服務構成:

  • productpage

     :

    productpage

     微服務會調用 

    details

     和 

    reviews

     兩個微服務,用來生成頁面。
  • details

     :這個微服務包含了書籍的資訊。
  • reviews

     :這個微服務包含了書籍相關的評論。它還會調用 

    ratings

     微服務。
  • ratings

    ratings

     微服務中包含了由書籍評價組成的評級資訊。

reviews

 微服務有 3 個版本:

  • v1 版本不會調用 

    ratings

     服務。
  • v2 版本會調用 

    ratings

     服務,并使用 1 到 5 個黑色星形圖示來顯示評分資訊。
  • v3 版本會調用 

    ratings

     服務,并使用 1 到 5 個紅色星形圖示來顯示評分資訊。

下圖展示了這個應用的端到端架構

使用阿裡雲容器服務部署Bookinfo示例

部署應用

部署istio 

登入容器服務控制台,左側導航中選擇服務網格-Istio管理,選擇需要安裝Istio的叢集,使用預設配置點選部署Istio

使用阿裡雲容器服務部署Bookinfo示例

成功部署Istio後,可以看到下方Sidecar 自動注入設定。選擇一個命名空間,開啟Sidecar自動注入

使用阿裡雲容器服務部署Bookinfo示例

完成後可以看到istio-test命名空間下新增标簽istio-injection:enabled

使用阿裡雲容器服務部署Bookinfo示例
部署相關服務

bookinfo使用的服務yaml檔案位址 

https://raw.githubusercontent.com/istio/istio/release-1.2/samples/bookinfo/platform/kube/bookinfo.yaml

這裡我們使用控制台分别部署productpage,detail,rating及reviews服務的兩個版本(v1,v2)

productpage服務

選擇叢集,命名空間

使用阿裡雲容器服務部署Bookinfo示例

輸入鏡像名稱,版本,設定端口

使用阿裡雲容器服務部署Bookinfo示例

服務(service)相關配置

使用阿裡雲容器服務部署Bookinfo示例
使用阿裡雲容器服務部署Bookinfo示例

建立完成

參考上述步驟分别建立details,ratings,reviews(v1)三個服務。

建立完成後,等待所有的service和 pod 都已經正常啟動。

建立服務網關

服務網關可以将Istio的功能(如:監控和路由規則)應用到進入叢集的流量。在服務網格目錄下選擇服務網關,點選建立。

使用阿裡雲容器服務部署Bookinfo示例
使用阿裡雲容器服務部署Bookinfo示例

然後,可以将虛拟服務綁定到網關,以控制進入叢集的流量。點選虛拟服務可以看到虛拟服務清單,

使用阿裡雲容器服務部署Bookinfo示例

點選productpage的服務網關綁定,可以看到如下彈窗,選擇建立好的服務網關bookinfo-gateway,确定後完成綁定。

使用阿裡雲容器服務部署Bookinfo示例

進入服務網關清單,點選bookinfo-gateway中istio-ingressgateway服務位址,輸入路由/productpage可以看到如下頁面

使用阿裡雲容器服務部署Bookinfo示例
部署reviews-v2 版本

點選虛拟服務reviews,進入詳情頁,在版本管理欄點選增加灰階版本

使用阿裡雲容器服務部署Bookinfo示例

輸入版本号進入下一步,輸入鏡像名稱,版本,設定端口。

使用阿裡雲容器服務部署Bookinfo示例

下一步,設定灰階政策。這裡選擇基于流量比例的釋出政策,v1,v2版本流量各50%。設定完成後點選建立。

使用阿裡雲容器服務部署Bookinfo示例

待pod啟動完成後,重新整理url,會看到v2版本的UI(由于v1、v2流量比例各50%,可能要多重新整理幾次)

使用阿裡雲容器服務部署Bookinfo示例

最後,我們可以使用壓測工具(如siege)模拟多次通路,再通過kiali觀察流量拓撲。我們在安裝istio的時候已經預設安裝了kiali,隻需要在路由中建立一個ingress就可以友善的進行通路。

左側導航中選擇路由與負載均衡->路由,選擇安裝好istio的叢集,命名空間選擇istio-system,點選建立并按如下填寫相關内容

使用阿裡雲容器服務部署Bookinfo示例

建立完成後會在Ingress清單看到kiali的通路位址

使用阿裡雲容器服務部署Bookinfo示例

進入kiali界面(使用者名密碼預設為admin),可以看到流量拓撲如圖。

使用阿裡雲容器服務部署Bookinfo示例

小結

本文介紹了使用阿裡雲容器服務部署運作bookinfo示例的過程。接下來我們還可以用它來體驗Istio相關特性,包括智能路由,錯誤注入,流量控制等。

繼續閱讀