はじめに
「KubernetesのYAMLが長くて書くのが大変」
「Podが起動しないエラーの原因調査方法がわからない」
「HelmChartを自作したいが構成がよくわからない」
Kubernetesは強力なコンテナオーケストレーション基盤ですが、設定ファイルの複雑さとトラブルシューティングの難しさが障壁になりがちです。Claude Codeを使えば、マニフェストの自動生成からエラー診断まで効率的に進められます。
目次
- Claude CodeとKubernetes運用
- マニフェストの自動生成
- Helmチャートの作成
- オートスケーリングの設定
- トラブルシューティング
- セキュリティ設定
- GitOpsの構築
- まとめ
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 →
ご質問はお問い合わせページからお気軽にどうぞ。