コラム Claude Code入門 更新:

Claude CodeでKubernetesを運用する方法!マニフェスト作成からトラブルシューティングまで

Claude CodeでKubernetesを運用する方法!マニフェスト作成からトラブルシューティングまで
目次 (21項目)
  1. 1. はじめに
  2. 2. 目次
  3. 3. 1. Claude CodeとKubernetes運用
  4. クラスター状況の診断
  5. 4. 2. マニフェストの自動生成
  6. アプリケーションデプロイのマニフェスト
  7. ConfigMapとSecretの管理
  8. 5. 3. Helmチャートの作成
  9. アプリケーション用Helmチャート
  10. 6. 4. オートスケーリングの設定
  11. HPAとVPAの設定
  12. 7. 5. トラブルシューティング
  13. Podが起動しない場合の診断
  14. ネットワーク問題の診断
  15. リソース不足の対応
  16. 8. 6. セキュリティ設定
  17. セキュリティのベストプラクティス適用
  18. 9. 7. GitOpsの構築
  19. ArgoCDによるGitOps
  20. 10. 8. まとめ
  21. 11. よくある質問(FAQ)

はじめに

「KubernetesのYAMLが長くて書くのが大変」

「Podが起動しないエラーの原因調査方法がわからない」

「HelmChartを自作したいが構成がよくわからない」

Kubernetesは強力なコンテナオーケストレーション基盤ですが、設定ファイルの複雑さとトラブルシューティングの難しさが障壁になりがちです。Claude Codeを使えば、マニフェストの自動生成からエラー診断まで効率的に進められます。

目次

  1. Claude CodeとKubernetes運用
  2. マニフェストの自動生成
  3. Helmチャートの作成
  4. オートスケーリングの設定
  5. トラブルシューティング
  6. セキュリティ設定
  7. GitOpsの構築
  8. まとめ

1. Claude CodeとKubernetes運用

クラスター状況の診断

> kubectl get allの出力結果を分析して、
  問題がないか診断してください。

  [kubectl get all -n production の出力を貼り付け]

  確認してほしい点:
  - Podが正常に起動しているか
  - デプロイメントのREADY状態
  - サービスのEXTERNAL-IP
  - リソース使用量の異常

2. マニフェストの自動生成

アプリケーションデプロイのマニフェスト

> 以下のアプリケーションをKubernetesにデプロイするための
  マニフェストを作成してください。

  アプリケーション情報:
  - イメージ:myapp/api:v1.2.0
  - ポート:8080
  - 環境変数:DATABASE_URL・REDIS_URL(Secretから取得)
  - リソース要求:CPU 100m・メモリ 256Mi
  - リソース上限:CPU 500m・メモリ 512Mi
  - レプリカ数:3

  作成するリソース:
  - Deployment(RollingUpdate戦略)
  - Service(ClusterIP)
  - Ingress(TLS終端)
  - HorizontalPodAutoscaler
  - PodDisruptionBudget
  - NetworkPolicy

  プロダクションレディな設定にしてください。

ConfigMapとSecretの管理

> このアプリケーションの設定をConfigMapとSecretで管理してください。

  ConfigMap(機密でない設定):
  - LOG_LEVEL・APP_ENV・MAX_CONNECTIONS

  Secret(機密情報):
  - DATABASE_URL・JWT_SECRET・API_KEY

  External Secrets Operator(AWS Secrets Manager連携)の
  設定も含めてください。

3. Helmチャートの作成

アプリケーション用Helmチャート

> このKubernetesマニフェストをHelmチャートに変換してください。

  chart/
  ├── Chart.yaml
  ├── values.yaml(デフォルト値)
  ├── values-staging.yaml
  ├── values-production.yaml
  └── templates/
      ├── deployment.yaml
      ├── service.yaml
      ├── ingress.yaml
      ├── hpa.yaml
      └── _helpers.tpl

  よく変更される値はvalues.yamlで管理してください。
  helm lint・helm template で検証できるようにしてください。

4. オートスケーリングの設定

HPAとVPAの設定

> このDeploymentにオートスケーリングを設定してください。

  HPA(Horizontal Pod Autoscaler):
  - 最小レプリカ:2
  - 最大レプリカ:20
  - CPU使用率 70%でスケールアウト
  - カスタムメトリクス(リクエスト/秒)もトリガーに追加

  KEDA(Kubernetes Event-driven Autoscaling)を使って
  SQSキューの長さに基づくスケーリングも実装してください。

5. トラブルシューティング

Podが起動しない場合の診断

> PodがCrashLoopBackOffになっています。
  以下のログを分析して原因を特定してください。

  [kubectl describe pod <pod-name> の出力]
  [kubectl logs <pod-name> --previous の出力]

  原因に応じた修正方法を提案してください。

ネットワーク問題の診断

> Service間の通信ができていません。
  以下の情報から原因を特定してください。

  症状:frontend PodからbackendサービスにアクセスできないE
  ネットワーク構成:[kubectl get networkpolicy の出力]

  診断コマンドの提案と、修正方法を教えてください。

リソース不足の対応

> Nodeのリソースが不足してPodがPendingになっています。

  [kubectl describe node の出力]

  以下を提案してください:
  - 短期対応(既存リソースの最適化)
  - 中期対応(Node追加・クラスターオートスケーラー設定)
  - リソースの適切なrequests・limitsの再設計

6. セキュリティ設定

セキュリティのベストプラクティス適用

> このKubernetesマニフェストのセキュリティを強化してください。

  適用するセキュリティ設定:
  - SecurityContext(非rootユーザー・readOnlyRootFilesystem)
  - PodSecurityStandards(restricted)
  - NetworkPolicyで必要な通信のみ許可
  - ServiceAccountの最小権限設定
  - イメージの脆弱性スキャン(trivy)の結果対応

  [マニフェストを貼り付け]

7. GitOpsの構築

ArgoCDによるGitOps

> ArgoCDを使ったGitOpsパイプラインを構築してください。

  設計:
  - アプリケーションコードリポジトリ(ソースコード)
  - マニフェストリポジトリ(Helmチャート・values)
  - ArgoCD Application設定

  デプロイフロー:
  1. アプリコードのPRマージ
  2. GitHub ActionsでDockerビルド・ECRプッシュ
  3. マニフェストリポジトリのimage tagを自動更新
  4. ArgoCDが差分を検知して自動同期
  5. デプロイ完了をSlack通知

8. まとめ

Claude CodeでのKubernetes運用の効率化ポイント:

  • アプリ要件からプロダクションレディなマニフェストを自動生成
  • Helmチャートへの変換・テンプレート化を自動化
  • Podエラーのログ分析と原因特定を自律的に実施
  • ArgoCDを使ったGitOpsパイプラインの設計・構築

k8s運用での重要な習慣:

  • マニフェストを必ずGitで管理する
  • リソースlimitsを必ず設定する
  • liveness・readiness probeを設定する
  • NetworkPolicyで通信を制限する

次回の第45回:OAuth2・OpenID Connectを実装する方法では、認証基盤の安全な構築方法を解説します。

よくある質問(FAQ)

Q. ローカルでKubernetesを試す方法はありますか?

A. Kind・Minikube・k3dなどのローカルクラスターツールを使えば、本番環境と同じ構成をローカルで試せます。Claude Codeに「kindを使ってローカルクラスターを構築してください」と依頼することで環境構築から進められます。

Q. EKS・GKE・AKSなどマネージドKubernetesにも対応していますか?

A. はい。「AWSのEKSクラスターのマニフェストを作成してください。ALB Ingress Controllerを使ってください」のように指定することで対応できます。

この記事はClaude Code入門シリーズ(第5部)の第44回です。← 第43回:Go言語第45回:OAuth2・OIDC →

ご質問はお問い合わせページからお気軽にどうぞ。

著者:R-LLM 開発者

フォロー

Webエンジニアとして10年以上のキャリアがあり、現在はWordPressとLLM(大規模言語モデル)の連携、および生成AIを活用した課題解決のための開発に日々取り組んでいます。

私の信条は、クライアントに寄り添った伴走支援と、最後まで責任を持ってやり遂げる「遂行力」です。これまでの膨大なトライ&エラーの蓄積により、自身の領域内であれば不具合も迅速に解決できる現場の知見を積み上げてきました。

このブログでは、一人のエンジニアとして私自身がAI技術に抱いている純粋な興味をベースに、日々の探求プロセスを発信しています。

生成AILLMをどのように実務に組み込み、価値へ繋げていくか。自身の検証結果だけでなく、実務者としての視点に基づいた「考察や推察」も含めて共有することで、同じように試行錯誤を続ける方々と知見を繋げていければと考えています。

関連記事

SHARE Xでシェア
← 前の投稿
投稿一覧に戻る