1 분 소요

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