なぜKubernetesが必要なのか
Dockerでコンテナを作れるようになった次のステップは、大量のコンテナを自動で管理することです。Kubernetes(K8s)は、コンテナのデプロイ・スケーリング・障害回復を自動化するオーケストレーターです。
K8sの主要コンポーネント
| コンポーネント | 役割 |
|---|---|
| Pod | 最小デプロイ単位(1〜複数コンテナ) |
| Deployment | Podの宣言的管理・ローリングアップデート |
| Service | Podへの安定したネットワークアクセス |
| Ingress | 外部HTTPトラフィックのルーティング |
| ConfigMap | 設定値の外部化 |
| Secret | 機密情報の管理 |
基本的なマニフェスト
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:1.0.0
ports:
- containerPort: 8080
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: myapp-svc
spec:
selector:
app: myapp
ports:
- port: 80
targetPort: 8080
type: ClusterIP
よく使うkubectlコマンド
kubectl apply -f deployment.yaml # 適用
kubectl get pods # Pod一覧
kubectl describe pod [pod名] # 詳細確認
kubectl logs [pod名] -f # ログ追跡
kubectl exec -it [pod名] -- bash # コンテナ内に入る
kubectl scale deployment myapp --replicas=5 # スケールアウト
kubectl rollout undo deployment myapp # ロールバック
Helm:パッケージマネージャー
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-postgres bitnami/postgresql --set auth.postgresPassword=secret
学習環境の準備
- minikube:ローカルK8s環境(無料)
- kind(Kubernetes IN Docker):軽量ローカル環境
- GKE / EKS / AKS:マネージドK8s(クラウド)
K8sはインフラエンジニア・SREの必須スキルです。ローカル環境で実際にPodを動かすことから始めましょう。





