In Kubernetes, you don’t work with Pods directly, instead, you work with the deployments or Statefulsets, which is the blueprint of the Pod. You can think of it as one more layer of abstraction on containers and Pod. Working with deployments or Statefulsets makes the deployments, scaling and management of containers really easy.
Ingress allows the services within the cluster to be exposed outside the cluster. It also provides load balancing capabilities for these requests. The routing is controlled by rules defined on the Ingress resource. For Ingress to work, the Kubernetes cluster also need to have an ingress controller.