Drain appliance

Drain appliance #

Drain appliance is the standard way to take a core appliance out of service for maintenance or decommissioning. It:

  • Reroutes every upstream input currently running through the appliance to another core appliance.
  • Marks the appliance as cordoned, so no new services can be scheduled on it.

Drain appliance button in the appliance detail view

Rerouting is best-effort and may briefly affect the video streams being moved. Drain applies to core appliances only.

Cordon #

Cordon is the flag that drain sets. It can also be toggled manually which is useful when you want to stop new assignments from landing on an appliance without rerouting existing streams yourself.

When an appliance is cordoned:

  • New inputs and outputs are not routed through it, and cannot be created directly on it. This applies to all appliance types.
  • Existing services keep running. Cordon alone never reroutes traffic.
  • The appliance shows a indicator in the Appliances list.

Removing the cordon makes the appliance immediately eligible for new allocations again.

How this differs from kubectl drain and kubectl cordon #

Edge borrows this terminology from Kubernetes, but the two systems are independent — Edge drain does not call kubectl drain or kubectl cordon on the underlying node, and vice versa.

Operation What it does Existing workloads
kubectl cordon Marks a Kubernetes node unschedulable Pods keep running
Edge cordon Marks an appliance ineligible for new allocations Services keep running
kubectl drain Evicts pods from a node, then cordons it Pods gracefully evicted
Drain appliance Reroutes upstream inputs away from the appliance, then cordons it Inputs rerouted; streams may briefly be affected