mcpField
K
kubernetes-deployment-patterns

kubernetes-deployment-patterns

github.com/nickcrewクラウド・DevOps6293 回インストール17 週間前に更新
リポジトリ

kubernetes-deployment-patterns について

Kubernetes の本番デプロイに関する実践的な指針を提供するスキルです。クラウドネイティブアプリを構築・運用するチーム向けに、リリース戦略、ワークロード、設定、リソース管理、自動スケーリング、ヘルスチェックを扱います。

主な機能

  1. 01ローリング、ブルーグリーン、カナリア戦略の選択
  2. 02タスクに応じたワークロードの選定
  3. 03ConfigMaps と Secrets による設定管理
  4. 04リソース要求・制限と自動スケーリングの設定
  5. 05ヘルスチェックプローブの構成

活用シーン

  1. 01デプロイの中断を抑えるアプリ更新の計画
  2. 02サービス、データベース、バッチ処理向けワークロードの選定
  3. 03機密設定とコンテナリソースの管理
  4. 04本番アプリのプローブと自動スケーリングの設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nickcrew/claude-cortex --skill kubernetes-deployment-patterns

インストール後、Claude Code で/kubernetes-deployment-patternsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
configuration-management.md
deployment-strategies.md
production-best-practices.md
resource-management.md
workload-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

よくある間違い

  1. latest タグを使用する: 再現性を確保するため、必ず特定のバージョンタグを使用してください
  2. リソースの上限を設定しない: リソースの枯渇やクラスターの不安定化を招く可能性があります
  3. ヘルスチェックがない: プローブがないと、Kubernetes は Pod の健全性を管理できません
  4. 本番環境でレプリカが 1 つだけ: 高可用性や耐障害性を確保できません
  5. Secrets を ConfigMaps に保存する: 機密データには ConfigMaps ではなく Secrets を使用してください
  6. 更新戦略がない: 予測不能なデプロイ動作につながります
  7. root で実行する: セキュリティ上の脆弱性となり、最小権限の原則に反します
  8. 監視がない: 本番環境で問題を検出したり、デバッグしたりできません

Resources

コメント