Service Mesh與Istio佈署簡介(中)

Service Mesh與Istio佈署簡介(中)

Istio佈署

Istio需要K8S 1.7.3以上支援RBAC的版本(包含kubectl ver >= 1.7.3)

K8S controller:10.0.11.10

K8S workers:10.0.11.11,10.0.11.12,10.0.11.13

K8S version:1.8.3

OS:ubuntu 16.04 LTS

istio release下載最新版本的Istio解壓並進入工作資料夾

或是執行以下自動下載解壓並設定istio-path

根據install/kubernetes/README.md的說明,Istio有以下幾種佈署模式

下以佈署無authentication的Istio(no TLS connection)為例

驗證看所有Pod有無Running

複製istioctl到/usr/bin

參考資料:Istio學習的開始(一)Istio Quick Start

Istio範例測試

Istio官方提供了幾個範例(Work with Istio)讓開發人員測試並了解大概如何撰寫,這些範例展示Istio如何控制範例Pods,所有設定可在Istio資料夾內的samples裡找到,以Bookinfo為例,主要包含三種平台可供測試,分別是consul、enreka及k8s。

以下以Bookinfo為例,該例為一服務提供使用者閱覽書籍評分、書籍描述和書籍細節,如圖11所示,其包含了4個微服務:

productpage. The productpage microservice calls the details and reviews microservices to populate the page.

details. The details microservice contains book information.

reviews. The reviews microservice contains book reviews. It also calls the ratings microservice.

ratings. The ratings microservice contains book ranking information that accompanies a book review.

其中Review的部份包含了3種不同的版本,範例內定義Istio平均連線至3個不同版本,因此每刷新一次頁面,該連線會循環連線到下一個版本上,V1無評分、V2的評分為黑星最後V3為紅星。

佈署Bookinfo Service並Inject sidecar(Envoy)至各bookinfo.yaml的各Pod內如下圖12所示,其中為了讓sidecar可作用,在設計Pods時須滿足特定條件才可被sidecar所調用。

佈署驗證

服務驗證

首先以node port方式從外部訪問bookinfo

用瀏覽器從外部開啟10.0.11.12:31838/productpage出現如下圖13

可重新刷新,刷新後由於Istio設定,將出現V2的黑星,後續刷新循環導入連線至不同版本。

佈署Istio和範例後,Istio提供若干addons供monitor流量或顯示發現的service拓樸等。以下介紹如何使用Istio提供的addons:包含佈署Zipkin來tracing微服務,另外如何佈署Prometheus以查詢監控訊息,並介紹Prometheus如何結合Grafana或Istio的Servicegraph addon提供更多的資訊。

延伸閱讀:Service Mesh與Istio佈署簡介(下)

撰文: 呂威廷 迎棧科技工程師

訂閱電子報

Select list(s)*

 

Loading