What is the connection or difference between Deployment, Pod, Service?

Almost never want to create a Pod directly. A Deployment is a managed group of Pods (meaning: the number of replicas is maintained across time).

Deployment is, for most users, the primary workload interface. If a Pod dies (e.g. a node goes away), Deployment will make sure that a new one comes up.

A Service is a related but distinct concept. A service is a group of pods which serve the same purpose on the network. That could be one Deployment, or it could be many Deployments. Not all Deployments want to be exposed as a Service, and some Services are backed by things other than Deployments.

This is a prime example of what kubernetes docs describe as “loose coupling”.