0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code & K8sGPTでEKSクラスタの障害調査をやってみる!

0
Posted at

こんにちは、タカサオです!
今回はClaude CodeとK8sGPTを使って、EKSクラスタの障害調査ができるか試してみたいと思います!

K8gGPTとは?

K8sGPTは生成AIを使ってKubernetesクラスタ内のリソース状態を調査してくれるツールです。

現在、K8sGPTはCNCFのSandboxプロジェクトとして管理されています。

K8sGPTについては以前ブログを書いていますので、良ければこちらも合わせてご参照ください!

前提構成

自分のPCにK8sGPTのCLIがインストールされており、k8sgpt analyzeコマンドが実行できるところからスタートします。

コマンド実行例.

~/bin/k8sgpt analyze --explain --backend amazonbedrockconverse

AI Provider: amazonbedrockconverse

0: ConfigMap default/kube-root-ca.crt()
- Error: ConfigMap kube-root-ca.crt is not used by any pods in the namespace
Error: The ConfigMap `kube-root-ca.crt` is currently not being utilized by any pods within the namespace.

Solution: Verify pod configurations to ensure they reference `kube-root-ca.crt`. Update pod specs if necessary and reapply.
1: ConfigMap kube-node-lease/kube-root-ca.crt()
- Error: ConfigMap kube-root-ca.crt is not used by any pods in the namespace
Error: The ConfigMap `kube-root-ca.crt` is currently not being utilized by any pods within the namespace.

Solution: Verify pod configurations to ensure they reference `kube-root-ca.crt`. Update pod specs if necessary and reapply.

〜〜以下略〜〜

今回作りたい構成

今回やりたいことは、Claude CodeからK8sGPTを実行してEKSクラスタの障害調査をできるようにしたい!です。

そのため、以下の様にK8sGPTのMCPサーバを使う構成を試してみます。

Claude Code (MCPクライアント)
    ↓
K8sGPT (MCPサーバ)
    ↓
EKSクラスタ

k8sGPTにはMCPサーバの機能があります。

実際試してみたところ、k8g gpt serve --mcpコマンドでMCPサーバが起動しました、便利ですね!

コマンド実行例.
~/bin/k8sgpt serve --mcp  --backend amazonbedrockconverse 
{"level":"info","ts":1779915072.2478552,"caller":"server/server.go:149","msg":"binding metrics to 8081"}
{"level":"info","ts":1779915072.2494028,"caller":"server/server.go:108","msg":"binding api to 8080"}

ただ、k8sgpt serve --mcpはstdioでMCP通信するため、Claude Codeが起動するたびにサブプロセスとして自動的に立ち上がります。そのため、事前に手動でk8sgpt serve --mcpを起動しておく必要はありません。

Claude Codeに登録する

Claude Codeからk8sGPTを使うためには、k8sGPTのMCPサーバをClaude Codeに登録する必要があります。
claude mcp addコマンドでMCPサーバを登録します。

# 基本的な構文
claude mcp add --transport http <name> <url>

# コマンド実行例
claude mcp add k8sgpt -e AWS_DEFAULT_REGION=us-east-1 -- k8sgpt serve --mcp --backend amazonbedrockconverse

Added stdio MCP server k8sgpt with command: k8sgpt serve --mcp --backend amazonbedrockconverse to local config
File modified: /Users/hogehoge/.claude.json [project: /Users/hogehoge]

MCPサーバとして登録できたのかはclaude mcp listコマンドで確認できます。
正しく登録できたみたいです!

コマンド実行例.
claude mcp list
k8sgpt: k8sgpt serve --mcp --backend amazonbedrockconverse - ?Connected

Claude CodeからEKSクラスタの障害調査をやってみる!

いよいよ、Claude CodeからEKSクラスタの障害調査をやってみましょう!

今回はイメージの指定が誤ったPodを作成してみます。

コマンド実行例.
/Users/hogehoge% kubectl run problem-pod --image hogehoge
pod/problem-pod created
/Users/hogehoge% kubectl get pod
NAME          READY   STATUS         RESTARTS   AGE
problem-pod   0/1     ErrImagePull   0          9s

Claude Codeに障害調査を依頼して、このPodが検出され、原因調査してくれることを期待します。
EKSクラスタ上で問題のあるPodを洗い出し、その原因を調査してください。とClaude Codeに依頼しました。

スクリーンショット 2026-05-28 6.28.56.png

ちゃんとK8sGPTのMCPサーバを実行してくれています!早々に問題のあるPodを見付けてくれました!

スクリーンショット 2026-05-28 6.32.52.png

スクリーンショット 2026-05-28 6.33.32.png

調査完了しました。問題の原因がイメージ指定が誤っている事をちゃんと報告してくれました!
問題の時系列や対処方法もわかりやすく書いてあります、すごい便利ですね!!!!

まとめ

今回はK8sGPTのMCPサーバをClaude Codeできる様にセットアップしました。
そして、試しに問題のあるPodの調査をClaude Codeに依頼し、ちゃんとK8sGPTを使って障害調査を行ってくれる事を確認できました。

ClaudeがK8sGPTの結果をわかりやすい日本語で解説してくれるので、とってもわかりやすいですし便利ですねー
これはKubernetesのトラブルシュートが捗るな!と思いました!
それではまた!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?