반응형
참고: 아래 yaml들은 kubernetes 1.23.5 환경에서 진행하였다
# Namespace 생성
- 앞으로 devops라는 namespace에 각종 서비스를 올릴 예정이다.
kubectl create namespace devops
# PV 생성
- synology의 NFS를 사용하기 위해 아래와 같이 pv를 선언
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins-pv
spec:
storageClassName: nfs-sc
capacity:
storage: 50Gi
persistentVolumeReclaimPolicy: Retain
accessModes:
- ReadWriteMany
nfs:
server: 12.34.56.78
path: '/volume1/nfs_root/jenkins'
readOnly: false
# PVC 생성
-
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-pvc
namespace: devops
spec:
storageClassName: nfs-sc
accessModes:
- ReadWriteMany
resources:
requests:
storage: 50Gi
# Deployment 생성
- jenkins lts 이미지를 사용하게 적용하였다
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
namespace: devops
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
securityContext:
fsGroup: 1000
runAsUser: 0
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- name: http-port
containerPort: 8080
- name: jnlp-port
containerPort: 50000
volumeMounts:
- name: jenkins-volume
mountPath: /var/jenkins_home
volumes:
- name: jenkins-volume
persistentVolumeClaim:
claimName: jenkins-pvc
# Service 생성
- 8080포트와 50000 포트를 서비스 포트로 등록
apiVersion: v1
kind: Service
metadata:
name: jenkins-svc
namespace: devops
spec:
ports:
- port: 8080
targetPort: 8080
protocol: TCP
name: http
selector:
app: jenkins
---
apiVersion: v1
kind: Service
metadata:
name: jenkins-jnlp-svc
namespace: devops
spec:
ports:
- port: 50000
targetPort: 50000
protocol: TCP
name: jnlp
selector:
app: jenkins
# Ingress 생성
- jenkins.devops.svc 라는 도메인으로 접속을 하기 위해 ingress 설정을 아래와 같이 하였다
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jenkins-ingress
namespace: devops
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: jenkins.devops.svc
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jenkins-svc
port:
number: 8080
여기까지 모든 구성이 완료되면 /etc/hosts에 master node의 ip를 등록하자
그리고 브라우저에서 해당 주소로 접속을 하면 정상적으로 jenkins가 뜬것을 확인할 수 있다.
http://jenkins.devops.svc:31039
(31039는 앞에 post에서 ingress 서비스를 조회하였을때 알아뒀던 node port이다)
반응형
'인프라 관리 > ▷ Docker & Kubernetes' 카테고리의 다른 글
kubernetes에서 JIRA 구성 (0) | 2022.04.18 |
---|---|
kubernetes환경에서 postgresql 구성하기 (StatefulSet) (0) | 2022.04.18 |
Nginx Ingress Controller 구성하기 (0) | 2022.04.15 |
Synology NAS를 이용하여 NFS 기반 PV(Persistent Volume) 사용 준비 (0) | 2022.04.14 |
Kubernetes를 위한 Desktop App - Lens (0) | 2022.04.14 |