はじめに
先日参加したGoogle Cloud NextでIstioのことが好きになったので、勉強がてらIstioについてまとめてみることにしました。
Istioを構成する各コンポーネント群について
Envoy
- Sidecar proxy
- 通信はこいつが担う
Mixer
- サービスメッシュ内のアクセスコントロールと利用ポリシーを司る
- Envoy proxyや他のIstioサービスからデータを収集する
- Envoyがリクエストからattributeを取得しMixerへ送信してくるので、Mixerが評価を行う
Pilot
- Service Discovery(for Envoy)、Traffic Management(for intelligent routing)、resiliency(ex.timeout)を提供する
- Pilotは高レベルなrouting ruleをEnvoy向けのconfigurationへconvertし、実行時にsidecarへ伝達する
- Pilotはプラットフォーム特有のサービスディスカバリ設定を、Envoyがconsume可能な状態へ変更する
- 上記によりKubernetesやConsul、Nomadなど複数プラットフォームで共通的に動作できる
Citadel
- サービス間、もしくはユーザ間の強力な認証を行う
- Citadelはサービスメッシュ間の通信制御を、L3・L4ではなくアプリケーションレイヤーで行うことができる
Galley
- Istioのconfigurationをpodへ分配する