Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

전공공부

Multi-Container PODs 본문

Study/K8S

Multi-Container PODs

monitor 2023. 3. 26. 17:02

k8s에는 다양한 타입의 멀티 컨테이너 포드 방식이 존재합니다 Ambassador, Adapter, Sidecar

 

Pod에 각각 페어 형태로 기능이 달라도 같이 공용으로 움직이는 Pod가 필요하다면 MultiContainer Pod가 필요합니다.

 

종속성을 가지는 포드들 끼리 묶어 줄 수 있어야 하죠.

Create

pod-definition.yaml

 

apiVersion: v1
kind: Pod
metadata: 
  name: myapp-pod
spec:
  containers:
    - name: data-processor
      image: data-processor
      ports:
        - containerPort: 8080
    - name: log-agent
      image: log-agent

 

Design Patterns

1. Sidecar Pattern

 

- 사이드 카 패턴의 좋은 예는 로깅 서비스와 WAS 서비스를 함께하는 경우이다. logging 서비스가 중앙 로깅 서버로 요청을 보낼때의 행위이다.

 

2. Adapter Pattern

 

- 어뎁터 컨테이너의 경우 로깅 서비스를 보낼때 다양한 형태로 로깅 데이터를 중앙 로깅 서버로 보내게 된다. 이 때, 이를 하나의 형태로 만들어주기 위해서 어뎁터를 붙여서 보내면 한 형태의 로깅 데이터를 사용 할 수 있다.

 

3. Ambassador

 

- Dev용 Test용 Prod등을 나눠서 보내는 형태를 생각하면 된다.

 

Tip : k replace --force -f <editor.yaml> #replace될 yaml이 알아서 pod를 내리고 올려준다.
init Container

initContainer는 포드가 처음 한 번 실행 될 때만 실행되는 컨텐츠를 실행 하기 위한 컨테이너입니다.

 

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox:1.28
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: busybox
    command: ['sh', '-c', 'git clone <some-repository-that-will-be-used-by-application> ;']

'Study > K8S' 카테고리의 다른 글

Logging  (0) 2023.03.26
Readiness & Liveness Probe  (0) 2023.03.26
Node Selectors & Node Affinity  (0) 2023.03.22
Taints And Tolerations  (0) 2023.03.19
Resource Requirements  (0) 2023.03.19