반응형
# Init 컨테이너
- 초기화를 실행해주는 컨에티너
- 주 컨테이너가 실행되기 전에 미리 실행되어 초기화를 해주는 컨테이너
# 쿠버네티스 공식 사이트에서 Init Containers 검색 : kind: 검색하여 소스코드 찾기
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.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
- name: init-mydb
image: busybox:1.28
command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]
vim pop-init-container.yaml
- 소스코드 붙여넣기
kubectl create -f pop-init-container.yaml
kubectl get pod
- init에 대한 조건이 만족하기 전까지는 pod 가 실행되지 않고 아래와 같이 남아 있는다.
myapp-pod 0/1 Init:0/2 0 41s
# 이전 소스코드에 있던것과 같이 myservice 와 mydb 를 실행해야 한다.
apiVersion: v1
kind: Service
metadata:
name: myservice
spec:
ports:
- protocol: TCP
port: 80
targetPort: 9376
---
apiVersion: v1
kind: Service
metadata:
name: mydb
spec:
ports:
- protocol: TCP
port: 80
targetPort: 9377
vim svc-pod-mydb.yaml
kubectl create -f svc-pod-mydb.yaml
kubectl get pod -w
- 모니터링을 해보면 init 컨테이너 쪽에 0/2 였던 상태정보가 2/2로 바뀌면서 pod가 실행이 되는것을 확인 할 수 있다.
myapp-pod 1/1 Running 0 6m17s
반응형
'⭐ Kubernetes & EKS > Kubernetes (쿠버네티스)' 카테고리의 다른 글
Static pod (스태틱 pod)에 대해서 알아보자 (0) | 2021.09.26 |
---|---|
노드마다 포드를 하나씩 배치하는 방법 (1) | 2021.09.26 |
하나의 포드에서 멀티 컨테이너 실행하기 (0) | 2021.09.20 |
초기 명령어 및 아규먼트 전달과 실행 (0) | 2021.09.15 |
쿠버네티스 환경 변수 설정 - my-sql 비밀번호를 환경변수로 전달하기 (0) | 2021.09.14 |