Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Traffic Management with Istio ( with Demo )
Search
loftkun
August 08, 2019
Technology
0
540
Traffic Management with Istio ( with Demo )
2019/08/08 Thu
Cloud Native FUKUOKA #02 - connpass
https://cnjp.connpass.com/event/139837/
loftkun
August 08, 2019
Tweet
Share
More Decks by loftkun
See All by loftkun
OpenShiftのリリースノートを整理してみた
loftkun
2
2.3k
OpenShiftのサポートを始めるぞ!高頻度で更新されるOSSを効果的にキャッチアップする仕組みを考えました!
loftkun
1
2.2k
Demo of write slides and books with VSCode + Markdown
loftkun
1
660
Write slides and books in VSCode + Markdown
loftkun
5
2.2k
OpenShift from Easy way to Hard ? Way
loftkun
1
1.6k
Kubernetes The Hard Way をやってみた
loftkun
2
520
Operator reading and writing with Operator SDK
loftkun
1
270
HPA with custom metrics
loftkun
1
1.9k
Getting Started with Graph Database with Python
loftkun
1
610
Other Decks in Technology
See All in Technology
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
18
7.5k
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
540
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.7k
OpenID Connect for Identity Assurance の概要と翻訳版のご紹介 / 20250219-BizDay17-OIDC4IDA-Intro
oidfj
0
280
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
13
5.2k
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
170
アジャイル開発とスクラム
araihara
0
170
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
660
転生CISOサバイバル・ガイド / CISO Career Transition Survival Guide
kanny
3
1k
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
210
N=1から解き明かすAWS ソリューションアーキテクトの魅力
kiiwami
0
130
データの品質が低いと何が困るのか
kzykmyzw
6
1.1k
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
GitHub's CSS Performance
jonrohan
1030
460k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Code Review Best Practice
trishagee
67
18k
A Philosophy of Restraint
colly
203
16k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
How STYLIGHT went responsive
nonsquared
98
5.4k
Building Adaptive Systems
keathley
40
2.4k
Building Your Own Lightsaber
phodgson
104
6.2k
Documentation Writing (for coders)
carmenintech
67
4.6k
BBQ
matthewcrist
87
9.5k
Transcript
Traffic Management with Istio ( with Demo ) 2019/08/08 Cloud
Native FUKUOKA #02 loftkun
About me • @loftkun • ヤフー株式会社 SRE部 • 将棋好き •
対局結果検索サイトなど公開してます • ⾳楽好き • ROCK IN JAPAN FESTIVAL ⾏きます • ピアノ習いたい • コンテナ好き、k8sは前職で使ってた、現職でも使いたい
My k8s Environment
Machine CPU Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz 6Core/12Threads RAM
64GB OS Ubuntu 17.10 k8s minikube v1.2.0 ( Kubernetes v1.15.0 ) assign 12cpu & 40GB RAM kubectl v1.15.0 istio v1.2.2 helm v2.14.1
minikube start vm-driver=virtualbox Container VM ( Node ) Minikube BareMetal
ssh -fNL 12345:192.168.99.100:12345
[email protected]
192.168.3.5 grafana service のnodePortが12345の場合 http://localhost:12345 でアクセスできるぞ 192.168.99.100 192.168.3.4 Minikube ssh でログイン可能
minikube start vm-driver=none Container Minikube BareMetal 192.168.3.5 ( Node )
grafana service のnodePortが12345の場合 http://192.168.3.5:12345 でアクセスできるぞ 192.168.3.4 tcpdump –i docker0 全Pod間の通信をキャプチャできるぞ
Agenda Introduction How to use Bookinfo Traffic Management
Introduction What is Istio?
https://istio.io/ • サービスメッシュを構成するOSS • CNCF Platinum Member • Proxyコンテナ(Envoy)をSidecarとしてPod内にInjectionしてくれる •
様々な制御をkubectl applyできる(後ほどご紹介) • 便利なOSS同梱 • メトリクス (Prometheus/Grafana) • トレース (Jaeger/Zipkin) • サービスメッシュグラフの可視化(Kiali)
https://github.com/cncf/trailmap
https://github.com/cncf/trailmap
How to use Install à Sidecar Injection à Apply traffic
rules
3 steps Install Sidecar Injection Apply traffic rules
Install Use Helm? $ kubectl apply istio-demo.yaml Cluster has tiller?
$ helm template istio | kubectl apply $ helm install istio Y Y おすすめはHelm使⽤。パラメタ設定が楽。 • incubator/istioはメンテが⽌まってるので使わない • istio.ioのdoc記載の最新版をdownloadして使おう N N
Sidecar Injection Manual istioctl kube-injectコマンドでSidecarを埋め込んだmanifestを出⼒する $ kubectl apply -f <
( istioctl kube-inject -f my-manifests.yaml ) Automatic 対象のnamespaceにラベルを設定しておくだけでOK! $ kubectl label ns my-ns istio-injection=enabled
Apply traffic rules kubectl apply –f my-virtualservice.yaml • VirtualService •
a set of traffic routing rules • 宛先別に様々なruleを設定できる Istio setup is done, Letʼs Traffic Management !
Bookinfo Istioが提供するサンプルアプリ
Architecture https://istio.io/docs/examples/bookinfo/ load balancing ( by reviews service )
Demo
Traffic Management Routing, Fault Injection, etc
Request Routing https://istio.io/docs/examples/bookinfo/
Demo
review v1 (星なし)
Request Routing ( by header ) https://istio.io/docs/examples/bookinfo/
Demo
None
Canary Release に使えそう︕ review v2 (⿊い星)
Fault Injection (delay ) Injected Delay : 7sec https://istio.io/docs/examples/bookinfo/
Demo
None
https://istio.io/docs/examples/bookinfo/
hard-corded Timeout : 10sec Injected Delay : 7sec https://istio.io/docs/examples/bookinfo/
hard-corded Timeout : 3sec Retry : 1 hard-corded Timeout :
10sec Injected Delay : 7sec Chaos Engineering に使えそう︕ https://istio.io/docs/examples/bookinfo/
None
Other Traffic Managements • Traffic Shifting • Circuit Breaking •
Mirroring and more ! https://istio.io/docs/tasks/traffic-management/
Appendix
なぜヨット︖
いろいろ船関連だった Kubernetes 操舵手(ギリシャ語) Helm 舵 tiller 舵柄(かじを操作するレバー) Istio 帆(ギリシャ語) Spinnaker
大きな三角形の帆
Thank you for listening ! 福岡新着ITイベント @ITEventFukuoka
Appendix : commands for demo with my home k8s
ssh config • ~/.ssh/config • ログイン ssh my-k8s
ssh port forwarding INGRESS_HOST=192.168.99.100 INGRESS_PORT=31380 ssh -fNL ${INGRESS_PORT}:${INGRESS_HOST}:${INGRESS_PORT} my-k8s •
ローカルの31380ポートをnode(MinikubeのVM) 内の 31380ポートにforwarding • BookInfoは localhost:31380/productpage で⾒れる
ref • Request Routing • https://istio.io/docs/tasks/traffic-management/request-routing/ • Fault Injection •
https://istio.io/docs/tasks/traffic-management/fault-injection/
Appendix : BookInfo screenshot
review v1のレスポンス
reload
None
review v2のレスポンス(⿊い星)
reload
None
review v3のレスポンス(⾚い星)