Sidecar container는 init container의 한 종류로 init container로 작동 이후 멈추지 않고 main container와 함께 작동하는 Container이다.
Sidecar container도 init container와 마찬가지로 순차적으로 실행되며 위에서 아래로 실행된다.
단 sidecar container는 정상적인 종료로 완료될때까지 그 다음 container가 기다려 주지 않는다.
init container를 sidecar로 만드려면 init container spec에 restartPolicy를 always로 바꿔주면 된다.
initContainers:
- command: # sidecar container
- ash
- -c
- while true; do date; sleep 1; done
image: alpine:latest
name: init-1
restartPolicy: Always # <-- here
- command: # init container
- date
image: alpine:latest
name: init-2
YAML
복사
실습
apiVersion: v1
kind: Pod
metadata:
name: sidecar-pod
labels:
app: sidecar-example
spec:
initContainers:
- name: init-1
image: alpine:latest
command:
- ash
- -c
- while true; do date; sleep 1; done
restartPolicy: Always
- name: init-2
image: alpine:latest
command:
- date
containers:
- name: main-container
image: nginx:latest
ports:
- containerPort: 80
YAML
복사
kubectl apply -f sidecar-pod.yaml
Shell
복사
•
성공적으로 사이드카가 있는 모습 확인 가능