kube-proxy
各ノードで動き、KubernetesのService抽象を実現するコンポーネント。仮想的なClusterIP宛のパケットを、iptablesやIPVSのルールでバックエンドのPodのいずれかへ振り分ける。
モードは3つ。userspace(非推奨)、iptables(既定で単純)、ipvs(カーネルレベルで、100個超のServiceで有利)だ。CiliumやCalicoならeBPFでkube-proxyを置き換えられ、性能が上がりiptablesルールの爆発も避けられる。ServiceやEndpointが変わるたびにiptablesを再生成するため、1万を超えるServiceでは再読み込みに数秒かかり、遅延が目立つ。kube-proxyはあくまでパケットの書き換え役で、負荷分散はランダムだ。賢い振り分けが必要ならサービスメッシュの出番になる。