RSS Kubernetes ブログ
フォロー
Kubernetes v1.36:サーバーサイドのシャーデッドリストとウォッチ
Kubernetesコントローラーは、特に高カーディナリティのリソースを監視する際に、クラスターサイズが増加するにつれてスケーリングの課題に直面します。クライアントサイドシャーディングは機能的ですが、APIサーバーからのデータ量を削減しないため、非効率性を引き起こします。Kubernetes v1.36でアルファ機能(KEP-5866)として導入されたサーバーサイドシャーディングリストとウォッチは、この非効率性を解消します。APIサーバーは、コントローラーが指定したハッシュ範囲に基づいてイベントをフィルタリングし、各レプリカに関連するデータのみを送信します。コントローラーはインフォーマーを使用してリソースをリストおよびウォッチし、WithTweakListOptionsを介してshardSelectorを組み込みます。shard selectorは、オブジェクトのmetadata.uidまたはmetadata.namespaceに基づいてリソースをフィルタリングするために使用されます。APIサーバーは、shard selectorが正しく適用されたことを確認するために、リスト応答メタデータにshardInfoフィールドを返します。これが存在しない場合、クライアントは完全なフィルタリングされていないコレクションを処理する必要があり、クライアントサイドフィルタリングに頼る可能性があります。この機能には、ShardedListAndWatchフィーチャーゲートを有効にする必要があります。Kubernetesコミュニティは、特に大規模クラスターを管理しているコントローラー作成者やオペレーターからのフィードバックを求めています。このアプローチは、要求の厳しいKubernetes環境におけるコントローラーのパフォーマンスとスケーラビリティを向上させるように設計されています。