コンテンツにスキップ

/exec

/exec スキルは kubectl exec のAI版です。ターゲットを自然言語で説明すると、エージェントが適切なメカニズムを選択します。実行中のコンテナへの通常の exec、ターゲットに使えるシェルがない場合のエフェメラルデバッグコンテナ、またはNode上の特権シェルです。

セッションはあなたとエージェントの両方が同時にアタッチしている tmux ウィンドウ内で実行されます。あなたも入力でき、エージェントも入力でき、出力はリアルタイムで表示されます。

/exec # prompts for a target
/exec api # shell into the api pod (container auto-picked)
/exec api/sidecar # shell into a specific container
/exec node worker-3 # root shell on a node
/exec debug api # ephemeral debug container alongside api

自然言語スコープ(Namespace、ラベルセレクター、ワークロード名)がサポートされています(概要を参照)。


tmux がインストールされ $PATH にある必要があります。これなしではスキルは実行されません。


エージェントはあなたの説明からターゲットを解決し、以下のいずれかを選択します。

使用可能なシェルを持つ実行中のPodのデフォルト。kubectl exec -it <pod> -c <container> -- <shell> と同等で、Podにコンテナが1つだけまたは明らかにプライマリが1つある場合はコンテナが自動選択されます。

ターゲットコンテナがdistroless、scratch、またはシェルがない場合に自動的にトリガー、または /exec debug <pod> で明示的にトリガー。kubectl debug -it <pod> --target=<container> --image=<toolbox> と同等で、ターゲットのプロセスNamespaceを共有するため、/proc/<pid>/root 経由でそのファイルシステムを、同じnetnsからそのネットワークを検査できます。

ホストレベルデバッグ用のNode上の特権rootシェル(kubeletログ、journalctlcrictl、ネットワークNamespace)。hostPIDhostNetwork/host にマウントされたホストファイルシステムを持つ、ターゲットNodeにスケジュールされた短期間の特権Podとして実装されます。


エージェントがターゲットを解決し、基礎となる exec または debug コマンドを開始すると:

  1. わかりやすい名前(例:kstack-exec-api-server)で切り離されたtmuxセッションを開始します。
  2. デスクトップ上で新しいターミナルウィンドウを開いてそのセッションにアタッチしようとします — シェルがあなたの前に表示されます。
  3. チャットに正確な tmux attach コマンドを出力します。任意のターミナルから手動で接続できます(SSH経由、リモートエディター、またはウィンドウの起動が失敗した場合に便利)。
Session ready.
Target: pod/api-5f9c-bnt4m (container: server)
tmux: tmux attach -t kstack-exec-api-server

あなたとエージェントは同じペインを共有します。どちらでもコマンドを入力でき、どちらも完全な出力を確認できます。トークン消費を抑えるため、エージェントはウィンドウを控えめに読み取るので、最新の出力に追いつくよう促す必要があるかもしれません。セッションの終了をエージェントに指示すると、作成したPodをkillします。


スキルはセッションを開始するだけでなく、セッション内での動作についてエージェントに指示します。

  • 質問に答えられる最小権限のモードを選択します — 通常execをデバッグコンテナより優先し、デバッグコンテナをNodeシェルより優先します。現在のモードでユーザーの質問に対応できない場合のみエスカレーションします。
  • tmuxペインからトークン消費を抑えて読み取ります。大きなバッファを無断で再読み取りするのではなく、ユーザーにスクロールして戻るよう促します。
  • ペインに表示されるもの(環境変数、コマンド出力、貼り付けたテキスト)はすべて機密性が高い可能性があるものとして扱います — ユーザーが求めない限りチャットにエコーバックしません。
  • ユーザーが終了を合図したら、セッションを終了します。シェルを終了し、tmuxセッションをkillし、スキルが作成したPod(デバッグコンテナ、Nodeシェル用Pod)をすべて削除します。

--image <image>
NodeおよびデバッグコンテナモードのImage(デフォルト:netshoot)。
--attach
新しいセッションを開始する代わりに、既存のkstack tmuxセッションにエージェントをアタッチします。
--detach
切り離された状態で新しいセッションを開始します — ターミナルウィンドウは開かれません。手動でアタッチしてください。

概要のグローバルフラグも適用されます。