MSA 9일차 : 쿠버네티스 - Jenkins CI/CD 파이프라인 생성

parang·2025년 6월 9일

LG CNS AM Inspire Camp 2기

목록 보기
42/50
post-thumbnail

CI/CD 파이프라인을 구현할 수 있는 많은 소스 제어 엔진 및 빌드/배포 엔진이 있다. 그 중에서 깃허브를 소스 제어 저장소로 선택하고, 빌드 엔진으로는 젠킨스를 이용할 것이다.

CI/CD

  • CI : 빌드, 테스트

  • CD : 딜리버리, 디플로이(아르고 cd -> 쿠버네티스 Deploy)
    딜리버리 : 컨테이너 레파지토리에 올리기.
    디플로이 : 레파지토리 + 운영환경

  • Jenkins : CI/CD 플랫폼. 파이프라인 구축에 사용!

Jenkins

정의

젠킨스란 CI/CD를 위한 오픈 소스 자동화 플랫폼이다.
파이프라인 구축에 활용!

Jenkins 설치

도커 데스크탑 열기

docker compose

미리 생성한 디렉토리에 준비한 docker compose yml파일을 넣고, power shell에서 docker compose 를 실행한다.

다음은, 로컬호스트 8000에 접속하여 비밀번호를 입력하고, 플러그인 설치! 설치 시간이 꽤 오래 걸린다.

Cf. 초기 비밀번호는 C:\server\jenkins\jenkins_home\secrets 디렉토리 initialAdminPassword 파일에 있다.

플러그인 설치

설치하는 플러그인은 다음과 같다.

Authentication Tokens API
Docker
Docker Pipeline
Generic Webhook Trigger
Git Parameter
Stage View

Tool 설정

jdk, gradle, docker 디렉터리 등 설정
주의 : 띄어쓰기 조심!

컴파일, 빌드 하기 위한 Credential 등록

도커 허브, 깃허브 토큰 등록

파이프라인

파이프라인 -> 젠킨스 파일에 코드 소스로 사용.

기본 구조

pipeline {
    agent any -> 어디서 실행시킬 건지

    environment { 
        // 환경 변수 정의
    }

    parameters {
        // 파라미터 정의 (예: 선택값, 문자열 입력 등)
    }

    tools {
        // 빌드 도구 정의 (예: JDK, Maven, Gradle 등)
    }

    options {
        // 타임아웃, 로그 보존 등 파이프라인 옵션
    }

    stages { -> 컨테이너 개념
        stage('Build') {
            steps {
                echo 'Build 단계'
                // 빌드 명령어
            }
        }
        stage('Test') {
            steps {
                echo 'Test 단계'
                // 테스트 명령어
            }
        }
    }

    post {
        always {
            echo '항상 실행됨'
        }
        success {
            echo '성공 시 실행됨'
        }
        failure {
            echo '실패 시 실행됨'
        }
    }
}

파이프라인 문법

agent

stages

steps

environment

post

parameters

options

tools

when : 조건문 처럼 사용

🔁 빌드 트리거

Jenkins에서 빌드 트리거(Build Trigger)란 특정 조건이 충족되었을 때 자동으로 빌드를 시작하는 기능이다.

✅ 기본 개념

Jenkins는 GitHub 저장소를 주기적으로 감시(Polling) 하거나,

Webhook을 통해 GitHub로부터 알림을 받아

변경사항(Push)이 감지되면 자동으로 빌드를 실행한다.

🔍 SCM 변경사항 감지 흐름

  1. Jenkins가 GitHub 저장소를 일정 주기로 검사 (예: 5분마다).

  2. 가장 최근 빌드 이후에 새 커밋이 존재하면,

  3. 자동으로 빌드를 트리거함.

실행

젠킨스에서 이제 실행해보자.
new item 쪽을 클릭하면 여러 타입을 선택할 수 있다. 보통 폴더를 생성하고 그 안에서 파이프라인들을 여러개 생성하는 형식으로 사용한다고 한다.

총 6단계로 빌드가 되고, 하나라도 안되면 실패한다. 로그를 보면서 하나씩 문제를 해결하면 결국엔 push 성공!

profile
파랑입니다.

0개의 댓글