Member-only story
サービスメッシューそのツールとトレンド2021(後半)
Sep 10, 2021
サービスメッシュのツールを色々ご紹介いたします。長い記事なので2つに分けて投稿致します。今回は後半です。
Istio
https://istio.io/ , https://github.com/istio/istio
Istioはフル機能を備えたヘビーウェイト・サービス・メッシュです。
Envoyのプロキシをサイドカーとして使用し、データプレーンですべての作業を行います。istiodと呼ばれるコントロール・プレーンは、次のように構成されています。
- Pilot は、プラットフォーム固有のサービス発見メカニズムをアブストラクトし、Envoy API に準拠するあらゆるサイドカーが利用できる標準フォーマットに統合します。Pilot は、認証ポリシーとセキュアなネーミング情報をプロキシに配布します。そのため、サービスディスカバリーを提供するだけでなく、カナリアやリトライなどのトラフィック管理機能も実装しています。
- 鍵と証明書の管理にはCitadelを使用しています。また、Citadelは各証明書の有効期限を監視し、Kubernetesのシークレットを書き換えることで証明書を自動的にローテーションします。つまり、サービス間のmTLSを可能にするアイデンティティとセキュリティの機能を提供するのです。
- Galleyは、コンポーネントをアブストラクトし、コンフィグレーションが利用できます。
- Mixer は、アクセスコントロールと使用ポリシーを実施します。また、プロキシからテレメトリを収集します。Mixer は、IstioコンポーネントやIstioベースのサービスと、アクセス制御チェックや遠隔測定の実行に使用されるインフラストラクチャ・バックエンドとの間に、豊富な中間層を提供します。このレイヤーにより、オペレーターはサービスのバイナリに変更を加えることなく、サービスの動作をきっちりと洞察でき、コントロールできるようになります。また、Mixerがカスタムアダプタによる拡張性に優れているのはそのためです。
Istio を選択する場合
- 豊富な機能と拡張性が必要である
- メッシュの拡張は、Kubernetes以外の仮想・物理サーバ上でも可能である
- マルチメッシュ、マルチクラスター、マルチネットワークなど、多様なデプロイメントモデルが必要である
Linkerd