본문 바로가기

클라우드/Kubernetes(쿠버네티스)

[kubernetes] Jenkins vs Jenkins X

Jenkins 개념

Java Runtime위에서 동작하는 자동화 서버

 

다양한 플러그인을 종합해서 CI/CD Pipeline을 만들어서 자동화 작업

 

개발 시 지속적으로 통합 서비스를 제공하는 CI툴.

 

젠킨스와 같은 CI툴이 등장하기 전에는 개발자들이 당일 작성한 소스들의 커밋이 모드 끝난 심야 시간대에 이러한 빌드가 타이머에 의해 집중적으로 진행되었는데, 이를 nightly-build라고 한다.

 

하지만 젠킨스는 정기적인 빌드에서 한발 나아가 Git과 같은 버전관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정할 수 있다.

 

Jenkins X 개념

Question 

왜 Jenkins는 잘나가는 Jenkins 툴을 두고 새로운 툴을 개발하였을까?

 

Answer 

클라우드 시대가 되었으며 컨테이너 환경이 되었기 때문에 쿠버네티스 환경에 맞춘 새로운 CI/CD툴인 Jenkins X를 개발



특징

  • Kubernetes에 적합한 CI/CD 도구
  • Jenkins X에서 가장 중요한 개념 : Pipeline
  • Jenkins X에서 수행되는 모든 과정들은 Pipeline을 통해 수행
  • Jenkins X는 Prow와 Tekton을 통해 실행
  • Jenkins X를 설치해도 실제로 사용하는 것은 Jenkins와 추가 서비스들이 Kubernetes와 연동되어 있을 뿐

먼저 개발자가 Git Repository로 소스를 푸시한다. 특정 branch (master, develop etc.)에 푸시될 경우 Prow에서 이벤트를 받아 파이프라인을 처리한다. 그 후 TEKTON에서 실질적인 파이프라인을 수행하는데 그 전에 Jenkins X가 사전 작업을 수행 후 넘겨주며 최종적으로 우리의 귀엽고 예쁜 Application이 배포되게 된다. 

 

Jenkins X 가 tekton을 실행시킨다는 의미는 이 pipelineRun을 실행시키는 것이며 이에 필요한 리소스인 Pipeline을 미리 생성하고 실행시킨다.

(prow는 tekton trigger역할과 비슷)

 

용어

webhook

  • 새 이벤트가 서버에서 발생한 경우 서버 측 응용 프로그램이 클라이언트 측 응용프로그램에 알릴 수 있는 메커니즘 제공
  • 역방향 API라고도 한다.
  • 일반적인 API는 클라이언트가 서버를 호출한다. 반면 웹훅의 경우 웹훅을 호출하는 서버 측에 등록하면 서버에서 이벤트가 발생했을 때 클라이언트를 호출한다.
  • 특정 Event -> Trigger로 웹훅 동작 -> 지정한 Action 발생

 

'클라우드 > Kubernetes(쿠버네티스)' 카테고리의 다른 글

[kubernetes] 파드 스케줄링  (0) 2021.08.23
[kubernetes] 사용자 권한 (keycloak)  (0) 2021.07.25
[kubernetes] Jenkins vs Jenkins X  (0) 2021.07.25
[kubernetes] Tekton  (0) 2021.07.25
[쿠버네티스] Helm  (0) 2021.07.08
[쿠버네티스] 시크릿  (0) 2021.06.11