Communityコーディング&開発github.com

initializ/k8s-incident-triage

kubectl を使用した読み取り専用の Kubernetes インシデントトリアージ。自然言語または構造化入力を受け付け、根本原因の仮説、証拠、次のステップのコマンドを生成します。

k8s-incident-triage とは?

このスキルは、Kubernetes クラスター上のワークロードと名前空間の読み取り専用トリアージを実行します。`kubectl` コマンドのみを使用し、クラスターの状態を変更することはありません。人間が自然言語で入力する「ヒューマンモード」と、構造化 JSON で入力する「オートメーションモード」をサポートします。トリアージプロセスは、高速ヘルススナップショット、イベントタイムライン分析、Pod とノードの記述、ログ取得、オプションのメトリクス確認を含む 6 つのステップから構成されます。障害をアプリケーションクラッシュ、スケジューリング制約、プローブ障害など 9 つのカテゴリに分類し、各問題に対して仮説、証拠、信頼度スコア、推奨コマンドを提供します。アラート駆動のトリアージ、定期的なパトロールスキャン、人間の CLI 操作に対応しており、決定論的で冪等性があり、過度なクラスター負荷を回避するように設計されています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/initializ/forge/tree/main/skills/k8s-incident-triage

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Kubernetes インシデントトリアージ

kubectl を使用して Kubernetes ワークロードと名前空間の読み取り専用トリアージを実行します。

対応:

  • 自然言語入力 (ヒューマンモード)
  • 構造化 JSON 入力 (オートメーションモード)

このスキルはクラスターの状態を決して変更しません。


ツールの使用

このスキルは、cli_execute ツールで kubectl コマンドのみを使用します。 Kubernetes とのやり取りに http_request や web_search を決して使用しないでください。 すべてのクラスター操作は、cli_execute ツールを介して kubectl 経由で行う必要があります。


ツール: k8s_triage

異常な Kubernetes ワークロード、Pod、または名前空間を診断します。


入力モード

1) ヒューマンモード (自然言語)

入力はプレーンな文字列です。

例:

  • triage payments-prod
  • triage deployment payments-api in payments-prod
  • why are pods pending in checkout-prod?
  • investigate crashloop in payments-prod
  • triage pod api-7c9f6d7f86-abcde in payments-prod
  • check rollout of deployment payments-api in prod

動作:

  • 名前空間、ワークロード、Pod、またはセレクターの意図を解析します。
  • 名前空間が省略された場合、$DEFAULT_NAMESPACE が設定されていればそれを使用します。
  • 曖昧な場合は、名前空間レベルのトリアージをデフォルトとします。
  • ユーザーに JSON フィールドを覚えさせる必要はありません。

2) オートメーションモード (構造化 JSON)

入力 JSON スキーマ:

{ "namespace": "payments-prod", "workload_kind": "deployment", "workload_name": "payments-api", "pod_name": null, "label_selector": null, "include_logs": true, "logs_tail_lines": 200, "include_previous_logs": true, "events_limit": 50, "include_node_diagnostics": true, "include_metrics": false, "output_format": "markdown" }

ルール:

  • namespace は必須です。
  • pod_name が指定された場合 → Pod レベルのトリアージ。
  • ワークロードフィールドが指定された場合 → ワークロードレベルのトリアージ。
  • それ以外の場合 → 名前空間スキャン。

トリアージプロセス

ステップ 0 — 前提条件

クラスターアクセスを確認:

kubectl version --client kubectl cluster-info

RBAC がアクセスを拒否した場合:

  • 許可された操作で続行します。
  • 拒否されたコマンドを出力で明示的に報告します。

ステップ 1 — 高速ヘルススナップショット

名前空間スコープ:

kubectl get pods -n -o wide kubectl get deploy,sts,ds,job,cronjob -n

ワークロードスコープ:

kubectl get -n kubectl rollout status / -n --timeout=10s

以下の状態の Pod を選択:

  • CrashLoopBackOff
  • ImagePullBackOff
  • ErrImagePull
  • Pending / Unschedulable
  • Error
  • NotReady
  • OOMKilled
  • 高い再起動回数

詳細トリアージは $TRIAGE_MAX_PODS (デフォルト 5) に制限します。


ステップ 2 — イベントタイムライン

kubectl get events -n --sort-by=.lastTimestamp | tail -n <events_limit>

以下を探します:

  • FailedScheduling
  • FailedMount
  • Unhealthy (プローブ障害)
  • Back-off pulling image
  • Evicted
  • Node pressure signals

ステップ 3 — Pod とワークロードの記述

選択された各 Pod に対して:

kubectl describe pod -n

以下を取得:

  • コンテナの状態と理由
  • 再起動回数
  • 最後の終了理由
  • プローブ障害
  • ボリュームマウントの問題
  • ノード割り当て
  • Taints / tolerations
  • Affinity 制約

ワークロードレベルのトリアージの場合:

kubectl describe -n


ステップ 4 — ノード診断 (オプション)

kubectl get nodes -o wide kubectl describe node

以下を確認:

  • NotReady
  • MemoryPressure
  • DiskPressure
  • PIDPressure
  • Evictions

ステップ 5 — ログ (オプション)

kubectl logs -n --all-containers --tail=

再起動ループがあり、include_previous_logs=true の場合:

kubectl logs -n --previous --all-containers --tail=

ルール:

  • CrashLoopBackOff の場合は、前回のログを優先します。
  • 明らかな機密パターンを編集します。
  • Secret の値を決して出力しません。

ステップ 6 — オプションのメトリクス

有効な場合:

kubectl top pods -n kubectl top node

metrics-server が利用できない場合は、正常にスキップします。


検出ヒューリスティック

検出された問題を以下のカテゴリに分類:

  • CrashLoop / Application Crash
  • OOMKilled / Resource Limits
  • Image Pull Failure
  • Scheduling Constraint
  • Probe Failure
  • PVC / Volume Failure
  • Node Pressure / Eviction
  • Rollout Stuck
  • Unknown / Escalation Needed

各問題に対して以下を提供:

  • 仮説
  • 証拠
  • 信頼度スコア (0.0–1.0)
  • 推奨される次のコマンド

出力構造

1) インシデント概要

  • 名前空間
  • スコープ (Pod/ワークロード/名前空間)
  • 影響を受けるリソース数
  • タイムスタンプ

2) 主な発見

簡潔な箇条書きの要約。

3) 可能性の高い根本原因 (上位 3 件)

各項目:

  • 説明
  • 証拠の抜粋
  • 信頼度
  • 推奨アクション

4) 次のコマンド

コピー&ペースト可能な kubectl コマンド。

5) 証拠の付録

  • イベント (最近)
  • 記述の抜粋
  • ログの抜粋

安全性の制約

このスキルは以下を順守する必要があります:

  • 読み取り専用の kubectl 操作のみを実行します。
  • 以下を決して実行しない:
    • apply
    • patch
    • delete
    • exec
    • port-forward
    • scale
    • rollout restart
  • Secret の値を決して出力しません。
  • 完全な環境変数のダンプを避けます。

自律互換性

このスキルは、以下によって呼び出されるように設計されています:

  • k8s_alert_handler (アラートトリガートリアージ)
  • k8s_patrol (スケジュールされたパトロールスキャン)
  • 自然言語 CLI を介した人間

以下を満たす必要があります:

  • 冪等であること
  • 決定論的なフィンガープリントを生成すること
  • 過度なクラスター負荷を回避すること
  • 詳細トリアージのスコープを制限すること

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル