概要
1000以上のエンドポイントを持つ「ラージクラスターモード」で動作するkube-proxyが、定期的なフルシンク(全ルールの照合・再適用)を行わないように変更されました。大規模クラスターのパフォーマンス向上が目的です。
背景・前提知識
kube-proxyとは: Kubernetesの各ノードで動くコンポーネントで、ServiceリソースのIPアドレス宛のパケットを適切なPodへ転送するためのルール(iptablesやipvsのルール)を管理します。
フルシンクとは: kube-proxyは通常、データプレーン(実際のネットワークルール)が「あるべき状態」からズレていないかを定期的にチェックするため、全ルールを照合・再適用する「フルシンク」を行います。これは「万が一ズレていた場合の修復」のための安全策です。
ラージクラスターモード: エンドポイントが1000を超えるとkube-proxyは自動的にこのモードに切り替わり、すでにいくつかのパフォーマンス最適化が有効になっています。
詳細
フルシンクは「念のための照合」であり、通常のイベント駆動型の同期とは別に走ります。大規模クラスターでは管理するルールの数が膨大なため、このフルシンクのコストが無視できなくなります。
ラージクラスターモードでは、イベント駆動型の同期が正常に機能していれば定期フルシンクの必要性が低いため、このモードではフルシンクをスキップするようにしました。
変更量: 追加18行、削除1行(サイズS)
使用例
エンドポイントが1000以上のクラスターを運用している場合、この変更により kube-proxy のCPU使用量と遅延が改善される可能性があります。特別な設定変更は不要で、自動的に適用されます。