A virtual-kubelet
provider that serves Kubernetes agent-sandbox semantics (agents.x-k8s.io,
driven by sandbox-operator)
from sandboxd – the node-local hot-sandbox daemon of
cocoonstack/sandbox.
One virtual node fronts one sandboxd. A sandbox Pod scheduled to that node
becomes a claim against the node’s warm microVM pool; the Pod’s IP is the
sandbox VM’s address; deleting the owning Sandbox CR – and only that –
releases the VM. Kubernetes stays the record-of-intent and policy plane, and
the claim transaction runs entirely on the node.
Kubernetes control plane cocoon node
+-----------------------------+ +--------------------------------------+
| Sandbox CR (agents.x-k8s.io)| | |
| | | | +------------------------------+ |
| v | | | vk-sandbox | |
| sandbox-operator | | | virtual node, kubelet API | |
| runtime mutator sets | | | :10260 | |
| runtime: sandboxd, | | +------------------------------+ |
| nodeSelector + toleration | | | CreatePod ^ status |
+-----------------------------+ | v | |
| scheduler binds | POST /v1/claim id/token/addr |
| the Pod to the | | | |
| virtual node | v | |
+---------------------->| +------------------------------+ |
| | sandboxd hot pool | |
NodeInventory (server-side | | warm microVMs, node-local | |
apply, one object per node) <-|---+------------------------------+ |
| +--------------------------------------+
v
sandbox-operator aggregated apiserver (L3 read path)
Source and issue tracker: github.com/cocoonstack/vk-sandbox. Part of the cocoonstack MicroVM platform.