![[워밍업클럽: 쿠버네티스] #12. Jenkins Pipeline (3주차)](https://cdn.inflearn.com/public/files/blogs/e0e6bc4a-8685-40c4-a157-2ecdc82233c7/인프런 워밍업 클럽 4기.jpg)
[워밍업클럽: 쿠버네티스] #12. Jenkins Pipeline (3주차)
이번 내용은
Jenkins Pipeline의 기본 구성에 대해 살펴보고,
GitHub에서 JenkinsFile을 통해 파이프라인을 더 세분화해서 살펴보고,
Blue/Green 배포 방식을 체험해보고,
파이프라인을 스크립트로 완전 자동화해볼 것이다.
모든 실습과정은 아래 큐브옵스 카페에 내용대로 진행했습니다.
Jenkins Pipeline 기본 구성
jenkins dashboard에서 pipeline item 을 선택한 후, Pipeline script에 직접 복사해 구성한 방식이다.
script 내용을 살펴보자.
pipieline{ } 코드 안에 여러 스크립트들이 들어가는 구조이다.
중요한 것부터 흐름대로 정리해봤다.
스크립트 내의 stage는 파이프라인의 흐름을 나타낸다. stages{ } 내에 여러 stage를 순서대로 나열하면 된다.
각 stage마다 소스코드 빌드 / 컨테이너 빌드 / 쿠버네티스 배포 이렇게 나누었다.
// 소스 빌드
// 755권한 필요 (윈도우에서 Git으로 소스 업로드시 권한은 644)
sh "chmod +x ./gradlew"
sh "gradle clean build"
소스코드를 다운받고, 해당 소스코드에 대한 권한 부여하는 코드도 중요하고,
릴리즈파일 체크아웃에 대한 코드는 pipeline Syntax에서 Sample Step의 checkout 부분을 확인하면 관련 코드를 알 수 있다.
이 구조처럼 파이프라인을 구축할 수 도 있다.
젠킨스를 마스터 슬레이브 구조로 설치를 하게 됐을떄, 슬레이브에서 스크립트를 돌리겠다는 의미이다.
여러 스크립트를 돌릴 때 로드를 분산해주기 위함이다.
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 배포를 할 때 어떤 파일들을 배포해서 파드를 바꾸는지 흐름을 알게 되었다.
댓글을 작성해보세요.