Hi, I am new to docker objects and am confused to the applications of different Docker objects. More specifically Deployment, ReplicaSet, Pod, DaemonSet, and Services. I was hoping if someone could give me a brief explanation on when to use these applications. For example(please correct me if I’m wrong), I believe that a Pod can be used if you want to run a container on all nodes in a cluster. And I believe that if you wanted to ensure a pod ran a specific number of instances you would use a ReplicaSet. Additionally, Deployment would be used to deploy updates to my applications with a specific number of replicas. And a Daemon set ensures all eligible nodes run the pod(from what I understand it’s like the Replica Set but only lets eligible nodes to run?).
Couple more questions I had while reading the kubernetes documentation on Deployments:
Also, when defining a deployment, do you need to define all the selector labels on the pod template?
Additionally, does the pod template in the Deployment only have labels that are selector labels?
When dealing with pods, they limit the fields you can change. Do deployments also limit the fields?
When rolling out changes, from what I understood, Deployments automate the scaling up or down of pods(please correct me if this is wrong).
Lastly, I understand that CronJobs can create Jobs on a repeating schedule. Can Jobs do this themselves, or do you need to use CronJobs?
Thanks for taking the time to read this and help.