1. YAML 파일 가져오기

설치를 위해, 사전에 작성해 둔 YAML 파일들을 가져옵니다.

git clone https://github.com/rudasoft/pipeline.git
cd pipeline

2. jenkins-pv.yaml 수정

apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-pv
  namespace: pipeline
spec:
  storageClassName: jenkins-pv
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 20Gi
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: /host_mnt/d/data/jenkins/

3. PersistentVolume 생성

Kubernetes 에서 실제 물리적 디스크를 PersistentVolumeClaim 과 PersistentVolume 을 통해 사용합니다. 이전 수정한 설정 파일로 PersistentVolume 을 생성하고 확인합니다.

kubectl create -f jenkins-pv.yaml
kubectl get pv --namespace=pipeline
kubectl describe pv jenkins-pv --namespace=pipeline

4. host 파일 수정

Jenkins 용 가상 도메인을 부여하여 Host 머신을 가르킬 수 있도록 host 파일을 수정해야 합니다.
host 파일에 본인의 실제 IP를 맵핑하여 호스트 머신을 찾을 수 있도록 하였습니다.

  • C:\Windows\System32\drivers\etc\hosts 파일 (본인 IP 로 수정 필요)
192.168.43.183	jenkins.pipeline.internal 

5. jenkins-values.yaml 수정

  • 이전 생성한 PersistentVolume 을 설정합니다.
persistence:
    storageClass: "jenkins-pv"
  • Admin 로그인 정보를 설정합니다.
master:
      adminUser: "admin"
      adminPassword: "admin"

6. Jenkins 설치

Jenkins 를 설치 후 확인합니다.

helm install jenkins stable/jenkins -f jenkins-values.yaml --namespace=pipeline
kubectl get pods --namespace=pipeline

정상적으로 설치가 되었다면 docker-registry pod 이 Running 상태가 됩니다.

이전 생성한 pipeline-ns Namespace 에 jenkins-values.yaml설정을 적용하여 Helm 으로 Jenkins 를 설치합니다.

helm install jenkins stable/jenkins -f jenkins-values.yaml --namespace=pipeline-ns

kubectl get pods --namespace=pipeline-

정상적으로 설치가 되었다면 jenkins pod 가 Running 상태가 됩니다.

7. Service 생성

Kubernetes 에서는 pod 들에 접근하기 위한 정책을 정의한 추상적 개념을 Service 를 통해 관리합니다. Running 상태가 된 Jenkins pod에 접근하기 위해서 Service 를 생성합니다.

kubectl expose deployment jenkins --type=LoadBalancer --name=jenkins-svc --namespace=pipeline
kubectl get svc --namespace=pipeline

정상적으로 Service 가 생성되었다면,
http://jenkins.pipeline.internal:8080 로 접속합니다.

profile
루다소프트 기술 블로그입니다.

0개의 댓글