728x90
젠킨스란?
- 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 tool (CI - Continuous Integration)
- 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하다.
젠킨스는 왜 사용할까?
- 로컬에서 개발한 코드를 직접 서버에 올린 뒤 쿠버네티스 클러스트에 컨테이너로 배포한다는 것은 말도 안 된다.
- But, 쿠버네티스 위에 CI/CD pipeline을 만들면 로컬에서 어플리케이션 개발 후 git에 push하면 자동으로 서버 내 쿠버네티스 클러스에 배포된다.
- CI/CD pipeline 구성도


젠킨스의 장점과 단점에는 무엇이 있을까?
동적 Jenkins 장점
- 쉽게 확장할 수 있다.
- 고정된 노드가 아니라 동적으로 Pod를 생성하고 없애기 때문에 작업 부하가 커지면 Pod 개수만 늘리면 된다.
- 리소스를 효율적으로 사용할 수 있다.
- 노드가 고정되어 있지 않으므로 Jenkins 작업이 없을 때는 다른 작업에 리소스를 사용할 수 있다.
- 클러스트를 관리하기 쉽다.
- 클러스터에 대한 모니터링, 로깅, 운영을 전적으로 쿠버네티스에게 맡길 수 있다.
동적 Jenkins 단점
- Slave Node 생성 시간이 소요된다.
- Jenkins 작업을 수행할 때마다 Slave Node(pod)를 새로 생성해야 하기 때문에 지연시간이 발생한다.
- Slave Node의 수행 결과가 사라진다.
- Slave Node에 해당하는 Pod는 생성되고 없어짐을 반복한다. 따라서 Pod에서 수행한 작업의 결과가 사라지게 된다.
- 디버깅이 어렵다.
- Pod가 사라질 때 로그도 함께 사라지므로 디버깅이 어렵다.
젠킨스를 설치해보자
1. Java 설치
젠킨스는 Java App이기 때문에 제일 먼저 설치해야 한다.
sudo apt update
sudo apt install openjdk-8-jdk
2. 젠킨스 데비안 저장소 추가
wget 명령을 사용하여 젠킨스 저장소의 GPG 키를 가져온다.
wget -q -O https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
키를 성공적으로 가져왔다면 현재 레포에서 패키지를 신뢰한다는 의미로 OK가 출력된다.
젠킨스 레포 -> 시스템에 추가
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
3. 젠킨스 설치
sudo apt update
sudo apt install jenkins
설치가 완료되면 서비스 상태를 확인한다.
jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor prese>
Active: active (running) since Wed 2022-04-27 11:11:21 KST; 1h 35min ago
Main PID: 86166 (java)
Tasks: 37 (limit: 4589)
Memory: 835.6M
CGroup: /system.slice/jenkins.service
└─86166 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/jav..>
이런 느낌이면 성공
4. 방화벽 조정
방화벽을 설정해 놓았다면 포트를 열어둬야 한다.
sudo ufw allow 8080
젠킨스 설정
이제 브라우저로 들어가서 `localhost:8080`로 접속하면 아래와 같은 화면이 출력된다.

젠킨스의 초기 암호를 확인하기 위해서 아래 명령어를 입력한다.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
명령어를 통해 나온 암호를 복사 붙여 넣기를 통해 입력 후 다음 단계로 넘어간다.

플러그인 관련 페이지에서 본인 상황에 맞게 선택 후 넘어가면 설치를 진행한다.

설치가 완료되면 유저 정보와 IP 주소 등을 확인하는 페이지가 출력되는데 알맞게 기입해주면 설정이 완료된다.
이상 정리 끝.