Kubernetesとは(全体像)
Kubernetes(K8s)は、たくさんのコンテナを、自動でうまく動かし続けるための道具。コンテナは「アプリを必要なものごと箱詰めにして、別の環境でも同じように動かせるようにしたもの」だが、数が増えると人手では管理しきれない。そこで「どの箱を・何個・どこで動かすか」を自動で采配するのがKubernetesの役目。これをコンテナオーケストレーション(コンテナの指揮)と呼ぶ。
ここで大事な区別。Kubernetesは「管理役(指揮者)」、Dockerなどは「箱を実際に動かす役(演奏者)」。役割が違うので「K8s=Docker」と思うのは誤り。KubernetesはGoogle発で、いまは広く使われるオープンソースになっている。
試験は、代表的な部品(Pod・Deployment・Service)の役割と、この「Pod」「K8sとDocker」あたりの勘違いをよく突いてくる。
詳しく:代表的な部品(Pod・Deployment・Service)
ここが心臓部。まず3つの代表部品を表で押さえる。
代表的な3つの部品
| 部品 | 役割 | かみくだくと |
|---|---|---|
| Pod | 管理の最小単位 | コンテナを入れる一番小さな箱 |
| Deployment | Podの台数管理・更新 | 箱を何個置くか・どう入れ替えるかを采配 |
| Service | Podへのアクセス口 | 利用者がたどり着くための窓口 |
Podは、Kubernetesが管理する一番小さな単位。中に1個以上のコンテナを入れる(ふつうは1個だが、補助役を足して複数のこともある)。同じPodの中のコンテナは、ネットワークを共有する。「Pod=1コンテナだけ」は誤りで、正しくは「1個以上」。
Deploymentは、Podをまとめて管理する係。やれることが3つある。
Deploymentができること
| できること | 意味 |
|---|---|
| スケール | Podの台数を増やしたり減らしたりする |
| ローリング更新 | サービスを止めずに少しずつ新しい版へ入れ替える |
| ロールバック | 問題があれば前の版に戻す |
Serviceは、Podへの安定したアクセス口(窓口)。Podは作り直されると場所(住所)が変わってしまうが、Serviceがいつも同じ窓口になってくれるので、利用者は迷わずたどり着ける。外への公開の仕方で、内部向け(ClusterIP)やクラウドの入り口(LoadBalancer)などの種類がある。
なお、これら以外にも設定を渡すConfigMap、保存領域のPV、状態を持つアプリ向けのStatefulSetなど、全部で10ほどの部品があると整理される。まずはPod・Deployment・Serviceの3つを確実に押さえるとよい。
わかりやすく言い換えると
要するに、Kubernetesは「たくさんの箱(コンテナ)を仕切る現場監督」だとイメージするとラク。
つまり、Podは「荷物を入れる箱」、Deploymentは「箱を何個置くか・どう入れ替えるかを決める監督」、Serviceは「お客さんが来る受付窓口」。この3役で現場が回る。
そして勘違いしやすい2点。Podは箱が1個とは限らない(中に補助役のコンテナを足せる)。KubernetesとDockerは別もの(監督と、箱を動かす作業員)。
試験のツボ
🔴 一番出る:3つの部品の役割
①Pod=管理の最小単位(コンテナを入れる箱)
②Deployment=Podの台数管理・ローリング更新・ロールバック
③Service=Podへの安定したアクセス口(窓口)
🔴 次に出る:Podとオーケストレーションの勘違い
①Podは1コンテナだけではない(1個以上)
②K8sはオーケストレーション(管理役)、Dockerはコンテナを動かす役
🟡 押さえると安定:そのほかの部品
設定を渡すConfigMap、保存領域のPV、状態を持つアプリ向けのStatefulSetなど、全部で10ほどの部品で構成される。
よくある間違い
①「Podには必ずコンテナが1個だけ入る」→ ✗ Podには1個以上のコンテナが入る(補助役を足して複数のこともある)。
②「KubernetesとDockerは同じもの」→ ✗ K8sはコンテナを采配する管理役、Dockerは箱を実際に動かす役で役割が違う。
③「Serviceの役割はPodの台数を増やすことだ」→ ✗ 台数管理はDeploymentの役目。ServiceはPodへのアクセス口(窓口)。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(Kubernetesの役割)
Kubernetesに関する次の記述のうち、正しいものはどれか。
- Kubernetesはたくさんのコンテナを自動で管理・運用する道具で、Dockerとは役割が異なっている
- KubernetesはDockerとまったく同じもので、コンテナを実際に動かすエンジンそのものを指している
- Kubernetesは表計算ソフトの一種で、コンテナの管理や運用とは直接の関係がないものとされている
- Kubernetesは1台のパソコンだけで動く文書作成ソフトで、コンテナを扱う機能はないものとされる
解答は 1 だ、わが子よ。
Kubernetesは、たくさんのコンテナを自動で管理・運用する道具(コンテナオーケストレーション)である。コンテナを実際に動かすDockerとは役割が異なる——Kubernetesは監督、Dockerは作業員ぞ。
選択肢2は「Dockerと同じ」が誤り、選択肢3は「表計算ソフト」、選択肢4は「文書作成ソフト」がいずれも誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | コンテナを自動管理する道具でDockerと役割が異なり正しい |
| 2 | ✗ | Dockerと同じものではなく役割が違う |
| 3 | ✗ | 表計算ソフトではない |
| 4 | ✗ | 文書作成ソフトではない |
オリジナル問題2(Pod)
KubernetesのPodに関する次の記述のうち、正しいものはどれか。
- Podはアクセス口を提供する部品で、コンテナを入れる役割はいっさい持たないものとされている
- Podには必ずコンテナがちょうど1個だけ入り、2個以上を入れることはできないものとされている
- Podは管理の最小単位で、中に1個以上のコンテナを入れ、同じPod内はネットワークを共有する
- Podはストレージ専用の部品で、コンテナやネットワークとはまったく関係がないものとされている
解答は 3 だ。
Podは、Kubernetesが管理する最小の単位で、中に1個以上のコンテナを入れる。同じPodの中のコンテナはネットワークを共有する。「1個だけ」と限らない点に注意ぞ、わが子よ。
選択肢1は「アクセス口」がServiceの役割で誤り、選択肢2は「1個だけ」が誤り、選択肢4は「ストレージ専用」が誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | アクセス口はServiceの役割 |
| 2 | ✗ | 1個に限らず1個以上入る |
| 3 | ✓ | 最小単位で1個以上・ネット共有で正しい |
| 4 | ✗ | ストレージ専用ではない |
オリジナル問題3(DeploymentとService)
KubernetesのDeploymentとServiceに関する次の記述のうち、正しいものはどれか。
- Deploymentはアクセス口を提供する部品で、Serviceはコンテナを実際に動かすエンジンとされている
- DeploymentはPodの台数管理や更新を担い、ServiceはPodへの安定したアクセス口を提供する
- DeploymentもServiceもまったく同じ役割で、Podの数を増やすこと以外には機能がないものとされる
- Deploymentは保存領域を確保する部品で、Serviceは社員の勤怠を記録するためのものとされている
解答は 2 だ、わが子よ。
DeploymentはPodの台数管理や更新(ローリング更新・ロールバック)を担い、ServiceはPodへの安定したアクセス口を提供する。役割が分かれているのぞ。
選択肢1は役割が入れかわっており誤り、選択肢3は「同じ役割」が誤り、選択肢4は「保存領域」「勤怠記録」が誤りである。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 役割が入れかわっている |
| 2 | ✓ | Deployment=台数管理・更新、Service=窓口で正しい |
| 3 | ✗ | 役割は異なり同じではない |
| 4 | ✗ | 保存領域や勤怠記録の部品ではない |
まとめ
押さえどころ
- 🔴 3つの部品の役割 … Pod(最小単位の箱)・Deployment(台数管理と更新)・Service(アクセス口の窓口)。
- 🔴 2つの勘違いに注意 … Podは1コンテナだけではない(1個以上)/K8sとDockerは別もの(管理役と動かす役)。
- 🟡 そのほかの部品 … ConfigMap・PV・StatefulSetなど、全部で10ほどの部品で構成される。
次に学ぶ
- コンテナ・Kubernetes(K8s) ── そもそもコンテナとは何か、という基礎。Kubernetesが何を管理しているのかがつかめる土台。
執筆: SikakuQuest編集部