Using sidecar proxies
As we mentioned earlier in this book, a sidecar is a pattern where a Pod contains another container in addition to the actual application container to be run. This additional "extra" container is the sidecar. Sidecars can be used for a number of different reasons. Some of the most popular uses for sidecars are monitoring, logging, and proxying.
For logging, a sidecar container can fetch application logs from the application container (since they can share volumes and communicate on localhost), before sending the logs to a centralized logging stack, or parsing them for the purpose of alerting. It's a similar story for monitoring, where the sidecar Pod can track and send metrics about the application Pod.
With a sidecar proxy, when requests come into the Pod, they first go to the proxy container, which then routes requests (after logging or performing other filtering) to the application container. Similarly, when requests leave the application...