# 초기화 컨테이너
- gitRepo 볼륨은 더 이상 사용되지 않는다, 대신 InitContainer 를 이용하여 Git 저장소가 있는 컨테이너를 프로비전 한다.
- 초기화 컨테이너(InitContainer )에 EmptyDir 볼륨을 마운트 하고, git 명령을 사용해서 Git 저장소를 복제하고, 파드 컨테이너 에서 EmptyDir 볼륨을 마운트한다.
- 컨테이너 실행 전 추가작업이 필요할 때(파드 생성할 때 딱 한번, 애플리케이션은 꼭 종료되는 애플리케이션)
- git 저장소를 제공
- 파드의 애플리케이션 컨테이너가 실행되기 전에 , 여러가지 작업을 수행 하도록 설정, 성공하기 전까지는 에플리케이션 컨테이너는 실행되지 않는다.
# 초기화 컨테이너를 사용하여 Git 저장소를 제공
# ldh-pod-git.yml
apiVersion: v1
kind: Pod
metadata:
name: ldh-pod-git
spec:
initContainers:
- name: git-clone
image: alpine/git
args:
- clone
- --single-branch
- --
- https://github.com/kubernetes/kubernetes
- /repo
volumeMounts:
- name: git-repository
mountPath: /repo
containers:
- name: git-container
image: busybox
args: ['tails', '-f'. '/dev/null']
volumeMounts:
- name: git-repository
mountPath: /repo
volumes:
- name: git-repository
emptyDir: {}
.spec.initContainers (초기화 컨테이너)가 쿠버네티스 저장소를 Git 으로 클론하여 / repo 디렉토리로 저장
-> /repo 디렉터리는 emptyDir 타입의 볼륨인 git-repository로 제공
-> 초기화 컨테이너가 성공하면 git-container 컨테이너에서 똑같은 git-repository 볼륨을 마운트 한다
# 초기화 컨테이너를 가지고 있는 파드 생성
-파드의 상태가 초기화 (Init:0/1)에서 파드 초기화 중 (PodInitializing)으로 전환 되고,
마지막으로 초기화를 성공하면 애플리케이션 컨테이너가 실행(Running)된다.
# 파드 생성
# Git 저장소가 클론 됐는지 확인
'클라우드 > 쿠버네티스(Kubernetes)' 카테고리의 다른 글
쿠버네티스 Kubernetes 스토리지 볼륨 5 / PersistenVolume(PV) 및 PersistentVolumeClaim(PVC) (0) | 2021.07.13 |
---|---|
쿠버네티스 Kubernetes 스토리지 볼륨 4 / hostPath 볼륨 (0) | 2021.07.12 |
쿠버네티스 Kubernetes 스토리지 볼륨 2 / emptyDir 볼륨 (0) | 2021.07.12 |
쿠버네티스 Kubernetes 스토리지 볼륨 1 (0) | 2021.07.12 |
로드 밸런서 (0) | 2021.07.09 |