📚 この記事は「Gemini CLI(Google Antigravity)完全攻略シリーズ」の Episode 25 です。
- Gemini CLIで Kubernetesマニフェストをベストプラクティスに沿って自動生成
- Pod障害・OOMKill・CrashLoopのトラブルシュートをAIが即座に診断・提案
- Kubernetes運用スキルを持つSESエンジニアは月単価90〜120万円が狙える
「kubectlコマンドが多すぎて覚えきれない」「YAMLマニフェストの設定項目が膨大で、何を書けばいいかわからない」「Podがクラッシュしているが原因がわからない」——Kubernetesを使うSES案件で、こうした悩みを抱えるエンジニアは少なくありません。
**Gemini CLI(Google Antigravity)**は、Kubernetesの運用を劇的に効率化します。マニフェストの自動生成から、障害時のトラブルシューティングまで、AIの支援で生産性を大幅に向上させることが可能です。本記事では、Gemini CLIの基本操作を理解している方を対象に、Kubernetes運用の実践テクニックを解説します。
Kubernetes運用の課題とGemini CLIの解決策
なぜKubernetes運用にAIが必要なのか
Kubernetesは非常に強力なコンテナオーケストレーションプラットフォームですが、その設定項目の多さと運用の複雑さが大きな障壁です。
| 課題 | 従来のアプローチ | Gemini CLIでの解決 |
|---|---|---|
| マニフェスト作成 | 公式ドキュメントを参照しながら手書き | 自然言語で要件を伝えて自動生成 |
| リソース設定 | 経験に基づく見積もり | メトリクス分析から最適値を提案 |
| トラブルシュート | ログ・イベントを手動で調査 | エラーを貼り付けるだけで原因特定 |
| セキュリティ設定 | CISベンチマークを手動確認 | ポリシー違反の自動検出・修正提案 |
| アップグレード | リリースノートを読んで影響調査 | 破壊的変更の自動検出と移行手順生成 |
マニフェスト自動生成
Deployment + Service + Ingress の一括生成
Gemini CLIにアプリケーションの要件を伝えるだけで、本番品質のマニフェストを生成できます:
gemini "Node.js WebアプリケーションのKubernetesマニフェストを生成して。
要件:
- Deployment: レプリカ3、ローリングアップデート(maxSurge: 1, maxUnavailable: 0)
- コンテナ: node:20-alpine、ポート3000
- リソース: requests (cpu: 100m, memory: 128Mi)、limits (cpu: 500m, memory: 512Mi)
- ヘルスチェック: /healthz (liveness + readiness)
- 環境変数: ConfigMap参照 + Secret参照
- Service: ClusterIP
- Ingress: nginx-ingress、TLS (cert-manager)
- HPA: CPU 70%で3-10 Pod
- PDB: minAvailable 2
すべてプロダクションベストプラクティスに沿って"
Gemini CLIが生成するDeploymentの例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
labels:
app: web-app
version: v1
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
version: v1
spec:
serviceAccountName: web-app
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
containers:
- name: web-app
image: registry.example.com/web-app:latest
ports:
- containerPort: 3000
protocol: TCP
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
livenessProbe:
httpGet:
path: /healthz
port: 3000
initialDelaySeconds: 15
periodSeconds: 10
failureThreshold: 3
readinessProbe:
httpGet:
path: /healthz
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3
envFrom:
- configMapRef:
name: web-app-config
- secretRef:
name: web-app-secrets
ポイント: Gemini CLIは自動的にsecurityContext(非rootユーザー実行)、適切なProbe設定、リソース制限を含めます。
Kustomizeオーバーレイの生成
環境ごとの設定差分を管理するKustomizeオーバーレイもGemini CLIで生成できます:
gemini "先ほどのマニフェストをKustomize構成に変換して。
base/ に共通設定、overlays/dev と overlays/prod に環境差分。
差分: replica数、リソースlimits、環境変数、Ingress ドメイン名"
トラブルシューティング
Pod障害の即座診断
Kubernetesで最も時間を取られるのがトラブルシューティングです。Gemini CLIにエラー情報を渡すだけで、原因特定と修正提案を得られます:
# Podのステータスとイベントを取得してGemini CLIに渡す
kubectl describe pod web-app-7d8f9c6b5-x2k4m | gemini "このPodの問題を診断して。
原因の可能性を確率順に列挙し、各対策の具体的なコマンドも教えて"
Gemini CLIが診断する典型的なパターン:
CrashLoopBackOff の診断例:
診断結果:
1. [確率90%] OOMKilled - メモリ制限超過
→ limits.memory を 512Mi → 1Gi に増加
→ アプリのメモリリーク調査
コマンド: kubectl patch deployment web-app -p '{"spec":{"template":{"spec":{"containers":[{"name":"web-app","resources":{"limits":{"memory":"1Gi"}}}]}}}}'
2. [確率5%] アプリの起動エラー
→ ログ確認: kubectl logs web-app-7d8f9c6b5-x2k4m --previous
→ 環境変数・Secret の設定確認
3. [確率5%] ヘルスチェック失敗
→ initialDelaySeconds が短すぎる可能性
→ livenessProbe の設定見直し
ネットワーク問題の診断
gemini "KubernetesのPod間通信ができない。以下の情報から原因を特定して:
- Pod A (namespace: frontend) → Pod B (namespace: backend) への通信がタイムアウト
- NetworkPolicy は設定済み
- Service の DNS 名は backend-svc.backend.svc.cluster.local
- Pod B は Running 状態
kubectl get networkpolicy -n backend の出力: ..."
セキュリティ強化
Pod Security Standards の適用
gemini "全namespaceにPod Security Standards (Restricted) を適用して。
- 現在のDeploymentで違反しているリソースを列挙
- 各違反の修正方法を具体的に提示
- 段階的な移行計画(warn → enforce)を作成"
RBAC設定の最適化
gemini "このKubernetesクラスタのRBAC設定をレビューして。
最小権限の原則に基づいて改善点を指摘して:
1. 過剰な権限を持つServiceAccount
2. ClusterRoleBindingの不要な使用
3. 推奨されるRBACポリシー"
GitOpsとCI/CDパイプライン
ArgoCD設定の生成
gemini "ArgoCDのApplication定義を作成して。
- GitリポジトリからKustomizeオーバーレイを自動同期
- 自動Pruning有効
- Syncウェーブ(CRDs → Namespace → アプリ)
- Slack通知(sync成功/失敗)
- dev/staging/prod の3環境"
GitHub Actions でのCI/CDパイプライン
gemini "マイクロサービスのCI/CDパイプラインをGitHub Actionsで作成して。
ステップ:
1. テスト実行
2. Docker build & push (GitHub Container Registry)
3. Kustomizeオーバーレイのimage tagを更新
4. ArgoCD Syncトリガー
5. ヘルスチェック(デプロイ完了確認)
6. 失敗時の自動ロールバック"
パフォーマンス最適化
リソース使用量の分析と最適化
gemini "以下のPrometheusメトリクスから、各Podのリソース設定を最適化して。
現在の設定と実際の使用量のギャップを分析し、
requests/limitsの推奨値を算出して。
container_memory_usage_bytes:
- web-app: avg 256Mi, p95 380Mi, max 450Mi
- api-server: avg 512Mi, p95 780Mi, max 1.2Gi
- worker: avg 128Mi, p95 200Mi, max 300Mi"
VPAとHPAの使い分け
gemini "VPA (Vertical Pod Autoscaler) と HPA (Horizontal Pod Autoscaler) の
最適な組み合わせを提案して。
ワークロード特性:
- web-app: リクエスト数に比例してCPU使用
- worker: メモリ集中型バッチ処理
- api-server: 不規則なスパイク"

SES現場でのKubernetes案件攻略
Kubernetes案件の単価相場
| スキルレベル | 月単価相場 | 求められるスキル |
|---|---|---|
| 初級(利用者) | 65〜80万円 | kubectl操作、Pod/Serviceの理解 |
| 中級(構築者) | 80〜100万円 | クラスタ構築、Helm/Kustomize、CI/CD |
| 上級(設計者) | 100〜120万円 | マルチクラスタ設計、サービスメッシュ、SRE |
効率的な学習パス
Week 1-2: 基礎
├── Pod / Deployment / Service の理解
├── kubectl 基本操作をGemini CLIで学習
└── Minikubeでローカル環境構築
Week 3-4: 実践
├── Kustomize / Helmでの環境管理
├── CI/CDパイプライン構築
└── Gemini CLIで各種マニフェスト生成を練習
Week 5-8: 応用
├── セキュリティ(RBAC、NetworkPolicy、PodSecurity)
├── オブザーバビリティ(Prometheus、Grafana)
├── HPA/VPAによるオートスケーリング
└── トラブルシューティング実践
まとめ:Gemini CLIでKubernetes運用を効率化
Gemini CLI(Google Antigravity)は、Kubernetesの3大課題——マニフェスト作成の手間、トラブルシューティングの難しさ、セキュリティ設定の複雑さ——をAIの力で解決します。
Gemini CLI × Kubernetesの3つのポイント:
- マニフェスト生成: 自然言語から本番品質のYAMLを自動生成し、手書きの時間を90%削減
- 障害診断: Podのエラー情報をAIが瞬時に分析し、確率順の原因特定と修正コマンドを提案
- セキュリティ: CISベンチマーク・RBAC・PodSecurityの最適化をAIが自動チェック
Kubernetes運用スキルは、SESエンジニアの市場価値を大きく高めます。Gemini CLIを活用して効率よくスキルを習得し、高単価のクラウドネイティブ案件にチャレンジしましょう。
関連記事
- Gemini CLI 使い方入門ガイド - Gemini CLIの基礎を学ぶ
- Gemini CLI × クラウドデプロイガイド - クラウド環境へのデプロイ
- Gemini CLI × CI/CD自動化ガイド - CI/CDパイプラインの構築
- Gemini CLI × インフラコード管理 - IaCの実践