kubernetes-deployment-patterns について
Kubernetes の本番デプロイに関する実践的な指針を提供するスキルです。クラウドネイティブアプリを構築・運用するチーム向けに、リリース戦略、ワークロード、設定、リソース管理、自動スケーリング、ヘルスチェックを扱います。
主な機能
- 01ローリング、ブルーグリーン、カナリア戦略の選択
- 02タスクに応じたワークロードの選定
- 03ConfigMaps と Secrets による設定管理
- 04リソース要求・制限と自動スケーリングの設定
- 05ヘルスチェックプローブの構成
活用シーン
- 01デプロイの中断を抑えるアプリ更新の計画
- 02サービス、データベース、バッチ処理向けワークロードの選定
- 03機密設定とコンテナリソースの管理
- 04本番アプリのプローブと自動スケーリングの設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nickcrew/ claude-cortex --skill kubernetes-deployment-patternsインストール後、Claude Code で/kubernetes-deployment-patternsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/configuration-management.mddeployment-strategies.mdproduction-best-practices.mdresource-management.mdworkload-types.md詳細
Kubernetes のデプロイパターン
クラウドネイティブアプリケーションの本番環境向け Kubernetes デプロイについて、デプロイ戦略、ワークロードの種類、構成管理、リソース最適化、自動スケーリングのパターンを専門的に解説します。
このスキルを使用する場面
- デプロイ戦略(ローリングアップデート、ブルーグリーン、カナリアリリース)の実装
- 適切なワークロードの種類(Deployment、StatefulSet、DaemonSet、Job)の選択
- ダウンタイムゼロのデプロイを実現するロールアウト戦略の設計
- ConfigMaps と Secrets による構成管理の実装
- リソース管理と自動スケーリング(HPA、VPA)の設定
- ヘルスチェックとプローブ戦略の構成
- Kubernetes 上での高可用性アプリケーションの設計
- バッチ処理とスケジュールジョブの実装
基本概念
デプロイ戦略
ローリングアップデート: 古い Pod を新しい Pod に段階的に置き換えます(ダウンタイムゼロ、デフォルト) 再作成: 新しい Pod の作成前にすべての古い Pod を終了します(短時間のダウンタイムあり) ブルーグリーン: 2 つの環境を稼働させ、トラフィックを即座に切り替えます(リソースが 2 倍必要) カナリア: 監視しながら新バージョンへトラフィックを段階的に移行します(リスクを軽減)
ワークロードの種類
Deployment: ステートレスアプリケーション(Web サーバー、API、マイクロサービス) StatefulSet: ステートフルアプリケーション(データベース、メッセージキュー) DaemonSet: ノードレベルのサービス(ログ収集エージェント、監視エージェント) Job: 1 回限りのタスク(バッチ処理、移行) CronJob: スケジュールされたタスク(バックアップ、定期レポート)
リソース管理
Requests: スケジューリング時に保証されるリソース Limits: kubelet によって適用されるリソースの上限 HPA: Horizontal Pod Autoscaler(メトリクスに基づいてレプリカをスケーリング) VPA: Vertical Pod Autoscaler(リソースの Requests/Limits を調整)
クイックリファレンス
| タスク | 参照先 |
|---|---|
| デプロイ戦略(ローリング、ブルーグリーン、カナリア) | skills/kubernetes-deployment-patterns/references/deployment-strategies.md |
| ワークロードの種類(Deployment、StatefulSet、DaemonSet、Job) | skills/kubernetes-deployment-patterns/references/workload-types.md |
| 構成管理(ConfigMaps、Secrets) | skills/kubernetes-deployment-patterns/references/configuration-management.md |
| リソース管理と自動スケーリング(HPA、VPA) | skills/kubernetes-deployment-patterns/references/resource-management.md |
| 本番環境のベストプラクティスとセキュリティ | skills/kubernetes-deployment-patterns/references/production-best-practices.md |
ワークフロー
1. デプロイ戦略を選択する
# Rolling update for standard deployments
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
# Recreate for incompatible versions
strategy:
type: Recreate
2. ワークロードの種類を選択する
- ステートレスですか? → Deployment を使用します
- 永続的な ID を持つステートフルなワークロードですか? → StatefulSet を使用します
- 各ノードで Pod を 1 つ実行しますか? → DaemonSet を使用します
- 完了まで実行するタスクですか? → Job を使用します
- スケジュールに沿って実行しますか? → CronJob を使用します
3. リソースを構成する
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "1000m"
4. 構成を追加する
# ConfigMap for non-sensitive config
envFrom:
- configMapRef:
name: app-config
# Secret for sensitive data
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
5. ヘルスチェックを実装する
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
6. 自動スケーリングを有効にする
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
spec:
scaleTargetRef:
kind: Deployment
name: app
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
よくある間違い
latestタグを使用する: 再現性を確保するため、必ず特定のバージョンタグを使用してください- リソースの上限を設定しない: リソースの枯渇やクラスターの不安定化を招く可能性があります
- ヘルスチェックがない: プローブがないと、Kubernetes は Pod の健全性を管理できません
- 本番環境でレプリカが 1 つだけ: 高可用性や耐障害性を確保できません
- Secrets を ConfigMaps に保存する: 機密データには ConfigMaps ではなく Secrets を使用してください
- 更新戦略がない: 予測不能なデプロイ動作につながります
- root で実行する: セキュリティ上の脆弱性となり、最小権限の原則に反します
- 監視がない: 本番環境で問題を検出したり、デバッグしたりできません
Resources
- Official Docs: https://kubernetes.io/docs/concepts/workloads/
- Deployment Strategies: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
- StatefulSets: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
- Autoscaling: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
- Configuration: https://kubernetes.io/docs/concepts/configuration/
- Best Practices: https://kubernetes.io/docs/concepts/configuration/overview/