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
Istio
Search
Masaki Iino
February 09, 2018
Technology
0
1.6k
Istio
AnyPay社内LT用資料
Istioの簡単な説明とBookinfoを使ったrouting変更のデモを載せています
Masaki Iino
February 09, 2018
Tweet
Share
More Decks by Masaki Iino
See All by Masaki Iino
GCP Composer
iinomasaki
0
240
AnyPay ChatOps
iinomasaki
0
1.2k
GolangでAPIドキュメント自動生成
iinomasaki
0
720
LT_Cloud_Functions.pdf
iinomasaki
1
570
Other Decks in Technology
See All in Technology
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
360
Operating Operator
shhnjk
1
580
united airlines ™®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedhelp
1
300
Delegating the chores of authenticating users to Keycloak
ahus1
0
140
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
7
5.2k
関数型プログラミングで 「脳がバグる」を乗り越える
manabeai
1
190
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
400
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
120
ゼロからはじめる採用広報
yutadayo
3
910
Flutter向けPDFビューア、pdfrxのpdfium WASM対応について
espresso3389
0
130
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
120
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
2
21k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
The Language of Interfaces
destraynor
158
25k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Practical Orchestrator
shlominoach
189
11k
A better future with KSS
kneath
238
17k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Transcript
Istio 2018/02/09 Iino Masaki
Istio IstioはK8sと同様にCNCFがホストする OSSであり、マイクロサービスにおける複 雑なネットワークで発生する課題を解決 する 主な機能 • ロードバランシング • 動的なルーティング
• リトライ制御 • サーキットブレイカー • サービス間認証 • モニタリング... https://istio.io/
Traffic Management Istioを使うとこんなことができる 図の上部①と② 1. Pod1~3へのラウンドロビン 2. Trafficの95%をPod1~3のラウン ドロビンにし、5%をPod4へ 図の下部①と②
1. Pod1~3へのラウンドロビン 2. UAがAndroidであればPod1へ、 iPhoneであればPod4へ、その他 はラウンドロビンにする
Acrchitecture
Envoy サービスメッシュのイン/アウトバウントの 全てのトラフィックを管理するプロキシ サーバ。各サービスにサイドカーとしてデ プロイします。 引用:https://istio.io/docs/concepts/what-is-istio/overview.html
Mixer Envoyから各サービスのデータを収集し、 サービスメッシュ全体のアクセス制御をや ポリシーをコントロールするプラットフォー ムに依存しないコンポーネントです。プラ グインモデルを取っており、柔軟なカスタ マイズが可能です。 引用:https://istio.io/docs/concepts/what-is-istio/overview.html
Pilot サービスディスカバリやトラフィック管理を 担当。Kubernetesの場合、サービスディ スカバリはWatch APIによるEnvoyのス テータス変更を検知することで実現してい ます。 引用:https://istio.io/docs/concepts/what-is-istio/overview.html
Istio-Auth KubernetesのService Accountを利用し たユーザ認証や、サービス間のTLS相互 認証を行います。この認証を利用するこ とで、ポリシーベースでサービスメッシュ を管理することができます。また、将来的 には属性・ロールベースでのアクセス制 御などが追加される予定です。 引用:https://istio.io/docs/concepts/what-is-istio/overview.html
Demo
Bookinfo • Istio公式サンプル ◦ https://istio.io/docs/guides/bookinfo.html ◦ 4つのPodで構成されたマイクロサービスなアプリケーション ◦ Ver0.5を使用:https://github.com/istio/istio/releases/tag/0.5.0 •
プラットフォームにGKEを使用 ◦ https://cloud.google.com/kubernetes-engine/docs/tutorials/istio-on-g ke
Bookinfo • オンラインブックストアを模したものである • 本に関する情報を掲載 ◦ 書籍説明、ISBN・ページ数、レビュー
Bookinfo
Bookinfo without Istio • Product Page ◦ DetailsとReviewsを呼び 出し商品情報に埋め込む •
Details ◦ 書籍情報 • Reviews(v1-v3) ◦ 書籍レビュー ◦ v1: rating無し ◦ v2: ratingを黒い★で表示 ◦ v3: ratingを赤い★で表示 • Ratings ◦ 書籍評価 引用:https://istio.io/docs/guides/bookinfo.html
Bookinfo with Istio • 各サービスにEnvoyをサイドカーコ ンテナとしてデプロイ • Envoyが全ての通信をプロキシす る •
インバウンドだけでなく、アウトバ ウンドも管理できる 引用:https://istio.io/docs/guides/bookinfo.html
Install Istio • リリースページからIstioのパッケージをDL • 展開してディレクトリ内に移動 • GKEにIstioをデプロイ ◦ export
PATH=$PWD/bin:$PATH ◦ kubectl apply -f install/kubernetes/istio-auth.yaml
Deploy Bookinfo • BookinfoとIstioの機能を一緒にデプロイ ◦ kubectl apply -f <(istioctl kube-inject
-f samples/bookinfo/kube/bookinfo.yaml)
Confirm Bookinfo • curl -I http://{ADDRESS}/productpage ◦ もしくは、open http://{ADDRESS}/productpage •
Bookinfoが表示される • アクセスする度にラウンドロビンでレーティング表示が変化
RouteRule Match cookieに`user=review-2`を含んでいれ ば、リクエストをReviews-v2に固定する istioctl create -f samples/bookinfo/kube/route-rule-revi ews-cookie-1.yaml
RouteRule Match cookieに`user=review-2`を含んでいれ ば、リクエストをReviews-v2に固定する 引用:https://istio.io/docs/guides/bookinfo.html
まとめ Kubernetesへ組み込みが簡単で、手軽に動作検証することができました。 Nginxと役割が重なる部分もありますが、動的に反映できる点やアウトバウンド制御 でき、より高度なコントロールを可能にしてくれると思います。 今回紹介しなかった、トレーシングダッシュボードであるZipkinやJaegerと組み合わ せるとさらに便利になるでしょう。 今後がとても楽しみなプロダクトでした。