本文へスキップ
BecomeCoder

Kubernetesコース · 第1章 コンテナからKubernetesへ ― 全体像をつかむ · レッスン5

ワーカーノードの部品 ― kubelet・コンテナランタイム・kube-proxy

ローカル実施

導入

頭脳の指示を受けて実際にコンテナを動かすのがワーカーノードです。各ノードの中にも役割の違う部品があり、主要な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 が通信を捌くという分担です。あなたが直接これらを操作することはほとんどなく、宣言を投げれば裏でこの連携が自動で回ります。