Jenkins / 유지보수 (Ver. 수동)

Flexyz·2024년 2월 12일
0

Jenkins

목록 보기
11/11
post-thumbnail

이번에 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 전체

  • Jenkins 설정과 데이터를 저장하는 Persistent Volume (/var/jenkins_home)
  • 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와 같은 쿠버네티스 백업 도구를 사용할 수 있습니다.

profile
Think about a better architecture

0개의 댓글