A Kubernetes label is an arbitrary key-value pair attached to an object. Other Kubernetes objects use matching labels to identify and select Pods or nodes. section 3.2.4 section 8.1.1
Labels provide the connection between a Deployment and the Pods it manages. The Deployment selector matches the labels on its Pod template, while Services and other objects can select those Pods directly. section 3.2.4 section 3.5
Use labels to:
- Bind a Deployment selector to the Pods created from its Pod template. section 3.2.4
- Expose or manage selected Pods through objects such as Services and Pod Disruption Budgets. section 3.2.4
- Target nodes with particular features through a node selector or node affinity. section 8.1.1
- Keep workloads separated by combining node labels and selectors with taints, tolerations, affinity, or anti-affinity. section 8.4
Selecting an Arm-based node
A workload can require the label kubernetes.io/arch: arm64 with nodeSelector. Kubernetes then schedules the Pod only on a node carrying that label. Node affinity expresses the same requirement more verbosely and supports more expressive logic. If no node has the required label, the Pod remains unscheduled. section 8.1.1 section 8.3
The relationship diagram shows how a Deployment selector matches labels in its Pod template. section 3.2.4






