설치를 위해, 사전에 작성해 둔 YAML 파일들을 가져옵니다.
git clone https://github.com/rudasoft/pipeline.git
cd pipelineapiVersion: 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/Kubernetes 에서 실제 물리적 디스크를 PersistentVolumeClaim 과 PersistentVolume 을 통해 사용합니다. 이전 수정한 설정 파일로 PersistentVolume 을 생성하고 확인합니다.
kubectl create -f jenkins-pv.yaml
kubectl get pv --namespace=pipeline
kubectl describe pv jenkins-pv --namespace=pipelineJenkins 용 가상 도메인을 부여하여 Host 머신을 가르킬 수 있도록 host 파일을 수정해야 합니다.
host 파일에 본인의 실제 IP를 맵핑하여 호스트 머신을 찾을 수 있도록 하였습니다.
192.168.43.183	jenkins.pipeline.internal persistence:
    storageClass: "jenkins-pv"master:
      adminUser: "admin"
      adminPassword: "admin"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 상태가 됩니다.
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 로 접속합니다.