/data/ckad/fc-app.yml을 편집해서 다음의 조건에 맞는 init 컨테이너를 추가하십시오.
/workdir/fcdata.txt라는 empty 파일을 생성한다.fcdata.txt 파일을 생성하지 못하면 main 컨테이너는 실행할 수 없다./workdir 디렉토리를 공유한다.# 현재 fc-app.yml 파일을 확인합니다.
$ cat /data/ckad/fc-app.yml
# fc-app.yml 파일을 엽니다.
$ vi /data/ckad/fc-app.yml
# 수정한 yaml 파일을 적용합니다.
$ kubectl apply -f /data/ckad/fc-app.yml
apiVersion: v1
kind: Pod
metadata:
name: fc-app
spec:
containers:
- name: main
image: busybox:1.28
command: ['sh', '-c', 'if [ -f /workdir/fcdata.txt ]; then exit 1; else sleep 300; fi']
volumeMounts:
- name: workdir
mountPath: "/workdir"
initContainers:
- name: init
image: busybox:1.28
command: ['sh', '-c', 'touch /workdir/fcdata.txt']
volumeMounts:
- name: workdir
mountPath: "/workdir"
volumes:
- name: workdir
emptyDir: {}
현재 fc-app.yml 파일 확인
$ cat /data/ckad/fc-app.yml
cat /data/ckad/fc-app.yml 명령어로 현재 fc-app.yml 파일의 내용을 확인합니다.fc-app.yml 파일 수정
$ vi /data/ckad/fc-app.yml
vi /data/ckad/fc-app.yml 명령어로 fc-app.yml 파일을 엽니다.apiVersion: v1
kind: Pod
metadata:
name: fc-app
spec:
containers:
- name: main
image: busybox:1.28
command: ['sh', '-c', 'if [ -f /workdir/fcdata.txt ]; then exit 1; else sleep 300; fi']
volumeMounts:
- name: workdir
mountPath: "/workdir"
initContainers:
- name: init
image: busybox:1.28
command: ['sh', '-c', 'touch /workdir/fcdata.txt']
volumeMounts:
- name: workdir
mountPath: "/workdir"
volumes:
- name: workdir
emptyDir: {}
initContainers 섹션을 추가하여 init 컨테이너를 정의합니다.busybox:1.28 이미지를 사용하고 /workdir/fcdata.txt 파일을 생성하는 명령어를 실행합니다.volumeMounts를 통해 /workdir 디렉토리를 공유합니다.fcdata.txt 파일이 있는 경우 종료하고, 그렇지 않으면 300초 동안 대기하도록 설정합니다.수정한 yaml 파일 적용
$ kubectl apply -f /data/ckad/fc-app.yml
kubectl apply -f /data/ckad/fc-app.yml 명령어로 수정한 yaml 파일의 내용을 적용합니다.