inductor's blog

nothing but self note :)

2020年におけるIstioサービスメッシュの現状(翻訳記事)

2020年におけるIstioサービスメッシュの現状

訳注: この記事は、CNCFのブログポストを日本語に翻訳したものです。

この記事はAlcideのテクニカルマーケティングエンジニア Alon Bergerによって作成されました。

2017年以降、Kubernetesは急成長し、クラウドネイティブコンピューティングのコミュニティ内で重要な役割を果たしてきました。この動きによってマイクロサービスを採用する企業はますます増え、サービス間通信を管理するために専用のソフトウェアが必要であることが認知されるようになりました。

サービスメッシュと、その有力なコントロールプレーンマネージャーの候補であるIstioに入門しましょう。IstioはEnvoyプロキシを中心に構築されたプラットフォームであり、トラフィックの流れを管理、制御、監視し、サービス間の相互接続を保護します。

2019年にCNCFが行ったアンケートによると、Istioは望ましいサービスメッシュプロジェクトとしてチャートのトップに位置しています。

f:id:inductor:20200527090721p:plain

Istioは、明確に強力なサービスメッシュツールとしての地位を確立していますが、依然として比較的複雑な操作と統合の要件を抱えています。

Istioの2020年のロードマップは、アプリケーション開発にマイクロサービスアーキテクチャを採用する企業をサポートすることに尽きます。Istioの最新リリースの主な焦点は、高速化と使いやすさにあります。

何を期待すべきか

Istioは、デプロイされたサービスネットワークの協調制御を容易にするための完全なソリューションです。負荷分散、サービス間認証、監視、レート制限などの複雑な運用要件を活用します。

これを実現するため、Istioはサービスのネットワークを横断する主要な機能として以下のようなコア機能を提供しています。

  • トラフィック管理
  • セキュリティ
  • 可観測性
  • プラットフォームサポート
  • 統合性とカスタマイズ性

最新のリリースでは、予想されていたいくつかの改善とともに、これらの機能も強化されています。

2019年、Istioのビルドとテストの基盤は大幅に改善され、その結果、高品質なリリースサイクルが可能になりました。ユーザー体験の向上に重点が置かれ、より簡単な操作とトラブルシューティング体験を実現するために多くのコマンドが追加されました。

さらに、Istioのチームは、プロダクトコミュニティ内の貢献者が驚くほど成長したとも報告しました。

Mixer Out, Envoy In

Istioの拡張性は、ポリシー制御とtelemetry collection(メトリクスを遠隔計測し、それを収集する機能)の提供を請け負うMixerによって実現されました。これは、メッシュと基盤バックエンド間のすべての相互作用をきめ細かく制御できる仲介レイヤーとして機能します。

追加の依存関係を削除するために、このモデル全体が直接プロキシに移行されるようになったため、遅延が大幅に減少し、全体的なパフォーマンスが大幅に向上しました。最終的にMixerは、Istioのエコシステムの一部として独立したアドオンとなってリリースされる予定です。

Mixerに取って代わる新しいモデルはEnvoyの拡張機能を利用し、より多くの機能と柔軟性への道を開きます。EnvoyにはすでにWebAssemblyランタイムが実装されており、プラットフォームの効率性を高める可能性がありますが、この手の柔軟性をMixerで達成することははるかに困難でした。

この新しいモデルから得られるもう1つの重要なポイントは、サービスをIstioと統合するたびに毎回固有のCRDを使用する必要がないことです。

シンプルになったコントロールプレーン

デプロイ時の可動部分を少なくしたいという要望から、Istioチームは、さまざまなマイクロサービスのデプロイを担当する単一のデーモンとして動作する、新しいシングルバイナリのItiodに移行しました。

このバイナリは、Pilot、Citadel、Galley、サイドカーなど、既知の主要コンポーネントの機能を組み合わせたものです。

このアプローチにより、全体にわたってドメイン内の複雑さが軽減されます。

インストール、継続的なメンテナンス、およびトラブルシューティング作業が、以前のリリースのすべての機能をサポートしながらも、より簡単になります。

さらに、証明書の配布に使用されるノードエージェントの機能は、各Podですでに実行されているistio-agentに移動され、依存関係がさらに減少します。

以下は、Istioの高レベルアーキテクチャのBefore-Afterです。 違いを見つけられますか?

Before

f:id:inductor:20200527090736p:plain

After

f:id:inductor:20200527090744p:plain

全面的な保護

また、信頼性の高いワークロード識別子、堅牢なアクセス・ポリシー、包括的な監査ログなど、いくつかのセキュリティの基礎を強化することにも重点を置いています。このような要件の絶対的な性質は、チームがこれらの機能のためのAPIの安定化に力を入れることを後押しするものです。

必然的に、ネットワークトラフィックは、mTLSの自動化されたロールアウトの実装や、証明書を配布するより安全な方法を導入し、マシン上で実行されている他のワークロードによる検出のリスクを減らすシークレットディスカバリサービスの活用など、いくつかのセキュリティ強化を必要とします。

これらのアップグレードにより、クラスタ全体のセキュリティポリシーに対する依存性と要件の両方が削減され、システムの堅牢性が大幅に向上します。

2020年にIstioに期待できることは他にもたくさんあります。詳しい情報や追加機能については、こちらのページとIstioのブログをご確認ください。