Jenkins 컨테이너를 실행할 때
/var/run/docker.sock 옵션을 바인딩해 두셨다면,
Jenkins 내부에서 우분투 호스트의 Docker 엔진을 자유롭게 제어할 수 있는 준비(DooD: Docker Out of Docker)가 끝난 상태입니다.
이후 웹 브라우저에서 Jenkins 화면에 들어가 기본 설정 및 CI/CD 파이프라인을 구축하는 전체 과정을 누구나 따라 할 수 있도록 아주 쉽게 나누어 설명해 드릴게요.
[1. 브라우저 초기 접속] ──> [2. k3s 접근 권한 등록] ──> [3. Jenkins 아이템 생성] ──> [4. Jenkinsfile 작성/실행]
브라우저 주소창에 http://서버IP:9090 으로 접속합니다.
Unlock Jenkins 화면이 나오면, 아래 명령어로 터미널에서 초기 비밀번호를 복사해 붙여넣습니다.
Bashdocker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
Install suggested plugins (권장 플로그인 설치) 버튼을 클릭하여 설치가 끝날 때까지 기다립니다.
관리자 계정(Admin User)을 생성하면 Jenkins 메인 화면에 진입합니다.
Jenkins가 빌드 후 쿠버네티스(kubectl)에 배포 명령을 내릴 수 있도록, k3s 설정 파일을 Jenkins 컨테이너 내부로 복사해 줍니다.
터미널에서 아래 명령어를 한 줄씩 실행해 주세요:
Bash
# 1. Jenkins 컨테이너 내부에 .kube 폴더 생성
docker exec -u root jenkins mkdir -p /root/.kube
# 2. 우분투 호스트의 k3s 설정 파일(kubeconfig)을 Jenkins 내부로 복사
docker cp ~/.kube/config jenkins:/root/.kube/config
# 3. Jenkins 내부에서 kubectl 명령어가 k3s를 제대로 바라보는지 테스트
docker exec -u root jenkins kubectl get nodes
성공 확인: 마지막 명령어 결과로
Ready상태의 노드가 한 줄 출력되면 성공입니다!
Jenkins 메인 화면 좌측 상단의 [새로운 Item] (New Item)을 클릭합니다.
프로젝트 이름을 입력합니다. (예: atms-pipeline)
[Pipeline]을 선택하고 하단의 [OK]를 누릅니다.
설정 화면이 나오면 맨 아래 Pipeline 섹션으로 이동합니다.
Definition 항목을 Pipeline script로 선택하고, 바로 아래 입력창에 아래 4단계의 스크립트를 붙여넣습니다.
아래 스크립트는 "Git 코드 가져오기 $\rightarrow$ 자바 빌드 $\rightarrow$ Docker 이미지 생성 $\rightarrow$ 쿠버네티스 자동 배포"를 한 번에 처리해 주는 전체 동작 코드입니다.
Groovy
pipeline {
agent any
stages {
// 1. Git에서 최신 소스코드 가져오기
stage('1. Checkout Code') {
steps {
// 본인의 Git Repository 주소로 변경하세요
git branch: 'main', url: 'https://github.com/your-github-id/new-atms.git'
}
}
// 2. Spring Boot 백엔드 빌드 (JAR 파일 생성)
stage('2. Build Backend') {
steps {
sh './gradlew clean build -x test'
}
}
// 3. Docker 이미지 빌드
stage('3. Build Docker Image') {
steps {
// Docker 소켓이 바인딩되어 있어 Jenkins 안에서 docker build가 실행됩니다.
sh 'docker build -t atms-backend:latest .'
}
}
// 4. 쿠버네티스(k3s)에 자동 배포
stage('4. Deploy to Kubernetes') {
steps {
// k8s 매니페스트 적용 및 파드(Pod) 재시작
sh 'kubectl apply -f k8s/backend-deployment.yaml'
sh 'kubectl rollout restart deployment/atms-backend'
}
}
}
}
저장(Save) 버튼을 누른 뒤, 좌측 메뉴의 [지금 빌드] (Build Now)를 클릭합니다.
1단계부터 4단계까지 초록색으로 성공 표시가 뜨면 Jenkins + Docker + Kubernetes 연동 자동 배포 환경 구축 완료입니다! 🎉
댓글목록
등록된 댓글이 없습니다.