<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/is-a-pod-the-right-deployment-unit-for-an-ai-agent--ypylfpli4" -->

---
title: Is a Pod the right deployment unit for an AI agent?
description: When building kagent, the team initially ran every AI agent in its own Kubernetes Pod, which solved isolation, identity, and observability problems but proved...
canonical: https://daily.dev/posts/is-a-pod-the-right-deployment-unit-for-an-ai-agent--ypylfpli4
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Is a Pod the right deployment unit for an AI agent? | daily.dev
og:description: When building kagent, the team initially ran every AI agent in its own Kubernetes Pod, which solved isolation, identity, and observability problems but proved...
og:url: https://daily.dev/posts/is-a-pod-the-right-deployment-unit-for-an-ai-agent--ypylfpli4
og:image: https://api.daily.dev/og/posts/ypYlFplI4.png
og:image:alt: Is a Pod the right deployment unit for an AI agent?
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Is a Pod the right deployment unit for an AI agent?

**[CNCF](https://daily.dev/sources/cncf)** · 6 min read · 8 upvotes · 0 comments

## Summary

When building kagent, the team initially ran every AI agent in its own Kubernetes Pod, which solved isolation, identity, and observability problems but proved wasteful for short-lived, bursty agents. The post introduces agent-substrate, a control plane layer above Kubernetes that separates the logical agent (Actor) from the execution environment (Worker/Pod). WorkerPools maintain a fixed set of long-running Pods while agent-substrate schedules lightweight Actors onto available Workers on demand. This challenges fundamental assumptions about whether a Pod should be the deployment, identity, and lifecycle unit for AI agents — raising open questions around agent identity, security policy attachment, multi-tenancy, and observability that follow the logical agent rather than the underlying Pod.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.cncf.io/blog/2026/07/14/is-a-pod-the-right-deployment-unit-for-an-ai-agent>

## Questions this post answers

### why is running every AI agent as its own Kubernetes Pod inefficient for bursty agent workloads

Keeping a dedicated Pod alive for every potential agent is wasteful because agents are not continuously available like typical microservices; an agent may wake only when assigned a task, run for seconds or minutes, then go idle, spawn subagents dynamically, or pause waiting for human approval, none of which match a long-running Pod's lifecycle model.

_developers designing agent infrastructure can follow evolving Kubernetes-for-AI patterns like this on daily.dev._

### what is agent-substrate and how does it separate agents from Kubernetes Pods

Agent-substrate is a control plane layered above Kubernetes that separates long-running Pods, called Workers, from lightweight logical agents, called Actors, which are scheduled onto Workers only while executing. It introduces WorkerPools (analogous to NodePools) and ActorTemplates (analogous to PodTemplates), letting Kubernetes manage a fixed number of Pods while agent-substrate schedules a much larger number of ephemeral agents onto them.

_anyone weighing agent orchestration architectures can track projects like agent-substrate via daily.dev._

### how do you configure a WorkerPool and ActorTemplate in kagent's agent-substrate

A WorkerPool is defined with an ateomImage and replica count specifying the pool of execution workers, while an ActorTemplate specifies the agent's container image, a gVisor runsc execution entrypoint with a hashed binary URL, a pause image, snapshot storage location, and a workerPoolRef pointing to the target WorkerPool, similar to how a PodTemplate defines Pod creation.

_engineers evaluating gVisor-based agent sandboxing can find configuration walkthroughs like this on daily.dev._

## Similar posts on daily.dev

- [Pods as Workers, Not Agents: Rethinking the Deployment Unit for AI Agents on Kubernetes](https://daily.dev/posts/pods-as-workers-not-agents-rethinking-the-deployment-unit-for-ai-agents-on-kubernetes-iiclsmfiu) · InfoQ · 3 upvotes · 2 comments
- [Why sandboxing your agent is not enough](https://daily.dev/posts/why-sandboxing-your-agent-is-not-enough-m5nc5kdyk) · CNCF · 13 upvotes · 0 comments
- [Kubernetes won the container decade. Google’s Agent Substrate wants the next one.](https://daily.dev/posts/kubernetes-won-the-container-decade-google-s-agent-substrate-wants-the-next-one--htft1i3hx) · The New Stack · 3 upvotes · 0 comments
- [Why Agents Make Good Actors](https://daily.dev/posts/why-agents-make-good-actors-s9ostdhe8) · ITNEXT · 2 upvotes · 1 comments
- [Kubernetes Was the Easy Part](https://daily.dev/posts/kubernetes-was-the-easy-part-kzq9zt3ac) · Cloud Native Now · 1 upvotes · 0 comments

---

Tags: [#kubernetes](https://daily.dev/tags/kubernetes), [#ai-agents](https://daily.dev/tags/ai-agents), [#distributed-systems](https://daily.dev/tags/distributed-systems), [#orchestration](https://daily.dev/tags/orchestration)

[View this post on daily.dev](https://daily.dev/posts/is-a-pod-the-right-deployment-unit-for-an-ai-agent--ypylfpli4)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Is a Pod the right deployment unit for an AI agent?","url":"https://daily.dev/posts/is-a-pod-the-right-deployment-unit-for-an-ai-agent--ypylfpli4","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/is-a-pod-the-right-deployment-unit-for-an-ai-agent--ypylfpli4"},"datePublished":"2026-07-14T11:24:35.112Z","dateModified":"2026-09-14T08:28:16.509Z","description":"When building kagent, the team initially ran every AI agent in its own Kubernetes Pod, which solved isolation, identity, and observability problems but proved...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/49f8b3a0fa684b5a6e82aec2eb07b165?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/49f8b3a0fa684b5a6e82aec2eb07b165?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"CNCF","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"CNCF","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/55536a03390741eebd96d2f9b74d2d8d","url":"https://daily.dev/sources/cncf"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/is-a-pod-the-right-deployment-unit-for-an-ai-agent--ypylfpli4","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":8},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"kubernetes,ai-agents,distributed-systems,orchestration","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"CNCF","item":"https://daily.dev/sources/cncf"},{"@type":"ListItem","position":3,"name":"Is a Pod the right deployment unit for an AI agent?"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/is-a-pod-the-right-deployment-unit-for-an-ai-agent--ypylfpli4#faq","mainEntity":[{"@type":"Question","name":"why is running every AI agent as its own Kubernetes Pod inefficient for bursty agent workloads","acceptedAnswer":{"@type":"Answer","text":"Keeping a dedicated Pod alive for every potential agent is wasteful because agents are not continuously available like typical microservices; an agent may wake only when assigned a task, run for seconds or minutes, then go idle, spawn subagents dynamically, or pause waiting for human approval, none of which match a long-running Pod's lifecycle model. developers designing agent infrastructure can follow evolving Kubernetes-for-AI patterns like this on daily.dev."}},{"@type":"Question","name":"what is agent-substrate and how does it separate agents from Kubernetes Pods","acceptedAnswer":{"@type":"Answer","text":"Agent-substrate is a control plane layered above Kubernetes that separates long-running Pods, called Workers, from lightweight logical agents, called Actors, which are scheduled onto Workers only while executing. It introduces WorkerPools (analogous to NodePools) and ActorTemplates (analogous to PodTemplates), letting Kubernetes manage a fixed number of Pods while agent-substrate schedules a much larger number of ephemeral agents onto them. anyone weighing agent orchestration architectures can track projects like agent-substrate via daily.dev."}},{"@type":"Question","name":"how do you configure a WorkerPool and ActorTemplate in kagent's agent-substrate","acceptedAnswer":{"@type":"Answer","text":"A WorkerPool is defined with an ateomImage and replica count specifying the pool of execution workers, while an ActorTemplate specifies the agent's container image, a gVisor runsc execution entrypoint with a hashed binary URL, a pause image, snapshot storage location, and a workerPoolRef pointing to the target WorkerPool, similar to how a PodTemplate defines Pod creation. engineers evaluating gVisor-based agent sandboxing can find configuration walkthroughs like this on daily.dev."}}]}
```

