k8s クラスタの調査時間は道具で大きく変わります。kubectl で人海戦術するより、専用ツールで効率化を。本番障害時の数分が積み重なって大きな差になります。
1. 推奨ツール
| ツール | 用途 | ホットキー / 例 |
|---|---|---|
| k9s | 端末の k8s ダッシュボード | :pods, :svc で切替 |
| Stern | 複数 pod のログ並列表示 | stern app-* -n prod |
| kubectl-tree | オーナー関係の階層表示 | kubectl tree deploy myapp |
| Lens | クラスタブラウザ | ローカルアプリ |
| kubectx / kubens | context / namespace 切替 | kubectx prod, kubens app |
| kube-ps1 | プロンプトに context 表示 | 「prod 接続中」を常に視認 |
| stern | 複数 pod ログ | stern 'web-.*' --tail 100 |
2. 本番事故時の対応フロー
- 1kubectx prod で本番 context に切替 (プロンプト表示で再確認)
- 2k9s で全体状況把握 (Crash の pod を瞬時に特定)
- 3stern 'app-*' で問題 pod のログ並列追跡
- 4kubectl-tree deploy app で関連リソース確認
- 5kubectl describe pod XX で events と詳細確認
- 6kubectl exec -it XX -- bash で pod 内に入る (デバッグ)
- 7kubectl rollout undo で rollback (必要なら)
- 8Slack 等で chronological log を残す
3. context 切替の安全策
本番 context は色を変える
Bash
# kube-ps1 設定 (プロンプトに context 表示)source /opt/homebrew/opt/kube-ps1/share/kube-ps1.shPROMPT='$(kube_ps1) %~ $ '
# 本番 context を赤色にKUBE_PS1_CTX_COLOR=red
# 本番 namespace に切替時の確認プロンプトalias kubectl-prod='kubectx prod && echo "⚠️ 本番です。続行?" && read'4. ログ並列表示 (Stern)
障害調査の典型コマンド
Bash
# 同 deployment の全 pod を追跡stern 'web-deployment-.*' -n production
# 直近 100 行 + 追跡継続stern 'api-.*' --tail 100 --since 5m
# エラーログだけフィルタstern 'app-.*' | grep -i 'error\|exception'
# 複数 namespace 横断 (--all-namespaces)stern '.*' --all-namespaces -l app=critical5. よくある落とし穴
- context 取り違え: 本番に dev のマニフェストを apply → サービス停止
- kubectl delete の暴走: --grace-period=0 --force でクラスタ破壊事故
- describe の見落とし: events セクションに本当の原因が書いてあることが多い
- namespace の指定忘れ: -n を付けないと default で実行される
- alias k=kubectl: 短すぎて事故りやすい、kubie / kubectx で context 明示推奨
ふくふくの進め方
/ インフラチームのトラブルシュート効率化として、推奨ツールセットの導入と Runbook 整備をご支援。新規メンバーが 1 週間で本番デバッグできる状態を作ります。
次回予告
EP.09 はローカルで使える可観測性ツール:lnav / OpenObserve。
この記事の感想を教えてください
あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。