The sidecar proxy pattern is at the heart of the data plane and provides service-to-service communication, as shown in the following diagram:
The microservices do not communicate with other microservices directly; this communication is done through the sidecar proxies. The proxy is tightly coupled with a container in a pod, and this proxy architectural pattern fits well in a Kubernetes environment.