쿠버네티스에 젠킨스(Jenkins) 설치하기
MetalLB 구성 > jenkins namespace 생성 > pv,pvc 생성 > deployment 생성 > service 생성
# MetalLB 구성
MetalLB 컨트롤러는 작동방식(Protocol)을 정의하고 EXTERNAL-IP를 부여해 관리한다. MetalLB 스피커는 정해진 작동방식에 따라 경로를 만들 수 있도록 네트워크 정보를 광고하고 수집해 각 파드의 경로를 제공한다.
1. 사전에 정의된 오브젝트 스펙으로 MetalLB 구성
$ kubectl apply -f _Book_k8sInfra/ch3/3.3.4/metallb.yaml
2. 파드 확인
$ kubectl get pods -n metallb-system -o wide
3. MetalLB 설정 적용
$ kubectl apply -f _Book_k8sInfra/ch3/3.3.4/metallb-l2config.yaml
$ kubectl get configmap -n metallb-system
# namespace 생성
$ kubectl create namespace jenkins
# PV 와 PVC 구성
$ kubectl apply -f jenkins-volume.yaml
더보기
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins
namespace: jenkins
spec:
capacity:
storage: 50Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
server: 192.168.56.10
path: /var/jenkins_home
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins
namespace: jenkins
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 50Gi
# 젠킨스 배포
1. jenkins deployment 와 service 생성
# jenkins_deployment.yaml 배포
$ kubectl apply -f jenkins_deployment.yaml
# jenkins_service.yaml 배포
$ kubectl apply -f jenkins_service.yaml
더보기
# jenkins_deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins-deploy
namespace: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- name: http-port
containerPort: 8080
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: jenkins
mountPath: /var/jenkins_home
volumes:
- name: jenkins
persistentVolumeClaim:
claimName: jenkins
# jenkins_service.yaml
apiVersion: v1
kind: Service
metadata:
name: jenkins
namespace: jenkins
spec:
type: LoadBalancer
ports:
- port: 8080
targetPort: 8080
selector:
app: jenkins
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-jnlp
namespace: jenkins
spec:
type: LoadBalancer
ports:
- port: 50000
targetPort: 50000
selector:
app: jenkins
2. jenkins deployment 와 service 생성 확인
$ kubectl get all -n jenkins
3. jenkins pod log 조회 (admin 비밀번호 확인)
$ kubectl logs jenkins-deploy-7fbfbc56b8-vk7gx -n jenkins
4. jenkins 접속
접속 후 log에서 확인한 admin 비밀번호 입력
5. 플러그인 설치
Install suggested plugins 을 눌러 플러그인 설치
7. 설치 완료
참고 문서:
- https://www.jenkins.io/doc/book/installing/kubernetes/(PV,PVC 구성)
- https://cleanupthedesk.tistory.com/49(Jenkins 설치)
- "컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 - 조훈,심근우,문성주 지음/길벗출판사" 책을 기반으로 실습한 내용입니다.(MetalLB 설치)
'DevOps > CI|CD' 카테고리의 다른 글
젠킨스 살펴보기 (0) | 2022.06.13 |
---|---|
커스터마이즈로 배포 간편화하기 (MetalLB 구성) (0) | 2022.06.13 |
젠킨스 설치를 위한 간편화 도구 (0) | 2022.06.13 |
컨테이너 인프라 환경에서 CI/CD (0) | 2022.06.13 |
통합 및 배포 자동화 (0) | 2022.06.13 |