kubectl-uncordon
Mark node schedulable
TLDR
Mark a node as schedulable
Mark multiple nodes as schedulable
Mark a node as schedulable in a specific context
Mark nodes matching a label selector as schedulable
Preview the changes without actually uncordoning the nodes (dry run)
SYNOPSIS
kubectl uncordon NODE|-l selector [options]
PARAMETERS
NODE
Name of the node(s) to mark as schedulable (positional argument, supports multiple)
--dry-run=server|client|none
Print objects that would be sent without applying changes
--field-selector='
Filter nodes by field query (e.g., 'metadata.name=my-node')
--selector|-l=string
Filter nodes by label selector (e.g., 'disktype=ssd')
--timeout=duration
Timeout for operation (default 0s)
DESCRIPTION
The kubectl uncordon command marks one or more Kubernetes nodes as schedulable, reversing the effects of kubectl cordon. When a node is cordoned, its spec.unschedulable field is set to true, preventing the scheduler from placing new pods on it. This is useful during maintenance to safely drain pods without disruption.
After completing maintenance tasks like OS upgrades or hardware fixes, run kubectl uncordon to allow workloads to resume on the node. It supports targeting specific nodes by name, label selectors, or field selectors. The command updates the node's status via the Kubernetes API server.
Key use cases include post-drain recovery, scaling clusters dynamically, or recovering from temporary node issues. It does not evict existing pods or remove custom taints—only the cordon unschedulable flag. Always verify node status with kubectl get nodes before and after.
CAVEATS
Does not remove custom taints or node selectors; node must exist and be reachable via API; requires cluster-admin permissions.
EXAMPLES
kubectl uncordon node01
kubectl uncordon -l node-role.kubernetes.io/worker
kubectl uncordon my-node --dry-run=client -o yaml
NODE STATUS CHECK
Use kubectl describe node <name> to confirm Unschedulable: false after uncordon.
HISTORY
Introduced in Kubernetes v1.0 (2014) as core node management tool; enhanced with selectors in v1.2+ for multi-node operations.
SEE ALSO
kubectl cordon(1), kubectl drain(1), kubectl get nodes(1), kubectl taint(1)


