サイドカーに別れを告げよう: Istio のアンビエントモードが v1.22 でベータ版に

レイヤー 4 & レイヤー 7 の機能が両方とも本番環境に対応

2024年5月13日 | Lin Sun - Solo.io、Istio運営委員会および技術監督委員会

本日、Istio の革新的な新しいアンビエントデータプレーン モードがベータ版になりました。アンビエントモードは、運用の簡素化、より広範なアプリケーション互換性、およびインフラストラクチャコストの削減を目的として設計されています。ゼロトラストセキュリティ、テレメトリ、およびトラフィック管理という Istio のコア機能を維持しながら、インフラストラクチャに統合されたサイドカーレスのデータプレーンを提供します。

アンビエントモードは、2022年9月に発表されました。それ以来、私たちのコミュニティは、Solo.io、Google、Microsoft、Intel、Aviatrix、Huawei、IBM、Red Hat、その他多くの企業からの貢献を得て、20か月間ハードワークとコラボレーションを行ってきました。1.22 でのベータステータスは、アンビエントモードの機能が適切な予防措置を講じた上で、本番環境のワークロードに対応できるようになったことを示しています。これは、サイドカーなしでレイヤー4とレイヤー7の両方のメッシュ機能を本番環境対応にすることに成功した、Istio にとって大きなマイルストーンです。

アンビエントモードを選択する理由

Istio ユーザーからのフィードバックを聞くと、アプリケーションのメッシュ機能に対する需要が高まっている一方で、多くの人がサイドカーのリソースオーバーヘッドと運用上の複雑さを克服するのが難しいと感じていることがわかりました。サイドカーユーザーが共有した課題には、サイドカーを追加した後に Istio がどのようにアプリケーションを壊してしまう可能性があるか、サイドカーによる CPU とメモリの大規模な消費、および新しいプロキシリリースごとにアプリケーションポッドを再起動する必要性の不便さなどがあります。

コミュニティとして、私たちはアンビエントモードを設計してこれらの問題に取り組み、サービスメッシュの実装を検討しているユーザーが以前に直面していた複雑さの障壁を軽減しました。新しい機能セットは、アプリケーションに対して透過的になるように設計され、採用するために追加の構成は必要なく、ユーザーがアプリケーションを再起動する必要もないことから「アンビエントモード」と名付けられました。

アンビエントモードでは、メッシュへのアプリケーションの追加または削除は簡単です。今では、単に名前空間にラベルを付けるだけで、その名前空間内のすべてのアプリケーションがメッシュに追加されます。これにより、サイドカーやアプリケーションを再起動する必要なしに、すべてのトラフィックが mTLS によって直ちに保護されます。

アンビエントモードを構築した理由の詳細については、アンビエントメッシュ紹介ブログを参照してください。

アンビエントモードはどのように導入を容易にするのか

Istio のアンビエントモードは、軽量で共有のレイヤー4(L4)ノードプロキシとオプションのレイヤー7(L7)プロキシを導入し、データプレーンから従来のサイドカープロキシの必要性を排除します。アンビエントモードの背後にある中核的なイノベーションは、L4 および L7 処理を2つの異なるレイヤーに分割することです。この階層化されたアプローチにより、メッシュなしから安全なオーバーレイ(L4)への移行、および必要に応じてフリート全体にわたるオプションのフルL7処理への移行を、名前空間ごとに必要に応じて徐々に Istio を採用できます。

アンビエントモードは、既存の Kubernetes デプロイメントに変更を加えることなく機能します。名前空間にラベルを付けて、そのワークロードをすべてメッシュに追加することも、必要に応じて特定のデプロイメントを選択することもできます。アンビエントモードを利用することで、ユーザーは以前のサイドカーモデルの制限的な要素の一部を回避できます。サーバー送信優先プロトコルが機能するようになり、ほとんどの予約済みポートが使用可能になり、コンテナが (悪意を持ってかどうかにかかわらず) サイドカーをバイパスする能力が排除されます。

軽量で共有のL4ノードプロキシは、ztunnel(ゼロトラストトンネル)と呼ばれています。Ztunnel は、予想される負荷を処理するためにクラスタ内でメモリと CPU を過剰にプロビジョニングする必要性を排除することで、メッシュを実行するオーバーヘッドを大幅に削減します。一部のユースケースでは、暗号化 ID を持つ相互 TLS によるゼロトラストセキュリティ、単純な L4 認証ポリシー、およびテレメトリを提供しながら、90%以上の節約になる可能性があります。

L7プロキシは、ウェイポイントと呼ばれています。ウェイポイントは、トラフィックルーティング、リッチな認証ポリシーの適用、エンタープライズグレードの復元力などのL7機能を処理します。ウェイポイントはアプリケーションのデプロイメントの外部で実行され、名前空間全体または名前空間内の複数のサービスに対して、ニーズに基づいて独立してスケーリングできます。サイドカーと比較して、アプリケーションポッドごとに 1 つのウェイポイントは必要なく、そのスコープに基づいてウェイポイントを効率的にスケーリングできるため、ほとんどの場合、CPUとメモリを大幅に節約できます。

L4セキュアオーバーレイレイヤーとL7処理レイヤーの分離により、以前のバイナリ「オールイン」サイドカーインジェクションとは対照的に、アンビエントモードのデータプレーンを段階的に導入できます。ユーザーは、Istio をデプロイする人の大部分が利用する機能(mTLS、認証ポリシー、テレメトリ)を提供するセキュアなL4オーバーレイから始めることができます。再試行、トラフィック分割、ロードバランシング、オブザーバビリティの収集などの複雑なL7処理は、ケースバイケースで有効にすることができます。

ベータ版の範囲

テスト環境で検証した後、適切な予防措置を講じた上で、本番環境でアンビエントモードの次のベータ機能を検討することをお勧めします。

アルファ機能

アンビエントモードに含めたい他の多くの機能が実装されていますが、このリリースではアルファステータスのままです。それらをテストして、1.23以降でベータ版に昇格できるようにご協力ください。

ロードマップ

アンビエントモードではまだ実装されていないが、今後のリリースで計画されている機能が多数あります。

サイドカーはどうなるのか?

サイドカーはなくならず、Istio では引き続きファーストクラス市民です。引き続きサイドカーを使用できます。これらは完全にサポートされます。アンビエントモードのアルファまたはベータスコープ外の機能については、その機能がアンビエントモードに追加されるまで、サイドカーモードの使用を検討する必要があります。ソースラベルに基づいたトラフィックシフトなど、一部のユースケースは引き続きサイドカーモードを使用するのが最適です。ほとんどのユースケースではアンビエントモードのメッシュが最適になると考えていますが、Istio プロジェクトは継続的なサイドカーモードのサポートに取り組んでいます。

今すぐアンビエントモードをお試しください

Istio の 1.22 リリースとアンビエントモードのベータリリースにより、独自のワークロードで Istio を試すことがこれまでになく簡単になりました。入門ガイドに従ってアンビエントモードを試すか、新しいユーザーガイドを読んで、相互TLSとL4認証ポリシー、トラフィック管理、リッチなL7認証ポリシーなどを段階的に採用する方法を学んでください。ご不明な点がございましたら、Istio Slack の #ambient チャンネルで開発者と交流したり、GitHub のディスカッションフォーラムをご利用ください。

この投稿を共有する