🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

[워밍업클럽: 쿠버네티스] #12. Jenkins Pipeline (3주차)

[워밍업클럽: 쿠버네티스] #12. Jenkins Pipeline (3주차)

이번 내용은

  1. Jenkins Pipeline의 기본 구성에 대해 살펴보고,

  2. GitHub에서 JenkinsFile을 통해 파이프라인을 더 세분화해서 살펴보고,

  3. Blue/Green 배포 방식을 체험해보고,

  4. 파이프라인을 스크립트로 완전 자동화해볼 것이다.

     



    모든 실습과정은 아래 큐브옵스 카페에 내용대로 진행했습니다.

    https://cafe.naver.com/f-e/cafes/30725715/articles/87

 

Jenkins Pipeline 기본 구성

imagejenkins dashboard에서 pipeline item 을 선택한 후, Pipeline script에 직접 복사해 구성한 방식이다.

 

script 내용을 살펴보자.

pipieline{ } 코드 안에 여러 스크립트들이 들어가는 구조이다.

중요한 것부터 흐름대로 정리해봤다.

image스크립트 내의 stage는 파이프라인의 흐름을 나타낸다. stages{ } 내에 여러 stage를 순서대로 나열하면 된다.

각 stage마다 소스코드 빌드 / 컨테이너 빌드 / 쿠버네티스 배포 이렇게 나누었다.

// 소스 빌드
// 755권한 필요 (윈도우에서 Git으로 소스 업로드시 권한은 644)
sh "chmod +x ./gradlew"
sh "gradle clean build"

소스코드를 다운받고, 해당 소스코드에 대한 권한 부여하는 코드도 중요하고,

 

릴리즈파일 체크아웃에 대한 코드는 pipeline Syntax에서 Sample Step의 checkout 부분을 확인하면 관련 코드를 알 수 있다.

 

image이 구조처럼 파이프라인을 구축할 수 도 있다.

젠킨스를 마스터 슬레이브 구조로 설치를 하게 됐을떄, 슬레이브에서 스크립트를 돌리겠다는 의미이다.

여러 스크립트를 돌릴 때 로드를 분산해주기 위함이다.

 

Github 연결 및 파이프라인 세분화

위 스크립트와 거의 동일하지만, 각 단계별로 스크립트를 더 세분화 했고,
이번에는 GitHub에 Jenkinsfile로, jenkins dashboard에서 pipeline script from scm(소스관리도구, 즉 git)을 선택해 위 젠킨스파일의 경로를 표시해주면 스크립트 코드로 파이프라인을 읽어주게 된다.

젠킨스 파일을 자세하게 분석하려면 아래 코드에서 확인할 수 있다.

https://github.com/wnsrlf0721/kubernetes-anotherclass-sprint2/blob/main/2212/Jenkinsfile

Blue/Green 배포 적용

전 단계와 파이프라인 구축은 유사하지만, 파이프라인 내용에 Blue/Green 배포를 적용한 개념이 들어가있다.

https://github.com/wnsrlf0721/kubernetes-anotherclass-sprint2/blob/main/2213/Jenkinsfile

파일 내에 Blue / Green 폴더를 구분해서 Blue폴더 내 파일들을 먼저 빌드한 후, 파드들이 Running 될 걸 확인한 후에,

Green으로 배포하는 걸 눌러야한다.

Green으로 배포하면 어떤 파일이 생성되고, 전환이 어떻게 이루어지는 지 스크립트에 나와있다.

 

파이프라인을 스크립트로 자동화

https://github.com/wnsrlf0721/kubernetes-anotherclass-sprint2/blob/main/2214/Jenkinsfile

 

각 파이프라인 별로 어떻게 stage가 구성이 되는지, 또 Blue/Green 배포를 할 때 어떤 파일들을 배포해서 파드를 바꾸는지 흐름을 알게 되었다.

댓글을 작성해보세요.

채널톡 아이콘