最終更新:

【2026年版】Kubernetesの始め方 — コンテナオーケストレーション入門ガイド


Kubernetes アーキテクチャ kubectl Control Plane API Server Scheduler Controller etcd Worker Node 1 Pod A nginx Pod B app Service Worker Node 2 Pod C api Pod D db Service Worker Node 3 Pod E worker 自動復旧中... Control Plane Pod Service Self-healing
Kubernetesアーキテクチャのイメージ
ひよこ ひよこ

Kubernetesってよく聞くけど、そもそも何をするものなの?

ペンギン先生 ペンギン先生

コンテナをたくさん動かすときに、まとめて管理してくれる仕組みだよ。たとえば100個のコンテナを手作業で起動・停止・監視するのは大変だよね。Kubernetesはそれを自動でやってくれる「コンテナの指揮者」みたいな存在なんだ。略してK8sとも呼ばれるよ。

ひよこ ひよこ

なるほど!でもKubernetesの中にはいろんな用語があって混乱しちゃう…。PodとかServiceとか、最低限どれを覚えればいいの?

ペンギン先生 ペンギン先生

まずは4つ覚えればOKだよ。Podコンテナの最小単位で、1つ以上のコンテナをまとめたもの。Serviceは外部やPod同士の通信窓口。Deploymentは「このPodを何個動かすか」を管理する設定。Namespaceは環境を分けるための仕切りだね。この4つが分かれば基本はバッチリだよ。

ひよこ ひよこ

ローカルで試してみたいんだけど、どうやって環境を作ればいいの?

ペンギン先生 ペンギン先生

一番手軽なのはDocker Desktopの設定画面でKubernetesを有効にする方法だよ。もう少し本格的にやるならminikubeやkindというツールがおすすめ。minikubeは仮想マシン上にクラスタを作ってくれるし、kindはDockerコンテナの中にクラスタを作るから軽量なんだ。どれもコマンド1つで始められるよ。

ひよこ ひよこ

環境ができたら、まず何をすればいいの?

ペンギン先生 ペンギン先生

kubectlというコマンドラインツールを使うよ。まず「kubectl get nodes」でノードが動いているか確認して、「kubectl run my-app --image=nginx」で最初のPodを起動してみよう。「kubectl get pods」で状態を見て、「kubectl describe pod my-app」で詳細を確認する。この流れが基本操作だね。

ひよこ ひよこ

YAMLファイルで設定を書くって聞いたけど、難しくないの?

ペンギン先生 ペンギン先生

最初はちょっと戸惑うけど、パターンが決まっているからすぐ慣れるよ。apiVersion、kind、metadata、specという4つのブロックで構成されていて、kindにDeploymentやServiceを指定して、specに具体的な設定を書く形だね。「kubectl apply -f ファイル名.yaml」で適用できるよ。YAMLを書いてapplyする、この流れがK8sの基本スタイルなんだ。

ひよこ ひよこ

Kubernetesって勝手にコンテナを増やしたり復活させたりするって本当?

ペンギン先生 ペンギン先生

本当だよ!Deploymentでreplicas(レプリカ数)を3に設定すると、常にPodが3つ動くように維持してくれる。もし1つ落ちたら自動で新しいPodを立ち上げてくれるし、「kubectl scale deployment my-app --replicas=5」で手動スケールもできる。HPA(Horizontal Pod Autoscaler)を使えばCPU使用率に応じて自動スケールも可能だよ。

ひよこ ひよこ

学ぶ順番としてはどう進めていくのがいいの?

ペンギン先生 ペンギン先生

おすすめの順番は、まずDockerコンテナの基本を理解して、次にK8sの基礎(Pod・Service・Deployment)を触る。その後HelmというパッケージマネージャーYAML管理を楽にして、最後にAWSのEKSやGCPのGKEなどマネージドK8sに進むといいよ。資格を目指すならCKA(Certified Kubernetes Administrator)が業界標準だね。

ひよこ ひよこ

もっと上級のテーマだと、どんなものがあるの?

ペンギン先生 ペンギン先生

面白いのは3つあるよ。1つ目はOperatorパターンで、アプリ固有の運用知識をK8sに組み込む仕組み。データベースの自動バックアップなんかもOperatorで実現できる。2つ目はIstioなどのサービスメッシュで、Pod間通信の暗号化や細かなトラフィック制御ができるんだ。3つ目はArgoCDによるGitOpsで、Gitリポジトリの状態とクラスタの状態を自動同期させる手法だよ。どれもK8sの基礎が固まってからチャレンジすると理解しやすいね。