本文へスキップ
BecomeCoder

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

Kubernetesとは ― 宣言的・自己修復・スケール

ローカル実施

導入

Kubernetes の核心は「あるべき状態(desired state)を宣言すると、Kubernetes が現実をそこへ合わせ続けてくれる」という考え方にあります。手順を細かく命令するのではなく、結果だけを伝えるのが特徴です。

説明

Kubernetes は Google が社内の大規模コンテナ運用の経験をもとに公開し、いまは中立団体 CNCF(Cloud Native Computing Foundation) が管理するオープンソースソフトウェアです。

その中心思想が 宣言的(declarative) な運用です。ふつうの操作は 命令的(imperative)、つまり「手順」を1つずつ指示します。Kubernetes では逆に、結果(あるべき状態) を YAML というテキストで宣言します。

命令的(手順を指示)宣言的(結果を宣言)
言い方「コンテナを起動せよ→次にこれを…」「Web を3個動かした状態にして」
例え料理の作り方を逐一指示「完成写真」を渡す
ずれたら人間が気づいて直すKubernetes が自動で直す

宣言された「あるべき状態」と「現実」を突き合わせ、差があれば埋めにいく――この繰り返しリコンサイル(reconcile/調整)ループ と呼びます。

flowchart LR
    D["あるべき状態<br/>(YAMLで宣言)<br/>例: Webを3個"] --> C{現実と一致?}
    A["現実の状態<br/>例: いまWebは2個"] --> C
    C -- ずれている --> F[差を埋める<br/>1個追加で起動]
    F --> A
    C -- 一致 --> W[そのまま維持<br/>監視を続ける]
    W --> C

この仕組みから、Kubernetes の代表的な性質が生まれます。

  • 自己修復(self-healing) … コンテナやサーバーが落ちて数が減れば、自動で立て直して数を戻す。
  • 水平スケール(scaling) … 宣言する個数を変えるだけで、コンテナを増減できる。
  • 無停止デプロイ(rolling update) … 新旧を少しずつ入れ替え、サービスを止めずに更新する。
  • サービスディスカバリ(service discovery) … 個々のコンテナの居場所(IP)が変わっても、名前で相手を見つけて通信できる。

「手順」ではなく「あるべき姿」を預ける――これが Kubernetes の一貫した考え方です。