A Kubernetes Node is a logical collection of IT resources that supports one or more containers. Nodes contain the necessary services to run Pods (which are Kubernetes's units of containers), communicate with master components, configure networking and run assigned workloads. A Node can host one or multiple Pods. Each Kubernetes Node has services to create the runtime environment and support Pods. These components include Docker, kube-proxy and kubelet.
Kubernetes choreographs the deployment and scaling of applications in containers, rather than the deployment and scaling of necessary hardware systems. Nodes are collections of resources defined by the hosting infrastructure, whether that is on a cloud provider or as physical or virtual machines (VMs). The host environment of a Node can be specially tailored for the applications, but this is not required. Kubernetes creates Node objects that represent a Node and then ensures proper functionality. Pods run on Nodes that have the appropriate available resources for the workload, and meet the Pod's requirements for affinity/anti-affinity with other Pods.