Паттерн sidecar — это подход к проектированию, где вспомогательный компонент развёртывается рядом с основным сервисом — примерно как коляска, прикреплённая к мотоциклу. Оба компонента работают вместе, но разрабатываются и поддерживаются независимо.
Основная цель — обработка сквозной функциональности без модификации основного сервиса. К таким задачам относятся:
Это позволяет основному сервису сосредоточиться на его основной бизнес-логике.
Компонент sidecar работает как дополнительный процесс, который разделяет с основным сервисом один жизненный цикл, сеть и хранилище. Ключевые характеристики:
localhost или общий томВ Kubernetes паттерн sidecar реализуется путём запуска дополнительного контейнера внутри того же пода, что и основной контейнер. Поскольку контейнеры в поде разделяют:
— sidecar может беспрепятственно перехватывать, дополнять или расширять поведение основного контейнера.
Pod
├── Primary Container (твой сервис)
└── Sidecar Container (например, прокси, log shipper)
Самый известный случай использования — service mesh вроде Istio или Linkerd, которые автоматически внедряют прокси-sidecar'ы (например, Envoy) в каждый под для:
Это значит, что никаких изменений в коде приложения не требуется, чтобы получить эти возможности.
В Kubernetes sidecar-контейнер должен работать в отдельном pod'е от основного контейнера приложения, чтобы обеспечить слабую связанность и независимое управление жизненным циклом.
Новый — ещё не проверен сообществом
Вы