Kubernetes のヘルス診断
あらゆる Kubernetes クラスター構成に対応する、動的な検出ベースのヘルスチェック
始める前に
| 影響 | 値 |
|---|
| トークンの節約 | 手動での kubectl 調査と比べて約 70% |
| セットアップ時間 | 0 分(既存の kubectl 設定を使用) |
| 対応範囲 | インストール済みのオペレーターに自動で適応 |
防止できる既知の問題
| 問題 | 根本原因 | このスキルの対処方法 |
|---|
| オペレーターのヘルス状態を見落とす | 静的なチェックリストでは CRD を見落とす | 動的な API 検出ですべてのインストール済みオペレーターを検出 |
| 診断が古くなる | 手動のチェックが最新でなくなる | クラスター API をリアルタイムで照会 |
| 対応範囲が不完全 | クラスター構成が不明 | 関連するサブエージェントを自動的に起動 |
クイックスタート
- クラスターへのアクセスを確認する:
kubectl が設定され、クラスターに接続できることを確認します
- 検出を実行する:
discover_apis.py を実行して、インストール済みのオペレーターを検出します
- エージェントをディスパッチする:オーケストレーターを使用して、検出結果に基づくヘルスチェックを実行します
# Step 1: Verify kubectl context
kubectl config current-context
kubectl cluster-info
# Step 2: Run API discovery
uv run .claude/skills/kubernetes-health/scripts/discover_apis.py
# Step 3: Review detected operators and dispatch health agents
重要なルール
必ず行うこと
- ヘルスチェックの実行前に kubectl コンテキストを確認します
- 読み取り専用の kubectl コマンド(get、describe、logs)を使用します
- オペレーター固有のチェックより先に、コアのヘルスチェックを実行します
- 提供されたスコアリング方法で結果を集約します
絶対に行わないこと
- ヘルスチェック中にクラスターリソースを変更する
- ヘルスレポートにシークレットの値を含める(メタデータのみ)
- 本番クラスターのコンテキスト確認を省略する
- API 検出を行わずにオペレーターが存在すると想定する
よくある間違い
| 間違い | 問題である理由 | 正しい方法 |
|---|
| オペレーターのチェックをハードコードする | インストール済みのオペレーターを見落とし、存在しないオペレーターをチェックしてしまう | API 検出を使用して、インストール済みのものを検出します |
| エージェントを逐次ディスパッチする | 複数のオペレーターがあるクラスターでは遅くなる | オペレーターエージェントを並列で実行します(同じ優先度) |
| kubectl の生出力を使う | トークン効率が悪く、解析しにくい | スクリプトで簡潔な JSON 出力を使用します |
同梱リソース
スクリプト
| スクリプト | 目的 |
|---|
scripts/discover_apis.py | すべての API グループを検出し、インストール済みのオペレーターを特定します |
scripts/health_orchestrator.py | 検出された API を専用のヘルスエージェントに割り当てます |
scripts/aggregate_report.py | 複数エージェントの結果を統合レポートに集約します |
リファレンス
| ファイル | 内容 |
|---|
references/operator-checks.md | サポート対象の各オペレーターに対する詳細なヘルスチェック |
references/health-scoring.md | スコアリング方法と重みの割り当て |
テンプレート
| ファイル | 目的 |
|---|
templates/health-report.json | ヘルスレポート出力用の JSON スキーマ |
依存関係
必須
| パッケージ | バージョン | 目的 |
|---|
| kubectl | 最新 | クラスターとのやり取り |
| Python | >= 3.11 | スクリプトの実行 |
| uv | 最新 | Python スクリプトランナー |
オプション
| パッケージ | バージョン | 目的 |
|---|
| kubernetes | >= 28.1.0 | Python クライアント(高度な検出用) |
サポート対象のオペレーター
このスキルは、次の専用エージェントを自動的に検出してディスパッチします。
| オペレーター | API グループ | エージェント |
|---|
| Core K8s | (常に) | k8s-core-health-agent |
| Crossplane | crossplane.io | k8s-crossplane-health-agent |
| ArgoCD | argoproj.io | k8s-argocd-health-agent |
| Cert-Manager | cert-manager.io | k8s-certmanager-health-agent |
| Prometheus | monitoring.coreos.com | k8s-prometheus-health-agent |
ヘルススコア
| 状態 | スコア範囲 | 判定基準 |
|---|
| 正常 | 90-100 | すべてのチェックに合格し、警告なし |
| 劣化 | 60-89 | 一部に警告があるが、重大な問題はない |
| 重大 | 0-59 | 可用性に影響する重大な問題がある |
トラブルシューティング
kubectl の接続に関する問題
# Verify context
kubectl config current-context
# Test connectivity
kubectl cluster-info
# Check permissions
kubectl auth can-i get pods --all-namespaces
検出結果が空の場合
- クラスターに接続できることを確認します
- API 検出に必要な RBAC 権限を確認します
- kubectl のバージョンに互換性があることを確認します
エージェントのディスパッチ失敗
- 検出された API グループがエージェントのトリガーと一致することを確認します
- エージェントファイルが
.claude/agents/specialized/kubernetes/ に存在することを確認します
- エージェントのツール制限を確認します
セットアップチェックリスト