---
title: "Containers and orchestration · Agent Wranglers"
url: https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration
parts: 12
tokens_total: 10481
updated: 2026-10-27
build: a2a6bdfed830
tokens: 1430
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Containers and orchestration

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Infrastructure and environments](https://agentwranglers.se/playbook/infrastructure.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

> Run containers without root, read-only and on private networks. On Kubernetes, set probes, resource requests, disruption budgets and pod security.

A container shares the host's kernel, so its runtime settings decide how far one hole in the app can reach. These rules cover how containers run, on one host with Docker, Podman or Compose, or on an orchestrator such as Kubernetes. How images are built and scanned is in the [containers chapter of the operations playbook](https://agentwranglers.se/playbook/operations/containers.md).

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration">Agent Wranglers infrastructure and environments playbook</a>`. In code you write, add a comment next to it with the same link.

## Required

- INF-73 [Run containers as a user without root](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/non-root-containers.md) · 679 tokens · updated 2026-10-27
  Switch to a user without root with `USER` before the app starts. Give that user write access only to the folders the app writes.
- INF-74 [Never give a container control of the host](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/no-privileged-containers.md) · 954 tokens · updated 2026-10-27
  Never run an app container with `--privileged`, the host's network or process namespace, or the container engine's socket mounted inside.
- INF-76 [Publish only the ports visitors use](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/published-ports.md) · 917 tokens · updated 2026-10-27
  Expose a container port beyond its host or cluster only when visitors must reach it. Bind every other published port to 127.0.0.1, or keep it inside the cluster.
- INF-78 [Probe every Kubernetes workload for readiness and liveness](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/kubernetes-probes.md) · 1,028 tokens · updated 2026-10-27
  Give every container that serves traffic a readiness probe on the app's ready check and a liveness probe on its trivial alive check. Add a startup probe when start takes longer than 10 seconds.
- INF-79 [Set resource requests and a memory limit on every container](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/kubernetes-requests-and-limits.md) · 1,026 tokens · updated 2026-10-27
  Give every container a CPU and memory request from measured use, and a memory limit. Set a default in each namespace, so a container without them is refused or gets one.
- INF-81 [Deny pod traffic by default with network policies](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/kubernetes-network-policies.md) · 1,023 tokens · updated 2026-10-27
  Start every namespace with a policy that denies all incoming and outgoing pod traffic. Then allow each path the service needs, by label and port.
- INF-82 [Enforce the restricted pod security standard](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/pod-security-standards.md) · 875 tokens · updated 2026-10-27
  Label every application namespace to enforce the Kubernetes `restricted` pod security standard. Keep `privileged` only for named system namespaces.

## Recommended

- INF-75 [Make the container file system read-only](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/read-only-containers.md) · 655 tokens · updated 2026-10-27
  Run containers with a read-only root file system. Mount a volume for data and a `tmpfs` for scratch files.
- INF-77 [Put each container only on the networks it needs](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/container-networks.md) · 846 tokens · updated 2026-10-27
  Split containers into networks by who must talk to whom. Put the database on an internal network that only the app joins.
- INF-80 [Keep enough copies running through planned disruptions](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/pod-disruption-budgets.md) · 879 tokens · updated 2026-10-27
  Give every workload with two or more copies a PodDisruptionBudget, so node upgrades and drains never take all its copies at once. Spread the copies across nodes and zones.
- INF-83 [Deploy only signed images from tags that cannot move](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/signed-immutable-images.md) · 869 tokens · updated 2026-10-27
  Make image tags in the registry immutable, sign each image in CI, and let the cluster or host start only images whose signature checks out.
- INF-84 [Rescan the images that are running every day](https://agentwranglers.se/playbook/infrastructure/containers-and-orchestration/rescan-running-images.md) · 730 tokens · updated 2026-10-27
  Every day, scan each image that runs in production against the latest vulnerability data. Open a ticket for every new critical or high finding with a fix, and redeploy a fixed image within 7 days.

- Previous: [Hosting platforms](https://agentwranglers.se/playbook/infrastructure/hosting-platforms.md)
- [All chapters](https://agentwranglers.se/playbook/infrastructure.md)
