0
0
KubernetesConceptBeginner · 4 min read

What Is Sidecar Container in Kubernetes: Simple Explanation & Example

A sidecar container in Kubernetes is a helper container that runs alongside the main application container in the same pod to add extra features like logging, monitoring, or proxying. It shares the pod's resources and network, enabling seamless cooperation without changing the main app.
⚙️

How It Works

Imagine a sidecar container as a helpful assistant riding alongside the main container in the same pod. Both containers share the same network and storage, so they can easily communicate and work together. The sidecar handles tasks that support the main app, like collecting logs, refreshing configuration, or managing network traffic.

This setup is like having a driver and a navigator in a car: the driver focuses on driving (the main app), while the navigator (sidecar) handles directions and communication. This way, the main app stays simple and focused, while the sidecar adds extra capabilities without interfering.

💻

Example

This example shows a pod with two containers: the main app container running a simple web server, and a sidecar container running a log forwarder that reads logs from a shared volume.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: sidecar-example
spec:
  containers:
  - name: main-app
    image: nginx:1.23
    volumeMounts:
    - name: shared-logs
      mountPath: /var/log/nginx
  - name: log-forwarder
    image: busybox
    command: ["sh", "-c", "tail -f /var/log/nginx/access.log"]
    volumeMounts:
    - name: shared-logs
      mountPath: /var/log/nginx
  volumes:
  - name: shared-logs
    emptyDir: {}
Output
The pod starts with two containers: nginx serves web pages and writes logs to /var/log/nginx/access.log, while the busybox container tails the log file, simulating log forwarding.
🎯

When to Use

Use sidecar containers when you want to add features to your app without changing its code. Common uses include:

  • Logging and log forwarding
  • Monitoring and metrics collection
  • Proxying or routing network traffic
  • Configuration updates or secrets management

For example, if your app doesn't support sending logs to a central system, a sidecar can collect and forward logs for you. This keeps your app simple and lets you add or update helpers independently.

Key Points

  • Sidecar containers run alongside main containers in the same pod.
  • They share network and storage, enabling close cooperation.
  • They add supporting features like logging, monitoring, or proxying.
  • They help keep the main app simple and focused.
  • They can be updated or replaced without changing the main app.

Key Takeaways

A sidecar container adds helper features to the main app container in the same pod.
Sidecars share resources and network with the main container for easy cooperation.
They are useful for logging, monitoring, proxying, and configuration tasks.
Using sidecars keeps your main app simple and lets you add features independently.
Sidecar containers can be updated without changing the main application.