Context
A WorkerPool is currently reconciled into a Deployment of Worker Pods. Each
Worker has a single Actor assignment, and the scheduler selects an available
Worker:
Actor-level resource requests are not currently part of ActorTemplate or
WorkloadSpec; resource configuration is attached to the Worker Pod:
The current networking/runtime implementation also assumes at most one active
Actor per Worker.
Design question
What concrete requirement motivates using a Worker Pod as the capacity unit,
rather than a node-level DaemonSet/agent that manages multiple per-Actor gVisor
or microVM sandboxes?
The sandbox appears to provide the primary Actor isolation boundary. Node
capabilities such as /dev/kvm, mounts, and networking could also be exposed
to a node-level runtime manager. The current WorkerPool model may introduce
fixed-size resource bins and additional Pod/runtime overhead, while a node
failure still affects all Worker Pods on that node.
Discussion points
- Is
WorkerPool intended to represent warm concurrency slots, resource
classes, or a security/failure domain?
- How should heterogeneous Actor CPU/memory requirements be modeled and
scheduled?
- What Pod-specific property is required beyond the sandbox and runtime
manager?
- Could
WorkerPool represent a runtime/resource class while a node-level
agent schedules multiple Actor sandboxes?
I may be missing constraints around security, snapshot locality, or runtime
lifecycle. The goal of this issue is to clarify the intended abstraction and
trade-offs, rather than propose an immediate implementation change.
Context
A
WorkerPoolis currently reconciled into a Deployment of Worker Pods. EachWorker has a single Actor assignment, and the scheduler selects an available
Worker:
Actor-level resource requests are not currently part of
ActorTemplateorWorkloadSpec; resource configuration is attached to the Worker Pod:The current networking/runtime implementation also assumes at most one active
Actor per Worker.
Design question
What concrete requirement motivates using a Worker Pod as the capacity unit,
rather than a node-level DaemonSet/agent that manages multiple per-Actor gVisor
or microVM sandboxes?
The sandbox appears to provide the primary Actor isolation boundary. Node
capabilities such as
/dev/kvm, mounts, and networking could also be exposedto a node-level runtime manager. The current WorkerPool model may introduce
fixed-size resource bins and additional Pod/runtime overhead, while a node
failure still affects all Worker Pods on that node.
Discussion points
WorkerPoolintended to represent warm concurrency slots, resourceclasses, or a security/failure domain?
scheduled?
manager?
WorkerPoolrepresent a runtime/resource class while a node-levelagent schedules multiple Actor sandboxes?
I may be missing constraints around security, snapshot locality, or runtime
lifecycle. The goal of this issue is to clarify the intended abstraction and
trade-offs, rather than propose an immediate implementation change.