728x90
반응형
SMALL
-init container 가 성공해야 앱컨테이너가 실행됨
1)앱컨테이너가 실행 전에 미리 동작 시킬 컨테이너
2)본 container가 실행되기 전에 사전 작업이 필요한 경우 사용
3)초기화 컨테이너가 모두 실행된 후에 앱 컨테이너를 실행
https://kubernetes.io/ko/docs/concepts/workloads/pods/init-containers/
예제
# vi myapp.yaml |
apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app.kubernetes.io/name: 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"] |
# kubectl apply -f myapp.yaml |
Every 2.0s: kubectl get pods -o wide master: Wed Sep 6 08:55:02 2023 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES myapp-pod 0/1 Init:0/2 0 14s 10.101.1.132 worker2 status에 Init:0/2 가 걸린것을 확인할수 있다 . |
# vi myapp-svc.yaml |
apiVersion: v1 kind: Service metadata: name: myservice spec: ports: - protocol: TCP port: 80 targetPort: 9376 |
# kubectl create -f myapp-svc.yaml service/myservice created |
하나만 추가시 init:1/2가 되고
apiVersion: v1 kind: Service metadata: name: mydb spec: ports: - protocol: TCP port: 80 targetPort: 9377 |
도 추가해서 같이 올린다
그러면 앱컨테이너가 올라옵니다.
infra container (pause) 이해하기
pause 는 존재하지만 infra 구축만 해주는 역활 대신 pod 를 지우면 같이지워집니다.
728x90
반응형
LIST
'Linux&Ubuntu > Docker&kuber' 카테고리의 다른 글
pod에 Resource 할당하기 CPU/Memory requests Limit (0) | 2023.09.06 |
---|---|
static pod 만들기 (0) | 2023.09.06 |
livenessProbe를 이용해서 self-healing pod 만들기 (0) | 2023.09.05 |
kuberctl 명령어 (0) | 2023.09.01 |
docker_compose_vsftpd활용 (0) | 2023.08.08 |