高速、安全、シンプル:Istioのアンビエントモードがv1.24で一般提供開始
最新のリリースでは、サイドカーレスのサービスメッシュであるアンビエントモードが、すべての方に利用できるようになりました。
Istioのアンビエントデータプレーンモードが、ztunnel、waypoints、APIがIstio TOCによってStableとしてマークされたことで、一般提供開始になったことを誇りに思います。これはIstioの機能段階推移における最終段階であり、アンビエントモードが幅広い本番環境での使用に完全に準備が整ったことを示しています。
アンビエントメッシュとそのIstioのアンビエントモードによる参照実装は、2022年9月に発表されました。それ以来、コミュニティはSolo.io、Google、Microsoft、Intel、Aviatrix、Huawei、IBM、Red Hat、その他多くの企業からの貢献により、26ヶ月にわたる懸命な作業と協力を続けてきました。1.24でのStableステータスは、アンビエントモードの機能が幅広い本番ワークロードに完全に対応できるようになったことを示しています。これはIstioにとって大きなマイルストーンであり、サイドカーなしでIstioを本番環境に対応させ、ユーザーに選択肢を提供します。
なぜアンビエントメッシュなのか?
2017年のIstioのローンチ以来、アプリケーションに対するメッシュ機能の明確かつ増大する需要が見られました。しかし、多くのユーザーがサイドカーのリソースオーバーヘッドと運用上の複雑さを克服するのが難しいと感じていることも認識していました。Istioユーザーから共有された課題には、サイドカーの追加後にアプリケーションが破損する可能性、すべてのワークロードでプロキシに必要なCPUとメモリの大量消費、新しいIstioリリースごとにアプリケーションポッドを再起動する必要性の不便さなどが含まれます。
コミュニティとして、これらの問題に対処するためにアンビエントメッシュをゼロから設計し、サービスメッシュを実装しようとするユーザーが直面していた複雑さの以前の障壁を軽減しました。この新しい概念は、ユーザーワークロードに配置されたプロキシインフラストラクチャがなく、オンボードに必要な構成の微妙な変更がなく、アプリケーションの再起動も必要ないため、アプリケーションに対して透過的であるように設計されていることから「アンビエントメッシュ」と名付けられました。アンビエントモードでは、メッシュへのアプリケーションの追加や削除は簡単です。名前空間にラベルを付けるだけで、その名前空間内のすべてのアプリケーションがメッシュに即座に追加されます。これにより、業界標準の相互TLS暗号化を使用して、その名前空間内のすべてのトラフィックがすぐに保護されます。他の構成や再起動は必要ありません!アンビエントメッシュの紹介ブログで、Istioのアンビエントモードを構築した理由の詳細をご覧ください。
アンビエントモードはどのように導入を容易にするのか?
アンビエントメッシュの背後にある中核的なイノベーションは、レイヤー4(L4)とレイヤー7(L7)の処理を2つの異なるレイヤーに分割することです。Istioのアンビエントモードは、軽量で共有されたL4ノードプロキシとオプションのL7プロキシによって実現されており、データプレーンから従来のサイドカープロキシを排除します。この階層化されたアプローチにより、Istioを段階的に採用し、メッシュなし、セキュアオーバーレイ(L4)、オプションの完全なL7処理へのスムーズな移行を必要に応じて、フリート全体の名前空間単位で実現できます。
アンビエントメッシュを利用することで、ユーザーはサイドカーモデルの以前の制限的な要素を回避します。サーバー送信優先プロトコルが機能するようになり、ほとんどのリザーブポートが利用できるようになり、コンテナがサイドカーをバイパスする(悪意のある場合とそうでない場合の両方)ことが排除されます。
軽量な共有L4ノードプロキシは、ztunnel(ゼロトラストトンネル)と呼ばれます。ztunnelは、クラスタ内で予想される負荷を処理するためにメモリとCPUを過剰にプロビジョニングする必要性を排除することにより、メッシュを実行するオーバーヘッドを大幅に削減します。場合によっては、節約できる量は90%を超える可能性があり、それでも暗号化されたIDを使用した相互TLS、シンプルなL4承認ポリシー、およびテレメトリを使用してゼロトラストセキュリティを提供します。
L7プロキシは、waypointsと呼ばれます。ウェイポイントは、トラフィックルーティング、高度な承認ポリシーの施行、エンタープライズグレードのレジリエンスなどのL7機能を処理します。ウェイポイントはアプリケーションのデプロイメントの外側で実行され、必要に応じて独立してスケーリングできます。これは、名前空間全体または名前空間内の複数のサービスに対して行うことができます。サイドカーと比較して、アプリケーションポッドごとにウェイポイントを1つ必要とせず、スコープに基づいてウェイポイントを効果的にスケーリングできるため、多くの場合、CPUとメモリの消費量を大幅に削減できます。
L4セキュアオーバーレイレイヤーとL7処理レイヤーの分離により、以前のサイドカーのバイナリ「オールイン」インジェクションとは対照的に、アンビエントモードデータプレーンの段階的な採用が可能になります。ユーザーはセキュアなL4オーバーレイから開始できます。これは、人々がIstioをデプロイする理由のほとんどの機能(mTLS、承認ポリシー、およびテレメトリ)を提供します。リトライ、トラフィック分割、ロードバランシング、オブザーバビリティの収集などの複雑なL7処理は、必要に応じてケースバイケースで有効にすることができます。
アンビエントモードの迅速な調査と採用
Docker Hubのztunnelイメージは、100万ダウンロードを超えました。過去1週間だけでも約63,000回プルされています。
アンビエントモードのGAについて、いくつかのユーザーの意見を聞いてみました
範囲内にあるもの
アンビエントモードの一般提供開始により、以下のものが安定版と見なされるようになりました。
- アンビエントモードをサポートするIstioのインストール(Helmまたは
istioctl
を使用)。 - ワークロードをメッシュに追加することで、暗号化されたIDによる相互TLS、L4承認ポリシー、およびテレメトリを取得します。
- ウェイポイントの構成により、トラフィックシフト、リクエストルーティング、高度な承認ポリシーの施行などのL7機能を使用します。
- アンビエントモードのワークロードにIstioイングレスゲートウェイを接続し、Kubernetes Gateway APIと既存のすべてのIstio APIをサポートします。
- 制御されたメッシュイグレスにウェイポイントを使用する
istioctl
を使用してウェイポイントを操作し、ztunnelとウェイポイントのトラブルシューティングを行う。
詳細については、機能ステータスページを参照してください。
ロードマップ
私たちは現状維持していません!今後リリースされる機能には、現在アルファ版/ベータ版であるものも含め、多くの機能があります。
今後のリリースでは、アンビエントモードへの以下の拡張機能を迅速に進めていく予定です。
- サイドカーモードとアンビエントモードの相互運用性の完全サポート
- マルチクラスタインストール
- マルチネットワークサポート
- VMサポート
サイドカーはどうなりますか?
サイドカーは廃止されず、Istioにおいても第一級の市民権を維持しています。引き続きサイドカーを使用でき、完全なサポートが継続されます。ほとんどのユースケースはアンビエントモードのメッシュで最適に処理されると考えていますが、Istioプロジェクトはサイドカーモードの継続的なサポートにコミットしています。
今すぐアンビエントモードを試してみましょう
Istio 1.24のリリースとアンビエントモードのGAリリースにより、独自のワークロードでIstioを試すのがこれまで以上に簡単になりました。
- 入門ガイドに従って、アンビエントモードを探索してください。
- 相互TLSとL4認可ポリシー、トラフィック管理、高度なL7認可ポリシーなどを含め、アンビエントを段階的に導入する方法については、ユーザーガイドを参照してください。
- メッシュを可視化するには、新しいKiali 2.0ダッシュボードをご覧ください。
ご質問がありましたら、Istio Slackの#ambientチャンネルで開発者と交流するか、GitHubのディスカッションフォーラムをご利用ください。