<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Adam Dickinson</title>
    <description>The latest articles on DEV Community by Adam Dickinson (@adam_dickinson_9842266356).</description>
    <link>https://dev.to/adam_dickinson_9842266356</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3629523%2F4ba2bde4-51a4-49b0-ad31-6412bdeb765a.jpg</url>
      <title>DEV Community: Adam Dickinson</title>
      <link>https://dev.to/adam_dickinson_9842266356</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adam_dickinson_9842266356"/>
    <language>en</language>
    <item>
      <title>I Built an Open-Source Tool for Debugging Kubernetes Agentically</title>
      <dc:creator>Adam Dickinson</dc:creator>
      <pubDate>Wed, 26 Nov 2025 00:34:56 +0000</pubDate>
      <link>https://dev.to/adam_dickinson_9842266356/i-built-an-open-source-tool-for-debugging-kubernetes-agentically-341</link>
      <guid>https://dev.to/adam_dickinson_9842266356/i-built-an-open-source-tool-for-debugging-kubernetes-agentically-341</guid>
      <description>&lt;h2&gt;
  
  
  TLDR
&lt;/h2&gt;

&lt;p&gt;Built an open-source tool called &lt;strong&gt;Kubently&lt;/strong&gt; that lets you troubleshoot Kubernetes clusters through natural conversation with any major LLM. ~50ms command delivery, read-only by default, works on any K8s cluster (EKS, GKE, AKS, bare metal), multi-cluster from day one.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docs: &lt;a href="https://kubently.io" rel="noopener noreferrer"&gt;https://kubently.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/kubently/kubently" rel="noopener noreferrer"&gt;https://github.com/kubently/kubently&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;If you've spent any time debugging Kubernetes, you know the drill:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;kubectl get pods &lt;span class="nt"&gt;-n&lt;/span&gt; production
kubectl describe pod some-pod-name-7f8b9c6d5-x2k4m
kubectl logs some-pod-name-7f8b9c6d5-x2k4m
kubectl get events &lt;span class="nt"&gt;-n&lt;/span&gt; production &lt;span class="nt"&gt;--sort-by&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'.lastTimestamp'&lt;/span&gt;
&lt;span class="c"&gt;# repeat forever&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output is verbose. The debugging is manual. You're constantly context-switching between terminal, docs, and whatever monitoring tool you're using. Now multiply that by however many clusters you're managing across different providers.&lt;/p&gt;

&lt;p&gt;I've been working with agentic systems through my involvement with &lt;a href="https://cnoe-io.github.io/ai-platform-engineering/" rel="noopener noreferrer"&gt;CAIPE&lt;/a&gt; (Cloud Native AI Platform Engineering), and one thing became obvious: agents debug faster than I can half the time. They don't get tired, they don't forget to check events, and they're pretty good at pattern matching across large outputs.&lt;/p&gt;

&lt;p&gt;So I built something around that.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Kubently?
&lt;/h2&gt;

&lt;p&gt;Kubently is an open-source tool for troubleshooting Kubernetes &lt;em&gt;agentically&lt;/em&gt; (hence the name - Kubernetes + agentically). It lets you debug clusters through natural conversation with any major LLM.&lt;/p&gt;

&lt;p&gt;Instead of running kubectl commands manually, you describe the problem and let an agent do the investigation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The frontend pods in production keep restarting - can you figure out what's going on?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent runs the commands, analyzes the output, and walks through the debugging process systematically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;The system has three core components:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubently API&lt;/strong&gt; - A horizontally scalable FastAPI service that handles command distribution, session management, and A2A (Agent-to-Agent) communication. Scales with Redis pub/sub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubently Executor&lt;/strong&gt; - A lightweight agent deployed in each target cluster. It's the only component that needs cluster access, and it's read-only by default with configurable RBAC rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LLM Integration&lt;/strong&gt; - Supports multiple providers through a factory pattern. Works with whatever LLM setup you're running.&lt;/p&gt;

&lt;p&gt;Command delivery happens via Server-Sent Events (SSE) with ~50ms latency. Fast enough that conversations feel responsive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Design Decisions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Read-Only by Default
&lt;/h3&gt;

&lt;p&gt;Security was a priority from day one. The executor only runs read operations unless explicitly configured otherwise. No accidental &lt;code&gt;kubectl delete&lt;/code&gt; from an overeager agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cloud Agnostic
&lt;/h3&gt;

&lt;p&gt;Runs on any Kubernetes cluster - EKS, GKE, AKS, bare metal, k3s, whatever. If kubectl works, Kubently works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Cluster Native
&lt;/h3&gt;

&lt;p&gt;This wasn't an afterthought. Deploy an executor to each cluster, manage them all from a single API. The architecture assumes you're running multiple clusters because most teams are.&lt;/p&gt;

&lt;h3&gt;
  
  
  A2A Protocol Support
&lt;/h3&gt;

&lt;p&gt;Native support for Agent-to-Agent communication means Kubently integrates with existing agentic systems. If you're already running something like CAIPE or using LangGraph/LangChain, Kubently slots in as a specialized Kubernetes debugging agent.&lt;/p&gt;

&lt;h3&gt;
  
  
  Black Box Architecture
&lt;/h3&gt;

&lt;p&gt;Built with swappability in mind. Want to change the LLM provider? Swap it out. Want different agent logic? The interfaces are clean. I have a lot of ideas for future improvements and didn't want to paint myself into a corner.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;This is still early. There's plenty of room for improvement:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better conversation memory and context handling&lt;/li&gt;
&lt;li&gt;More sophisticated debugging strategies&lt;/li&gt;
&lt;li&gt;Enhanced multi-cluster workflows&lt;/li&gt;
&lt;li&gt;Improved observability integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But it's functional and useful as-is. I've been using it for my own clusters and it's already saved me time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://kubently.io" rel="noopener noreferrer"&gt;https://kubently.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/kubently/kubently" rel="noopener noreferrer"&gt;https://github.com/kubently/kubently&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback, bug reports, and feature requests are all welcome. If you find it useful, a star on GitHub helps with visibility.&lt;/p&gt;

&lt;p&gt;Happy to answer questions in the comments.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>opensource</category>
      <category>ai</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
