Edited at

Rancher Preview 2.3.0-alpha5 Istio kiali Jaeger Promethesu+Grafana

Rancher2.3 Previewとして、Istio kiali Jaeger そして2.2から同梱されたPrometheus+Grafanaとは別に機能として追加されました。

Bookinfoアプリケーションをベースに試してみようと思います。


環境について

環境としては、RancherからGKEにクラスタを構築してBookinfoアプリをデプロイしてみました。

01.png


Rancher Server

項目
入力概要

名前
rancher-server

ゾーン
asia-northeast1-b

マシンタイプ
vCPUx1

ブートディスク
Ubuntu 18.04 LTS
ディスクサイズ30GB

ファイアウォール
HTTP トラフィックを許可する、HTTPS トラフィックを許可するの両方をチェックします。


GKEクラスタ

リソースは多めに必要となります。vCPU数8のクラスタとなります。

項目
入力概要

名前
rancher-k8s-cluster

ゾーン
asia-northeast1-a

Machine Type
n1-standard-2(2 vCPUs,7.5GB RAM)

Node Count
4

Node Count
Ubuntu


Istio Kiali Jaeger Prometheus+Grafana 環境デプロイ

ナビゲーションから「Global」-「rancher-k8s-cluster」を選択します。

02.png

ナビゲーションから「Tools」-「Istio」を選択します。

03.png

デフォルトのまま「Enable」ボタンをクリックします。

04.png

ナビゲーションから「Default」を選択します。

04.png

ナビゲーションから「Istio」を選択します。

05.png

画面が遷移すると、右上に「Kiali Jaeger Grafana Prometheus」のアイコンが表示されます。各アイコンをクリックするとダッシュボード画面が表示されます。

06.png

Kialiダッシュボード

07.png

Jaegerダッシュボード

08.png

Grafanaダッシュボード

09.png

Prometheusダッシュボード

10.png

ナビゲーションから「rancher-k8s-cluster」を選択します。

11.png

「Launch kubectl」ボタンをクリックします。

12.png

コンソールが起動します。

13.png


Bookinfoアプリケーションデプロイ

BookinfoはIstioのサンプルアプリケーションのため、まずIstioをダウンロードします。


コマンド

# Run kubectl commands inside here

# e.g. kubectl get all
> curl -L https://git.io/getLatestIstio | sh -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 2140 100 2140 0 0 2372 0 --:--:-- --:--:-- --:--:-- 104k
Downloading istio-1.2.0 from https://github.com/istio/istio/releases/download/1.2.0/istio-1.2.0-linux.tar.gz ... % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 614 0 614 0 0 1590 0 --:--:-- --:--:-- --:--:-- 1590
100 20.2M 100 20.2M 0 0 6184k 0 0:00:03 0:00:03 --:--:-- 10.4M
Istio 1.2.0 Download Complete!

Istio has been successfully downloaded into the istio-1.2.0 folder on your system.

Next Steps:
See https://istio.io/docs/setup/kubernetes/install/ to add Istio to your Kubernetes cluster.

To configure the istioctl client tool for your workstation,
add the /nonexistent/istio-1.2.0/bin directory to your environment path variable with:
export PATH="$PATH:/nonexistent/istio-1.2.0/bin"

Begin the Istio pre-installation verification check by running:
istioctl verify-install

Need more information? Visit https://istio.io/docs/setup/kubernetes/install/


ラベルを設定して、Bookinfoアプリケーションデをデプロイします。


コマンド

> cd istio-1.2.0/

> kubectl label namespace default istio-injection=enabled
namespace/default labeled
> kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
service/details created
serviceaccount/bookinfo-details created
deployment.apps/details-v1 created
service/ratings created
serviceaccount/bookinfo-ratings created
deployment.apps/ratings-v1 created
service/reviews created
serviceaccount/bookinfo-reviews created
deployment.apps/reviews-v1 created
deployment.apps/reviews-v2 created
deployment.apps/reviews-v3 created
service/productpage created
serviceaccount/bookinfo-productpage created
deployment.apps/productpage-v1 created

serviceとpod状況を確認します。


コマンド

> kubectl get services

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
details ClusterIP 10.43.247.245 <none> 9080/TCP 23s
kubernetes ClusterIP 10.43.240.1 <none> 443/TCP 6m32s
productpage ClusterIP 10.43.249.140 <none> 9080/TCP 22s
ratings ClusterIP 10.43.255.36 <none> 9080/TCP 23s
reviews ClusterIP 10.43.247.171 <none> 9080/TCP 23s
> kubectl get po
NAME READY STATUS RESTARTS AGE
details-v1-7964b4bb49-hl4zt 2/2 Running 0 64s
productpage-v1-6c668694dc-f69hc 2/2 Running 0 63s
ratings-v1-7bb4dbd557-s8dwz 2/2 Running 0 63s
reviews-v1-597f899bf6-cvzs5 2/2 Running 0 64s
reviews-v2-664994896d-4vrvp 2/2 Running 0 64s
reviews-v3-fc984656d-cvdhb 2/2 Running 0 63s

curlコマンドでアクセスします。


コマンド

> kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage | grep -o "<title>.*</title>"

<title>Simple Bookstore App</title>
>

ナビゲーションから「Default」を選択します。

04.png

ナビゲーションから「Istio」を選択します。

05.png

Kialiが同梱されているので、RancherUIから確認できます。

14.png

Kialiのアイコンをクリックして、Kialiダッシュボードからも確認できます。

15.png

「Traffic Metrics」を選択すると、ServiceによるレイテンシーやVolumeの状況をグラフで見ることができます。グラフにカーソルを合わせると詳細情報が表示されます。

14.png

Jaegerのアイコンをクリックして、Jaegerダッシュボードからも確認できます。

16.png

以上となります。

ナビゲーションから数クリックでIstio kiali Jaeger Promethesu+Grafana環境が構築できるのはいいですね。RancherにもService Mesh、Observerbility環境が2.3から整い始める感じがしました。

Rancher2.2から同梱されたPrometheus+Grafanaはクラスタ、プロジェクトレベルですが、Istio環境用にも追加されたのでリソースは食うのでGA時には改善を期待したいところです。

Announcing Preview Support for Istio