이번 멀티 컨테이너 파드에 대해서 정리해보도록 한다.
사실 이전 강의들을 봤으면 쿠버네티스 기능상 특별히 다를 것 없는 설명이었는데,
매니페스트 파일 안에 여러 파드를 설정할 수 있다는 것과 파드 컨테이너의 다양한 디자인 패턴에 대한 설명이었다.
강의에선 사이드카(Side-car), 앰배서더 (Ambassador), 어댑터(Adapter) 컨테이너에 대한 개념을 추가로 설명했다.
사이드카(Side-car)
- 웹서버를 보조해주는 로깅 에이전트에 해당하며, 로깅 에이전트는 로그 서버로 로그를 보낸다.
어댑터(Adapter)
- 다양한 웹서버의 로그를 공통 형식으로 바꿔 로그 서버로 보내는 역할을 한다.
앰배서더 (Ambassador)
- Dev, Test, Prod 등 다양한 환경의 DB 로 데이터를 보낼때 사용한다. 한마디로 프록시 서버의 역할을 한다고 한다.
이렇게 3가지를 간단하게 설명했다~
강의 내용은 5분 짜리 였지만.. 처음에 뭔 소리를 하나 싶어서 번역기도 돌려보고 검색도 해봤다.
멀티 컨테이너 설정은 다음과 같이 containers 안에 여러개의 image 를 둔다.
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: yellow
name: yellow
spec:
containers:
- image: busybox
name: lemon
command:
- "sleep"
- "1000"
- image: redis
name: gold
실습으로는 사이드카 컨테이너를 생성하는 작업을 수행했다.
해당 파드 컨테이너 안에서 명령어 실행하는 명령어가 좀 헷갈린다.
# -n [네임스페이스]
kubectl -n elastic-stack describe pods app
kubectl -n elastic-stack get pods app -o yaml
kubectl -n elastic-stack logs kibana
kubectl -n elastic-stack exec -it app -- cat /log/app.log
이번 실습에서는 네임스페이스가 키포인트였다.
다음 실습땐 네임스페이스도 변수로 등록해놓아야겠다.
export ns=default
alias k='kubectl -n $ns'
alias kp='k get pods'
export do="--dry-run=client -o yaml"
alias kcmd='k run tmp --restart=Never --rm -i --image=nginx:alpine -- curl -m 5'
export now="--force --grace-period 0"
생각보다 실습 마치기까지 오래 걸렸다..;
다음은 Section 5 : Observability
'Dev > Kubernetes' 카테고리의 다른 글
[CKAD] section 6. POD Design (1) - Labels & Rolling Update (0) | 2022.04.12 |
---|---|
[CKAD] section 5. Observability (0) | 2022.04.07 |
[CKAD] 2022년 시험 팁 정리 (0) | 2022.03.25 |
[CKAD] section 3. Configuration (4) - Node Selectors & Node Affinity (0) | 2022.03.25 |
[CKAD] section 3. Configuration (3) - SA, Resource, Taints & Toleration (0) | 2022.03.21 |