KubernetesでコンテナをOrchestrate入門
Kubernetes(K8s)は複数のコンテナを自動でデプロイ・スケーリング・管理するオーケストレーションツールです。 Dockerで作ったコンテナを本番環境で安定稼働させるためのデファクトスタンダードとなっています。
主要なリソース
- Pod: コンテナの最小実行単位
- Deployment: Podの宣言的管理・ローリングアップデート
- Service: Podへのネットワークアクセスを提供
- ConfigMap / Secret: 設定値や機密情報の管理
- Ingress: 外部からのHTTPルーティング
Deploymentのマニフェスト例
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: web
image: myapp:latest
ports:
- containerPort: 8080
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
基本的なkubectlコマンド
# リソースの適用
kubectl apply -f deployment.yaml
# Podの状態確認
kubectl get pods
# ログの確認
kubectl logs <pod-name>
# Podに入る
kubectl exec -it <pod-name> -- /bin/sh
まとめ
Kubernetesは学習コストが高いですが、スケーラブルなサービス運用には強力なツールです。 まずminikubeやkindでローカル環境を構築し、基本概念を手を動かして学ぶのが効果的です。