카테고리 없음
쿠버네티스에서 db backup cronjob
hsoooo
2020. 1. 5. 01:49
개요
크론잡으로 시간이 되면 실행중인 파일을 카피하여 registry에 등록
필요 요건
conjob 실행 관련
- docker 실행가능한 image 파일 (docker.sock 연결, runAsUser: 0 설정 필요)
- Dockerfile 설정: configMap 에 등록
- shell script 필요: configMap 에 등록
- 실행 중인 파일 mount 필요
1. docker build
FROM mysql:latest
COPY mysql /var/lib/mysql
..
실행 중인 파일은 카피하여 이미지 빌드하는 Dockerfile을 만들어서 configMap에 등록 한다.
configMap을 volume으로 workdir에 위치 시킨다.
2. shell script
image_name=registry:$(date -d@"$(( `date +%s`+32400))" "+%y%m%d%H%M%S")
docker build . -t $image_name
docker push $image_name
위 도커파일을 이용해 백업 image를 빌드 백업하는 script를 workdir에 위치 시킨다.
script 역시 configMap에 등록 하여 volume으로 마운트 한다.
3. db volume 마운트
4. cronjob
docker 명령어가 실행 가능한 image를 이용하여, script를 정해진 시간에 실행하는 cronjob을 등록 한다.4-