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
710
LT_Cloud_Functions.pdf
iinomasaki
1
570
Other Decks in Technology
See All in Technology
GoogleのAI Agent
shukob
0
150
プラットフォームとしての Datadog / Datadog as Platforms
aoto
PRO
1
340
他チームへ越境したら、生データ提供ソリューションのクエリ費用95%削減へ繋がった話 / Cross-Team Impact: 95% Off Raw Data Query Costs
yamamotoyuta
0
250
kintone開発組織のDevOpsへの移り変わりと実践
ueokande
1
150
SmartHRの複数のチームにおけるMCPサーバーの活用事例と課題
yukisnow1823
2
1.2k
KMP導⼊において、マネジャーとして考えた事
sansantech
PRO
1
210
障害を回避するHttpClient再入門 / Avoiding Failures HttpClient Reintroduction
uskey512
1
220
大手企業のAIツール導入の壁を越えて:サイバーエージェントのCursor活用戦略
gunta
23
6.6k
2025advance01
minamizaki
0
130
金融システムをモダナイズするためのAmazon Elastic Kubernetes Service(EKS)ノウハウ大全
daitak
0
130
Contract One Dev Group 紹介資料
sansan33
PRO
0
6k
プロジェクトマネジメント実践論|現役エンジニアが語る!~チームでモノづくりをする時のコツとは?~
mixi_engineers
PRO
3
180
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
The Invisible Side of Design
smashingmag
299
50k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.3k
Agile that works and the tools we love
rasmusluckow
329
21k
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と組み合わ せるとさらに便利になるでしょう。 今後がとても楽しみなプロダクトでした。