最終更新:

【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アーキテクチャのイメージ
🎚 難易度 ★★☆ 中級者向け
⏱ 学習時間の目安 読むだけ15分、minikubeで試すと60分以上
📚 前提知識 docker-getting-started の基礎知識(必須)・linux-getting-started の基礎知識
✅ このガイドで学べること
  • KubernetesとDockerの違いを理解する
  • Pod・Deployment・Serviceの概念
  • kubectlコマンドの基本操作
  • minikubeでのローカル環境構築

kubectlコマンド早見表

# ローカル環境構築(minikube)
brew install minikube       # macOS
minikube start              # クラスター起動
minikube status             # 状態確認
minikube stop               # 停止

# 基本操作
kubectl get pods            # Pod一覧
kubectl get deployments     # Deployment一覧
kubectl get services        # Service一覧
kubectl get all             # 全リソース一覧

# デプロイと管理
kubectl apply -f manifest.yaml   # マニフェスト適用
kubectl delete -f manifest.yaml  # 削除
kubectl describe pod Pod名        # 詳細確認
kubectl logs Pod名                # ログ確認
kubectl exec -it Pod名-- bash    # コンテナにシェルで入る

Deploymentマニフェストの基本

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3          # Pod数
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app
  ports:
  - port: 80
    targetPort: 80
  type: LoadBalancer

よくある詰まりポイント

Q: PodのStatusが CrashLoopBackOff になるkubectl logs Pod名 でログを確認してください。コンテナのプロセスが即時終了している場合(デーモンがなくシェルだけなど)や、環境変数・設定ファイルの不備が原因のことが多いです。

Q: ImagePullBackOff になる → イメージ名またはタグが間違っているか、プライベートレジストリに認証が必要な場合です。kubectl describe pod Pod名 で詳細を確認してください。

Q: minikubeとDockerの違いは? → Dockerは単一ホストでコンテナを動かすツールで、Kubernetesは複数ホスト(クラスター)でコンテナを管理・調整するツールです。minikubeは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つで始められるよ。

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

ここで「minikube start」を実行してみてね(事前にDocker Desktopの起動が必要だよ)。起動に少し時間がかかるけど、「minikube status」でhostとkubeletが「Running」になれば成功だよ!続けて「kubectl get pods -A」でシステムPodが動いているのを確認してみて。

ひよこ ひよこ

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

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

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の基礎が固まってからチャレンジすると理解しやすいね。

次に学ぶなら