전공공부
Multi-Container PODs 본문
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 |