5.3 젠킨스 설치 및 설정하기
5.3.1 헬름으로 젠킨스 설치하기
# helm 저장소 추가
helm repo add jenkins https://charts.jenkins.io
# helm config 다운로드
helm inspect values jenkins/jenkins > jenkins.yaml
controller:
adminUser: "admin" # 젠킨스 로그인 아이디
adminPassword: admin # 젠킨스 로그인 패스워드
ingress:
...
enabled: true
apiVersion: "networking.k8s.io/v1"
...
annotations:
kubernetes.io/ingress.class: nginx
...
hostName: <Worker Node Ip의 hostName>
persistence:
enabled: true
storageClass: nfs-standard
accessMode: "ReadWriteOnce"
size: "8Gi"
# 설치
kubectl create ns jenkins
kubens jenkins
helm install jenkins -f jenkins.yaml jenkins/jenkins
5.3.2 젠킨스 살펴보기
젠킨스 접속하기
- jenkins.yaml 에서 설장했던 hostName 으로 접속
- adminUser, adminPassword 에 설정했던 아이디 패스워드로 로그인
5.3.3 젠킨스 컨트롤러 설정하기
젠킨스 시스템 설정하기
- 젠킨스 관리 > 시스템 설정 메뉴로 이동
젠킨스 시스템 설정
이 현재 접속한 컨트롤러의 설정을 의미
젠킨스 플러그인 관리하기
- 젠킨스 관리 > 플러그인 관리 메뉴로 이동
- 이곳에서는 플러그인 설치 가능 목록, 설치 된 목록, 프록시 서버 설정 등을 할 수 있다.
5.3.4 젠킨스 에이전트 설정하기
젠킨스 노드 관리
- 젠킨스 관리 > 노드 관리 메뉴로 이동
- 신규 노드
- Configure Clouds
- 클라우드 환경 기반의 에이전트를 설정할 때 필요
- Node Monitering
- 노드 목록
쿠버네티스에서 젠킨스 에이전트 구성
- Configure Clouds 메뉴로 이동
- Kubernetes
- 쿠버네티스 설정과 관련된 영역으로 Name에 이름을 지정할 수 있다.
- Kubernetes Cloud details
- 쿠버네티스 클러스터에 접속하기 위한 정보를 설정할 수 있다.
- Pod Templates
- 에이전트로 사용할 파드와 관련된 설정을 한다.
- 젠킨스 컨트롤러를 다시 시작하면 모든 설정이 초기화 된다.
jenkins 서비스 어카운트를 위한 권한 설정하기
# jenkins 계정에 쿠버네티스 클러스터에 대한 admin 권한을 부여한다.
kubectl create clusterrolebinding jenkins-cluster-admin \
--clusterrole=cluster-admin --serviceaccount=default:jenkins
- jenkins 서비스 어카운트를 통해 젠킨스 에이전트 파드를 생성하거나 젠킨스 에이전트 파드 내부에서 쿠버네티스의 오브젝트에 제약 없이 접근하려면 cluster-admin 역할을 부여해야 한다.
-
명령 |
설명 |
kubectl create |
오브젝트를 생성하는 kubectl 명령어 |
clusterrolebinding |
생성되는 오브젝트가 clusterrolebinding임을 나타낸다. |
jenkins-cluster-admin |
clusterrolebinding으로 생성되는 오브젝트의 이름이 jenkins-cluster-admin임을 나타낸다. |
–clusterrole=cluster-admin |
clusterrolebinding의 첫 번째 옵션으로, cluster-admin 역할을 부여한다. |
–serviceaccount=default:jenkins |
clusterrolebinding의 두 번쨰 옵션으로, default에 있는 jenkins라는 서비스 어카운트에 이 권한을 부여한다. |
# clusterrolebinding에 적용 된 내용을 yaml으로 출력
kubectl get clusterrolebindings jenkins-cluster-admin -o yaml