A Service in Kubernetes exposes a set of Pods as a network service, allowing stable access even as Pods are created or destroyed. It provides a consistent way to access Pods using a single IP address or DNS name.
A NodePort Service exposes the application on a specific port of each node, allowing external access. The other types have different functionalities: ClusterIP is for internal cluster access, LoadBalancer integrates with cloud load balancers, and ExternalName maps a Service to an external DNS name.
A CNI plugin (Container Network Interface) implements Kubernetes networking, enabling Pods to communicate with each other and external networks. Examples include Flannel, Calico, and Weave Net. Other options do not describe the functionality of CNI plugins.
The default DNS Service in Kubernetes is CoreDNS, which provides internal name resolution for services and Pods within the cluster. kube-dns was the older default DNS implementation. ExternalDNS is used for managing external DNS records, and SkyDNS is a precursor to kube-dns.
Network Policies are used to control and restrict communication between Pods or between Pods and external