kubernetes init container
초기화컨테이너(init container)는 APP컨테이너가 실행되기전에 파드를 초기화 해준다
초기화컨테이너는 여러개를 구성할 수 있다.
초기화컨테이너의 실행이 실패하면 성공할 때까지 재시작된다. 즉 필요한 명령,제어,조건들을 순서대로 실행하는데 사용
초기화컨테이너가 성공해야 APP컨테이너 실행된다.
초기화컨테이너는 파드가 모두 준비되기전에 실행한 후 종료되는 컨테이너이기 때문에 Probe기능을 지원하지 않는다.
초기화컨테이너는 파드가 재시작 되었다면 반드시 다시 실행된다.
APP컨테이너 즉 Main container를 실행하는데 있어 init container 기능을 활용하여
메인컨테이너가 요구하는 환경,조건이 제데로 구성되어있는지 점검하고 완료되면 메인컨테이너를 실행
●init container 예시 및 test
apiVersion: v1 kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
initContainers:
- name: init-myservice
image: busybox
command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
- name: init-mydb
image: busybox
command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']
|
1.until nslookup myservice 가 실행되면 종료 , 실행되지 않으면 반복
2.until nslookup mydb가 실행되면 종료 , 실행되지않으면 반복
-> 즉 1번 조건이 성공하면 순서대로 2번 조건이 실행된다 1,2번조건이 모두성공하면 Main container가 실행된다.
해당 내용을 kubectl명령어로 체크하면 다음과 같이 확인할 수 있다.
test init container 가 완료 될 수 있도록 초기화컨테이너에서 요구하는
myservice 와 mydb service를 yaml로 작성하여 시작
'IT Study > Kubernetes' 카테고리의 다른 글
kubernetes static pod & kubelet (0) | 2023.01.12 |
---|---|
kubernetes infra container pause (0) | 2023.01.12 |
kubernetes Probe? self-healing (0) | 2023.01.11 |
kubernetes pod (0) | 2023.01.07 |
kubernetes yaml (0) | 2023.01.06 |