導入
頭脳の指示を受けて実際にコンテナを動かすのがワーカーノードです。各ノードの中にも役割の違う部品があり、主要な3つ――kubelet・コンテナランタイム・kube-proxy――が連携して働きます。
説明
ワーカーノードの中では、次の3つが動いています。
- kubelet(キューブレット) … そのノードに常駐する現場の代理人。コントロールプレーンから「この Pod を動かして」と受け取り、実際にコンテナを起こし、生きているかを見張り、状態を API Server に報告します。ノードとコントロールプレーンの連絡係です。
- コンテナランタイム(container runtime) … 実際にコンテナを実行する土台のソフトウェア(containerd(コンテナディー)などが代表)。kubelet が「起こして」と頼み、コンテナを実際に走らせるのはこの層です。
- kube-proxy(キューブ・プロキシ) … ノード上の通信の交通整理。後の章で出てくる Service 宛ての通信を、適切な Pod へ振り分けます(ネットワークのルーティング担当)。
graph TB
CP[コントロールプレーン] -- この Pod を動かして --> KL
subgraph node["ワーカーノード"]
KL[kubelet<br/>現場の代理人] -- 起こして --> CR[コンテナランタイム<br/>containerd 等]
CR --> C1[コンテナ]
CR --> C2[コンテナ]
KP[kube-proxy<br/>通信の交通整理] -. 通信を振り分け .-> C1
KP -. 通信を振り分け .-> C2
end
KL -- 状態を報告 --> CP
まとめると、頭脳(コントロールプレーン)が決め、各ノードの kubelet が受けて、コンテナランタイムが実行し、kube-proxy が通信を捌くという分担です。あなたが直接これらを操作することはほとんどなく、宣言を投げれば裏でこの連携が自動で回ります。