シングルテナント Titus: マルチテナントコンテナプラッ... ノート

シングルテナント Titus: マルチテナントコンテナプラットフォーム上のVMレベル分離

Netflixは、KubernetesベースのプラットフォームであるTitusを利用して、多数のAWSリージョンにわたって毎週数百万のコンテナをホストしています。Titusは、ホスト、クラスター、カーネルのメンテナンスを処理するマネージドコンテナエクスペリエンスを提供します。これはマルチテナンシー向けに設計されており、異なるチームからの多数のコンテナ間でホストを効率的に共有します。しかし、この共有カーネルモデルは、ハードウェアリソースの競合により、要求の厳しいリアルタイムシステムにとって課題となります。これらの問題は、コンテナがcgroupsでは完全に分離できないラストレベルキャッシュやメモリ帯域幅などの物理リソースを共有するために発生します。ノイジーネイバーはこれらの共有リソースを使い果たす可能性があり、パフォーマンスの低下やテールレイテンシの増加につながります。ネットワーク帯域幅とパケット処理、ストレージIOPS、およびさまざまなカーネルレベルの操作も干渉の原因となります。ステートフルで高スループットのストリーミングジョブは、これらの断続的な干渉に対して特に脆弱であり、重大なダウンタイムを引き起こす可能性があります。これに対処するため、Netflixは、継続的な共有カーネルチューニング、microVM、gVisor、およびEC2上で直接コンテナを実行するなど、いくつかの分離戦略を検討しました。共有カーネルチューニングは段階的な改善を提供しますが、共有ハードウェアの構造的な問題を完全に解決しません。microVMとgVisorはより強力な分離を提供しましたが、パフォーマンスのオーバーヘッド、運用の複雑さ、およびハードウェアの制約を伴い、魅力が低下しました。EC2上で直接コンテナを実行すると、運用の負担がアプリケーションチームに戻され、Titusの利点が損なわれます。最終的に、Netflixは、既存のTitusプラットフォームに、特定のワークロード専用のVMを提供するシングルテナントTitusを統合することを選択しました。このアプローチは、使い慣れたTitus APIとマネージドエクスペリエンスを維持しながら、完全なVM分離を提供します。Compute/Platformチームは引き続き基盤となるEC2インスタンスを所有およびパッチ適用し、一貫した運用モデルを保証します。このソリューションは、不要なセキュリティ分離機能や大幅な運用オーバーヘッドを課すことなく、必要なリソースおよびパフォーマンス分離を提供します。
CdXz5zHNQW_ngyUjDeQsk.png