PaaS/CI CD

(Jenkins, Kubernetes) Jenkins와 Kubernetes 연동하기

armyost 2021. 7. 21. 13:24
728x90

현재 Kubernetes Cluster에 Jenkins를 pod로 올린상태이다. Kubernetes Cluster가 아닌 다른 호스트에서 올려본적이 있으나, 추후에 CI/CD하는데 있어서 괜히 머리 아플터이니, 그냥 Kubernetes Cluster에 올리기 바란다.

 

Jenkins를 올리는 방법은 이전 글을 참고바랍니다.

 

1. 우선 Jenkins plugin 을 설치한다. 시스템설정 > 플러그인 관리

 

설치할 플러그인 대상


kubernetes
Pipeline Utility Steps
Docker Pipeline
GitLab
GitLabHook



2. 설치 후 재시작이 완료되면 Jenkins관리 -> 시스템 설정으로 간다.


#of executor는 2->0으로 변경한다(동시에 배포 가능한 스레드 수인데 0으로 설정하여 동시에 여러개 배포가 되지 않도록 변경한다)

다음으로 
노드관리 >  > Configure Cloud 항목으로 가서 Add a new cloud -> Kubernetes를 클릭한다.



다음에 kubernetes에 대한 설정을 아래와 같이 입력한다. 


Name : kubernetes
kubernetes URL : https://kubernetes.default.svc.cluster.local
Disable https certificate check : Yes
kubernetes Namespace : ns-jenkins(jenkins 서비스를 구동시킨 namespace명)
Jenkins URL : http://jenkins-leader-svc.ns-jenkins.svc.cluster.local
Jenkins tunnel : jenkins-leader-svc.ns-jenkins.svc.cluster.local:50000



각 항목을 입력 후 Credentials에 Add->Jenkins 선택한다.


Jenkins Credentials Provider에서 Kind로 Kubernetes Service Account를 선택한다. 그러면 맨 처음에 yaml로 추가한 ServiceAccount를 사용하게 될 것이다.

3. Credential 적용이 끝나면 커넥션이 정상적인지 테스트 해본다.

다시 설정 페이지로 돌아와서 Credentials -> Secret Text를 선택한 후 Test Connection을 클릭한다. Connection test Successful이 나오면 연결이 정상적으로 이루어진 것이다. 연결이 되었으면 Apply & Save한다.