Kubernetes — 大量のコンテナを自動で束ねる指揮者

中級の解説は準備中のため、中級の内容を表示しています。

概要 — まず全体をつかむ

初級では Kubernetes を「大量のコンテナを束ねる指揮者」と捉えました。中級では、その指揮者が使う 部品の名前 と、なぜ勝手に直り続けるのか=宣言的管理 の中身を見ます。

詳細 — 1段階ずつ追う

これは何をする係?

Kubernetes の世界は、いくつかの部品が層になってできています。

  • Pod(※1)— コンテナを載せる 最小単位。中に1つ以上のコンテナが入る
  • ノード(※2)— Pod を実際に載せる 1台のサーバ
  • クラスタ — ノードを束ねた サーバ群 全体
  • Deployment — 「この Pod を◯個保って」という あるべき状態の宣言
  • Service — 変わり続ける Pod 群に対する 安定した入口負荷分散つき)
アニメーション『Kubernetesの自己修復とオーケストレーション』を開く
コントロールプレーン(指揮者)望む状態と実状態の差を絶えず埋める=自己修復・スケールノードAPodを載せる1台のサーバノードBPodを載せる1台のサーバPodコンテナアプリの最小単位新しいPodコンテナ自己修復で起動Podコンテナアプリの最小単位Podコンテナアプリの最小単位別ノードに立て直す障害で停止Service安定した入口/負荷分散Podが入れ替わっても入口は変わらない指揮者が「望む状態」に実状態を寄せ続ける(落ちたら立て直し、混んだら増やす)

登場人物メモ:

  • ※1 Pod — コンテナの最小単位。K8sが数える・並べる基本のかたまり
  • ※2 ノード — Podを載せる1台のサーバ(物理でも仮想でもよい)
  • ※3 レプリカ — 同じPodの複製。数を増減してスケールする

仕事の流れ

  1. Deployment に 望む状態(例 この Pod を3個)を書く
  2. K8s が空いているノードへ Pod を 配置 する
  3. 実状態を絶えず見て、望む状態との差 を計算する
  4. 足りなければ起こし、余れば止めて、差をゼロに寄せ続ける

利用者からのアクセスは Service が受け、生きている Pod 群へ振り分けます。個々の Pod が入れ替わっても、入口は変わりません。

宣言的管理と自己修復

Kubernetes の核心は 宣言的管理 です。「どう起動するか(手順)」ではなく「どうあってほしいか(状態)」を書きます。

  • K8s は 望む状態実際の状態 を常に比べる
  • ズレていれば、実状態を望む状態へ 寄せる(作る/消す)
  • だから Pod が落ちても、ノードが壊れても、放っておいても元に戻る

この「常に比べて、ズレを埋める」動きは 調整ループ(reconcile loop)と呼ばれ、差がゼロになるまで、そしてゼロになった後も回り続けます。

アニメーション『Kubernetesの調整ループ(観測→差分→修正)』を開く
望む状態(宣言)コントローラ実状態(クラスタ)
  • 望む状態(宣言)「Podを3個保って」など、あってほしいゴールを書いたもの。手順ではなく状態を宣言する
  • コントローラ望む状態と実状態を絶えず突き合わせ、差を埋める指揮役
  • 実状態(クラスタ)いま実際に動いているPod群。落ちたり増えたりで刻々と変わる
このループはずっと回り続けます。Podが落ちても、宣言を書き換えても、コントローラが差を見つけて実状態を望む状態へ寄せ直します。「▶ 再生」か「次へ」でどうぞ。
0 / 5

スケール も同じ理屈です。「レプリカ(※3)を3→10に」と宣言を書き換えるだけで、K8s が差を埋めて7個増やします。手順を打つのではなく、ゴールを更新する だけ——これが自動運用の正体です。

⚠️ うまくいかないとき

  • 望む状態の書き間違い — レプリカ数や資源上限を誤ると、増えすぎ・足りずが起きる
  • ノード不足 — 載せる先が満杯だと、Pod が待機のまま起動できない
  • 状態を持つアプリ — Pod は使い捨て前提。DBのような消えて困るデータは外部へ預ける
  • 入口の設計漏れ — Service を用意しないと、入れ替わる Pod に安定してつながれない

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. Kubernetesの「宣言的管理」とは何を意味する?

2. Podが増えたり入れ替わったりしてもアクセス先を安定させる役割はどれ?

3. Kubernetesで「コンテナを載せる最小単位」を指すのはどれ?

4. Deploymentの役割として正しいのはどれ?

5. 稼働数をレプリカ3から10に増やしたいとき、中級本文が説明する正しいやり方はどれ?

6. 載せる先のノードが満杯のとき、Podはどうなるか?

7. 望む状態と実状態を常に比べ、ズレを埋め続けるKubernetesの中核動作を、日本語で何と呼ぶ?

8. 同じPodの複製で、数を増減してスケールする単位を何と呼ぶ?(カタカナ)