반응형
Kubernetes기반 CI/CD환경설정 시리즈 진행을 위해서는 아래 글을 선행하고 오시면 됩니다. (NFS 마운트없이 클러스터 내 Jenkins 설치만 필요하시면 무관합니다.)
Kubernetes기반 CI/CD환경설정 시리즈 01. NFS 서버 구성
Kubernetes기반 CI/CD환경설정 시리즈 02. Helm을 이용한 Private GitLab 설치
Kubernetes기반 CI/CD환경설정 시리즈 03. Helm을 이용한 Private Docker Image Registry 구축
https://momobob.tistory.com/53
0. NFS VM에 디렉토리 추가 (NFS VM에서 실행)
- nfs 서버에 마운트할 경로 추가
- mkdir /mnt/nfs/jenkins
- nfs 서버에 /etc/exports 아래 설정 추가
- /mnt/nfs/jenkins *(rw,insecure,sync,no_root_squash)
- nfs server 재시작
- systemctl restart nfs-kernel-server
반응형
1. helm repository 추가 (여기서부터 master node에서 실행)
- namespace 생성
- kubectl create namespace jenkins
- repo 추가
- helm repo add jenkinsci https://charts.jenkins.io
- helm repo update
- helm search repo jenkinsci
- helm chart tgz파일 생성
- helm fetch jenkinsci/jenkins
- 압축해제
- tar -xvzf jenkins-3.8.4.tgz
- jenkins 디렉토리로 이동
- cd jenkins
- value.yaml 수정
- controller.image: "localhost:30500/jenkins-withdocker"
- image-registry에 도커가 설치된 젠킨스 이미지 push가 선행되어야함.
- 아래 jenkins image dockerfile 참고
- controller.image: "localhost:30500/jenkins-withdocker"
FROM jenkins/jenkins:2.303.2-jdk11
USER root
RUN apt-get update
RUN apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-propertiescommon
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $
(lsb_release -cs) stable"
RUN apt-get update
RUN apt-get install -y docker-ce
RUN mkdir /etc/docker
RUN echo "{ \"insecure-registries\": [\"docker-registry.image-registry:5000\"] }" > /etc/
docker/daemon.json
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://
storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
RUN chmod +x ./kubectl
RUN mv ./kubectl /usr/local/bin/kubectl
USER jenkins
- 계속 value.yaml 수정...
- controller.tag: "1.0.3"
- controller.serviceType: NodePort
- controller.nodePort: 32000
- serviceAccount.create: false
- persistence.storageClass: jenkins-pv
- persistence 수정( 아래와 같이 )
persistence
volumes:
- name: dind
hostPath:
path: /var/run/docker.sock
mounts:
- mountPath: /var/run/docker.sock
name: dind
- template 디렉토리 안에 jenkins-volume.yaml(nfs 관련) 추가
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins-pv
namespace: jenkins
spec:
storageClassName: jenkins-pv
accessModes:
- ReadWriteOnce
capacity:
storage: 10Gi
persistentVolumeReclaimPolicy: Retain
nfs:
path: "/mnt/nfs/jenkins"
server: “10.100.0.105"
- value.yaml파일의 상위경로에서 helm install 실행
- helm install jenkins -n jenkins ./jenkins
- 삭제 명령 (선택사항)
- helm uninstall jenkins -n jenkins
- 파드가 pending 상태이거나 정상적으로 실행안될경우 아래 명령어로 로그 확인
- init container 로그 조회
- kubectl logs -f jenkins-0 -c init -n jenkins
- init container 로그 조회
- 플러그인 다운로드가 안될 경우 values.yaml에서 플러그인 설정 주석 후 재실행
- values.yaml
installPlugins: false
# - kubernetes:1.30.1
# - workflow-aggregator:2.6
# - git:4.9.0
# - configuration-as-code:1.53
- 플러그인 외부에서 다운받아서 넣기 (필요한 플러그인 클러스터 외부 피씨에서 받아서 NFS 내에 넣으면 되는데 구글링 해보시길...)
- docker.sock 실행 권한 문제 발생 시 아래 명령 실행 (자세한 Trouble Shooting은 추후 별도 게시 예정)
- sudo chmod 666 /var/run/docker.sock
- 접속
- 자신의 환경에 맞게 포트포워딩 후 접속
Thank you!
반응형
'Tools > Kubernetes' 카테고리의 다른 글
[Kubernetes Error] Helm을 이용하여 gitlab 설치 시 CrashLoopBackOff 발생 (0) | 2022.03.22 |
---|---|
[Kubernetes기반 CI/CD환경설정 시리즈] 05. helm을 이용한 쿠버네티스 대시보드 설치 (0) | 2022.02.08 |
[Kubernetes기반 CI/CD환경설정 시리즈] 03. Helm을 이용한 Private Docker Image Registry 구축 (0) | 2021.12.23 |
[Kubernetes기반 CI/CD환경설정 시리즈] 02. Helm을 이용한 Private GitLab 설치 (0) | 2021.12.21 |
[Kubernetes기반 CI/CD환경설정 시리즈] 01. NFS 서버 구성 (0) | 2021.12.15 |