A ReplicaSet ensures that a specific number of replicas of a Pod are running at all times. While Deployment manages ReplicaSets and provides additional features like rolling updates, StatefulSet is used for stateful applications, and DaemonSet ensures one Pod per node.
You can taint a node with a specific key-value pair and effect, and then only Pods with the appropriate tolerations can be scheduled on those nodes.
Scaling a Deployment to zero replicas terminates all Pods managed by the Deployment, but the Deployment itself and its associated ReplicaSet remain intact. This allows you to scale up the Deployment later if needed.
A DaemonSet ensures that a Pod runs on every node in the cluster (or a subset of nodes based on selectors). This is commonly used for logging, monitoring, or networking agents. The other objects do not guarantee Pods on every node.
A node selector is used in the Pod specification to specify key-value pairs that must match the labels of the desired node.