해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.
⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.
멀티 컨테이너 파드에서 각 컨테이너는 POD의 수명 주기 동안 활성 상태를 유지하는 프로세스를 실행할 것으로 예상됩니다. 예를 들어 앞서 언급한 웹 애플리케이션과 로깅 에이전트가 있는 멀티 컨테이너 파드에서 두 컨테이너는 항상 활성 상태를 유지해야 합니다. 로그 에이전트 컨테이너에서 실행 중인 프로세스는 웹 애플리케이션이 실행되는 동안 활성 상태를 유지해야 합니다. 그 중 하나라도 실패하면 POD가 다시 시작됩니다.
그러나 때때로 컨테이너에서 안에서 완료되는 프로세스를 실행하고 싶을 수 있습니다. 예를 들어 기본 웹 애플리케이션에서 사용할 저장소에서 코드 또는 바이너리를 가져오는 프로세스입니다. 이는 Pod가 처음 생성될 때 한 번만 실행되는 작업입니다. 또는 실제 애플리케이션이 시작되기 전에 외부 서비스나 데이터베이스가 작동하기를 기다리는 프로세스입니다. 그것이 initContainers이 필요한 이유입니다.
initContainer는 다음과 같이 initContainers 섹션 내부에 지정된다는 점을 제외하면 컨테이너와 비슷하게 파드에서 구성됩니다.
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> ; done;']
POD가 처음 생성되면 initContainer이 실행되고 애플리케이션을 호스팅하는 실제 컨테이너가 시작되기 전에 initContainer의 프로세스가 완료되어야 합니다.
멀티 파드 컨테이너에 대해 수행한 것과 같이 멀티 initContainer도 구성할 수 있습니다. 이 경우 각 초기화 컨테이너는 한 번에 하나씩 순차적으로 실행됩니다.
initContainer 중 하나라도 완료되지 않으면 Kubernetes는 Init Container가 성공할 때까지 Pod를 반복해서 다시 시작합니다.
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:1.28
command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
- name: init-mydb
image: busybox:1.28
command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']
아래 문서에서 initContainers에 대해 자세히 알아보세요. 그리고 다가오는 모의고사에 도전해보세요.
https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
'MLOps > Doker & Kubernetes' 카테고리의 다른 글
Udemy CKA 강의 정리 105: Practice Test - Secrets (0) | 2023.01.13 |
---|---|
Udemy CKA 강의 정리 106: Solution - Secrets (optional) (0) | 2023.01.12 |
Udemy CKA 강의 정리 112: Multi Container PODs Design Patterns (0) | 2023.01.12 |
Udemy CKA 강의 정리 109: Multi Container PODs (1) | 2023.01.12 |
Udemy CKA 강의 정리 108: Scale Applications (0) | 2023.01.12 |
댓글