K8S VS Docker Compose
Kubernetes(k8s)と docker-compose は、どちらも「複数のコンテナをまとめて動かすためのツール」ですが、スケール・目的・構造が大きく違います。
以下に、わかりやすく比較してみます。
1. 対象レベルの違い
| 項目 | docker-compose | Kubernetes |
|---|---|---|
| 想定スケール | 小規模(ローカルや開発環境) | 大規模(本番環境含むクラスタ) |
| 実行対象 | 1 つのマシン上での複数コンテナ | 複数ノードに分散されたクラスタ |
2. 構成ファイルの違い
docker-compose.yml はシンプルで学習しやすい。
Kubernetes は複数の YAML ファイル(Deployment, Service, ConfigMap など)を使うため、最初はやや複雑。
例(同じアプリの docker-compose):
version: "3"
services:
web:
build: .
ports:
- "5000:5000"
3. スケーラビリティ & 自動復旧
| 機能 | docker-compose | Kubernetes |
|---|---|---|
| スケーリング | 手動スケール(例:docker-compose up --scale web=3) | 自動スケーリングが可能(Horizontal Pod Autoscaler など) |
| 自動復旧 | 基本なし(コンテナ落ちたらそのまま) | Pod が落ちたら自動で再起動・再スケジュールされる |
| ロードバランシング | 自前で設定 | 内部で自動対応(Service がやってくれる) |
4. 開発 or 運用向け
- docker-compose:開発・テスト向け。手軽にコンテナを立ち上げて試すには便利。
- Kubernetes:本番運用向け。大規模サービスの安定運用や自動化に強い。
どちらを使うべき?
- 学習・開発中:まずは docker-compose を使って仕組みを理解。
- 運用・本番環境 or k8s を学びたいなら:Kubernetes を使って構成の理解を深める。
要するに、
docker-compose は「ローカルの友達」 Kubernetes は「本番のプロフェッショナル」
みたいな関係です。 もし、「docker-compose で作ってたアプリを k8s に移行する演習」もやってみたければ、それ用にステップ解説するよ!