이번에 Jenkins 포스팅을 하면서 설치만 스무 번은 한 듯합니다.
일단 열번은 넘...
완성형(?) 상황이라 이제부터는 유지보수 위주로 운영하려고 합니다.
일단 수동으로 할 수 있어야 자동화가 의미가 있는 법이니까 수동 버전을 먼저 살펴 봅시다.
# 젠킨스 컨테이너 접속
kubectl -n jenkins exec -it pod/jenkins-0 -c jenkins -- /bin/bash
# 디스크 확인
$ df -h
Filesystem Size Used Avail Use% Mounted on
overlay 36G 25G 12G 69% /
tmpfs 64M 0 64M 0% /dev
tmpfs 5.4G 0 5.4G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
tmpfs 5.4G 372M 5.0G 7% /etc/hostname
/dev/mapper/ocivolume-root 36G 25G 12G 69% /tmp
/dev/sdb 50G 1.5G 48G 3% /var/jenkins_home
tmpfs 11G 8.0K 11G 1% /run/secrets/additional
tmpfs 11G 12K 11G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 5.4G 0 5.4G 0% /proc/acpi
tmpfs 5.4G 0 5.4G 0% /proc/scsi
tmpfs 5.4G 0 5.4G 0% /sys/firmware
# 백업 전에 템프 및 빌드 파일을 삭제 (생략 가능)
# 빌트인 에이전트를 사용하지 않으면 삭제해도 용량 변화가 거의 없음
$ rm -rf /tmp/*
$ rm -rf /var/jenkins_home/jobs/*/builds
docker system prune -a -f;
sudo du -hsx * | sort -rh | head -n 10
/var/lib/docker/volumes
쿠버네티스(K8s)에서 실행되는 Jenkins 전체
# 컨테이너의 템프 경로에 백업 파일을 생성
kubectl -n jenkins exec -it pod/jenkins-0 -c jenkins -- /bin/bash -c "tar -czf tmp/jenkins_home_backup.tar.gz /var/jenkins_home"
# 백업 파일을 로컬로 복사
kubectl -n jenkins cp jenkins/jenkins-0:tmp/jenkins_home_backup.tar.gz ./jenkins_home_backup.tar.gz
Jenkins Configuration as Code(JCasC) 플러그인
Dashboard > Jenkins 관리 > Configuration as Code
Jenkins 설정을 YAML 파일로 저장하고, 이 파일을 Git과 같은 버전 관리 시스템에 저장하여 백업하고 복원할 수 있습니다.
Configuration loaded from :
/var/jenkins_home/casc_configs
# 백업 파일을 설정 파일 경로로 복사
k cp jenkins.yaml jenkins/jenkins-0:var/jenkins_home/casc_configs/jenkins.yaml
전체 복원 및 정기백업은 추가 포스팅 예정
정기백업은 쿠버네티스 CronJob을 사용하거나, Velero와 같은 쿠버네티스 백업 도구를 사용할 수 있습니다.