e2b/k3s template turns an E2B Sandbox into a preconfigured, single-node k3s cluster. kubectl, cluster DNS, networking, storage, and the default k8s components are configured when the sandbox starts.
Use it when an agent or CI job needs a single-node Kubernetes cluster without provisioning or sharing a permanent cluster.
Quickstart
Create and connect to a k3s sandbox from the CLI:kubectl is already configured. On a fresh or resumed sandbox, wait for the node and cluster DNS objects to appear and become ready before deploying:
Deploy and preview an application
This example creates an nginx Deployment and Service, forwards the Service to a sandbox port, and prints an E2B URL that you can open in a browser. Every command that has to stay alive for the whole session uses the same timeout as the sandbox, including the background port-forward. A command started with a shorter timeout is terminated when that timeout expires, which would close the forwarded port while the sandbox is still running.Ctrl+C when you are done watching it, and remove the sandbox with the command it printed:
Check k3s status and logs
k3s is not managed by systemd in the template at the moment. It runs as a plaink3s server process, so use the commands below instead of systemctl or journalctl.
Check that the server process is running and that the control plane answers:
Where to use it
- Give a coding agent an isolated cluster for a repository that expects Kubernetes.
- Validate Helm charts, operators, CRDs, manifests, Services, and DNS in CI.
- Create a cluster per pull request for integration tests or browser previews.
- Reproduce Kubernetes issues without provisioning EKS, GKE, or AKS.
- Test untrusted workloads without sharing a staging cluster.
1
Create an isolated k3s sandbox
The agent, CI job, or preview service gets its own Firecracker microVM and Kubernetes control plane.
2
Deploy the production artifacts
Apply the same container images, Helm charts, CRDs, or manifests that will be promoted later.
3
Test the complete workload
Exercise Pods, Services, DNS, storage, and browser-visible endpoints without affecting a shared cluster.
4
Promote and clean up
Send validated artifacts to the production cluster, save any required test output, and kill the sandbox.
Limitations
- The template runs one Kubernetes node in one sandbox. It does not provide high availability.
- A sandbox is disposable. Do not treat its local Kubernetes storage as a durable system of record.
- Multi-node clusters across sandboxes are not supported.
- Overlay CNIs that require VXLAN, Geneve, or macvlan are not supported. The template uses Flannel’s
host-gwbackend. - IPVS kube-proxy mode and nested-virtualization runtimes such as Kata Containers or KubeVirt are not supported.
- Services do not load balance across endpoints. All traffic to a Service reaches a single Pod, as described in the warning at the top of this page.
kubectl port-forward service/<name>connects to one Pod selected when the forward starts, so it never spreads requests across replicas either.