devops

파드의 멀티 컨테이너, 디자인 패턴(Design Pattern) 정리 본문

DevOps/Kubernetes

파드의 멀티 컨테이너, 디자인 패턴(Design Pattern) 정리

vata500 2022. 12. 18. 19:31
반응형

멀티 컨테이너 파드는 아주 유용하다. 대체로 파드에 하나의 컨테이너만 생성하는 편이지만, 파드에 여러 컨테이너를 추가하면서 얻을 수 있는 장점이 많다.

컨테이너를 동일한 노드에서 관리해야하는 프로세스가 필요하거나, 파드의 컨테이너간 통신이 필요한 경우 멀티컨테이너의 역할이 요구된다.

여기서 멀티컨테이너는 3가지 패턴이 있는데 아래와 같다.

사이드카 패턴(Sidecar)

사이드가 패턴은 어플리케이션에 필수적이지만, 어플리케이션의 일부일 필요가 없는 컨테이너로 구성된다. 대체로 Logging이나 Sync를 맞추거나 혹은 monitoring이 필요한 경우에 많이 사용하는 패턴이다. 이 패턴은 로깅 코드에 결함이 생길 경우에 격리된 컨테이너기 때문에 어플리케이션에 영향을 주지 않는다는 장점이 있다.

어댑터 패턴(Adapter)

어댑터 패턴은 모니터링의 집계나 데이터 표준화에 최적화되어 있다. 대표적으로 응답시간을 추적하는 클러스터 수준의 모니터링 에이전트가 있다.

엠배서더 패턴(Embassader)

컨테이너를 외부와 연결하는 방식이다. 다른 컨테이너가 localhost의 포트에 연결할 수 있는 도록하는 프록시 역할을 한다고 볼 수 있다. 이 앰배서더 컨테이너는 클러스터의 필요에 따라서 이 연결을 다른 환경에 프록시할 수 있다.

대표적으로 데이터베이스에 대한 액세스를 제공하는데 많이 사용된다. 로컬에서 개발할 땐 로컬 DB를 사용하지만, 테스트 및 프로덕션 단계에서는 다른 데이터베이스가 필요하다. 그래서 어플리케이션 환경에 따라서 연결 Endpoint를 변경할 수 있게 해준다.

https://matthewpalmer.net/kubernetes-app-developer/articles/multi-container-pod-design-patterns.html

반응형
Comments