華為雲和開源Istio運維管理對比樣例應用部署

CCE_huawei發表於2019-04-15

前言

在公有云方面,華為雲已經率先將 Istio 作為產品投入到公有云中進行商業應用中,保持和開源istio高度相容,做了商業化的運維管理介面,同時進行了效能最佳化。這裡我們做一次驗證測試。



Bookinfo 應用

這裡我們部署一個demo,由四個單獨的微服務構成**(注意這裡的四個微服務是由不同的語言編寫的)**,用來演示多種 Istio 特性。這個應用模仿線上書店的一個分類,顯示一本書的資訊。頁面上會顯示一本書的描述,書籍的細節(ISBN、頁數等),以及關於這本書的一些評論。


Bookinfo 應用分為四個單獨的微服務:


  • productpage:productpage微服務會呼叫details和reviews兩個微服務,用來生成頁面。

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

  • reviews:這個微服務包含了書籍相關的評論。它還會呼叫 ratings 微服務。

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


這裡主要使用reviews來演示 Istio 特性,reviews微服務有 3 個版本:


  • v1 版本不會呼叫ratings服務。

  • v2 版本會呼叫ratings服務,並使用 1 到 5 個黑色星形圖示來顯示評分資訊。

  • v3 版本會呼叫ratings服務,並使用 1 到 5 個紅色星形圖示來顯示評分資訊。


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


Istio 注入之前的 Bookinfo 應用


Bookinfo 是一個異構應用,幾個微服務是由不同的語言編寫的。這些服務對 Istio 並無依賴,但是構成了一個有代表性的服務網格的例子:它由多個服務、多個語言構成,並且 reviews 服務具有多個版本。



部署應用

這裡 Istio 的安裝部署就不在贅述了。


值得注意的是:如果使用的是開源K8s服務安裝的 Istio ,要配置負載均衡。


在 Istio 中執行這一應用,無需對應用自身做出任何改變。我們只要簡單的在 Istio 環境中對服務進行配置和執行,具體一點說就是把 Envoy sidecar 注入到每個服務之中。這個過程所需的具體命令和配置方法由執行時環境決定,而部署結果較為一致,如下圖所示:


Bookinfo 應用


所有的微服務都和 Envoysidecar 整合在一起,被整合服務所有的出入流量都被 sidecar 所劫持,這樣就為外部控制準備了所需的 Hook,然後就可以利用 Istio 控制平面為應用提供服務路由、遙測資料收集以及策略實施等功能。

下載安裝


到 GitHub 中 istio 的 release   中下載相應版本的 istio包,下載後將 bin目錄配置到環境變數 PATH中 export PATH="/istio/bin:$PATH",這裡我們使用的是 istio 1.0.5版本


Bookinfo 這個應用就在samples/目錄下

 


在華為雲(CCE)上執行


華為雲率先將 Istio 作為產品投入到公有云中進行商業應用,開通方式十分簡單,只要在華為雲CCE上建立叢集,然後申請 Istio 公測即可。


為了方便測試Bookinfo 應用在華為雲上提供了一鍵體驗應用,點選即可省去剛剛那一系列的kubectl操作


       

一鍵建立體驗應用

       

點選灰度釋出即可

       

建立金絲雀釋出

       

選擇灰度釋出的元件

       

填寫版本號

       

選擇映象版本

       

版本建立完成後配置灰度策略

       

選擇相應策略,策略下發即可


總的來說,華為雲的Istio 確實已經是商業化應用,這裡只是展示了部分灰度釋出的功能。其他比如流量治理,流量監控等功能還沒展示,這些功能做的十分細緻,值得嘗試。


參考

基於ISTIO服務網格的灰度釋出

https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_0012.html


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908804/viewspace-2641457/,如需轉載,請註明出處,否則將追究法律責任。

相關文章