베하~! BTC_녹차공원 팀의 민물공원 입니다.
이번주는 Multi Container에 대해 알아보겠습니다!
Multi Container
하나의 Pod 안에는 여러개의 Container가 들어있을 수 있습니다. 단, Pod 내의 Container 들이 서로 다른 종류일때만 가능합니다.
Pod 내에 Container 들은 동일한 네트워크 공간을 공유하기 때문에 서로 간의 통신이 가능하고 저장 공간을 공유하는 것도 간단합니다. Multi Container에는 3가지 종류가 있습니다.
- Sidcar Pattern : Main Container의 기능 확장 또는 향상
ex) Log Saving Sidecar - Ambassador : Main Container의 네트워크 기능 담당
ex) Proxy Container - Adapter : Main Container의 출력 변환
ex) Monitoring Adapter
Pod 내부에서 하나의 Container는 하나의 기능만을 가져야 하며, Main Container를 제외한 다른 Container들이 어떤 목적을 가지고 동작하느냐에 따라 디자인 패턴 이름이 달라집니다.
Multi Container 실습
이번 실습도 Killercoda 에서 따라해보아요.
nginx 컨테이너에 consul 컨테이너를 추가해보는 실습을 진행해볼거예요.
먼저 nginx pod 생성을 위한 yaml 파일을 작성합니다.
kubectl run nginxconsul --image=nginx --dry-run=client -o yaml > pod.yaml
생성된 yaml 파일을 수정하여 consul 컨테이너를 추가합니다.
vi pod.yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: nginxconsul
name: nginxconsul
spec:
containers:
- image: nginx
name: nginx
- image: consul
name: consul
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
nginx와 consul 컨테이너가 포함된 pod를 생성합니다.
kubectl apply -f pod.yaml
생성 후 pod 상태를 확인합니다.
kubectl get pods -o wide
이렇게 오늘은 Multi Container 에 대해 알아보았는데요.
다음번에는 더 흥미로운 주제로 찾아뵙겠습니다.
이상 BTC_녹차공원 팀이였습니다!
베빠~!
'INFRA > DevOps' 카테고리의 다른 글
[Git] Github Action (0) | 2023.09.18 |
---|---|
[DevOps] Jenkins Git 연동 (0) | 2023.09.15 |
[K8S] Taint (0) | 2023.09.06 |
Git Branch의 개념과 활용 (0) | 2023.09.01 |
[DevOps]EC2 Ubuntu에 Jenkins 설치 (0) | 2023.08.30 |
댓글