들어가며
- pod를 배포할 때 여러 volume mount를 지정할 수 있습니다.
- 만일 mount 한 데이터가 변동이 생긴다면, pod를 항상 재시작 해야 하는지 알아보겠습니다.
데이터 확인하기
현재 pod의 mount옵션은 아래와 같습니다.
cm-test라는 configmap과 컨테이너 내부의 /root/와 마운트 설정이 되어있습니다.
volumeMounts: - name: cm-test mountPath: /root/ volumes: - name: cm-test configMap: name: cm-test
cm-test 이름의 configmap은 아래와 같습니다.
test.sh 파일을 Data로 가지고 있으며, 해당 내용은 first 라고 작성되어 있습니다.
kubectl describe cm cm-test Name: cm-test Namespace: default Labels: <none> Annotations: <none> Data ==== test.sh: ---- first Events: <none>
위 내용을 기반으로 현재 pod 내부의 test.sh 스크립트 내용은 아래와 같습니다.
kubectl exec -it POD_NAME -- cat /root/test.sh first
데이터 변경하기
test.sh 내용을 변경한 후 configmap을 재생성 합니다.
vi test.sh first second!! kubectl delete cm cm-test configmap "cm-test" deleted kubectl create configmap cm-test --from-file /root/test.sh configmap/cm-test created kubectl describe cm cm-test Name: cm-test Namespace: default Labels: <none> Annotations: <none> Data ==== test.sh: ---- first second!! Events: <none>
이후 pod의 재기동 없이, 컨테이너 내부의 /root/test.sh 파일 내용을 확인합니다.
kubectl exec -it POD_NAME -- cat /root/test.sh first second!!
위 결과로 알 수 있는 사실은, configmap의 내용이 변경이 되더라도 pod는 재기동 할 필요 없이 실시간 반영된다는 것입니다.
마무리
- configmap 등 pod에 mount 되어 있는 data가 변경이 되면, 변경된 내용이 pod에 자동 적용이 됨을 알아보았습니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.