This article explores the architectural challenge of deploying AI agents on Kubernetes, contrasting the traditional "one agent per Pod" model with a new "Pods as workers, not agents" paradigm. It discusses how the bursty, short-lived nature of AI agents conflicts with Kubernetes' microservice-centric abstractions, leading to inefficiencies and complex lifecycle management. The proposed solution involves an Agent Substrate control plane above Kubernetes to manage logical agents, allowing a fixed pool of Pods to serve many agents more efficiently.
Read original on InfoQ ArchitectureTraditionally, deploying applications on Kubernetes often means treating each logical unit (like a microservice) as a first-class Kubernetes workload with its own Pod, Service, and ServiceAccount. While effective for continuously available services, this model proves inefficient for AI agents, which are often short-lived, bursty, and may wake only for specific tasks, then sit idle. This leads to wasted resources and management overhead if each potential agent has a dedicated Pod.
To address the limitations, the "Pods as workers, not agents" approach introduces a control plane, such as Agent Substrate, layered above Kubernetes. In this model, Kubernetes continues to manage the underlying compute resources (Pods, Services, networking, storage), but the Agent Substrate takes responsibility for the lifecycle and placement of logical AI agents onto these worker Pods.
Key Abstractions in Agent Substrate
Agent Substrate introduces new abstractions that mirror familiar Kubernetes concepts: - WorkerPool: Analogous to a NodePool, representing a group of worker Pods. - Workers: Analogous to Nodes, where each Worker maps to a single, long-lived Pod. - ActorTemplate: A declarative specification for an AI agent, similar to a Pod definition. - Actor: The logical AI agent entity that is scheduled onto a Worker Pod when work arrives and managed through its lifecycle (suspended, resumed, removed).
This architectural shift has significant implications beyond just scheduling efficiency. Identity, access control, network policy, and runtime permissions may shift from being Pod-centric to being defined at the ActorTemplate, namespace, or tenant level, with per-Actor overrides. Observability also needs to evolve to track the logical agent (Actor) regardless of which physical Worker Pod it executes on, ensuring logs, traces, and audit records are correctly attributed.