-
K3S로 프로젝트 구성하기 - 3DevOps/K8s 2023. 5. 23. 23:10
1. 로컬 PC를 NFS 설정 하기
(Multipass NFS용으로 추가생성하여 설정가능)
// 로컬 PC에 nfs 서버 구성 - multipass로 새로 생성하여 사용 가능 sudo apt install nfs-kernel-server // 공유할 디렉토리 생성 sudo mkdir /sharedir/k8s // 권한 부여 sudo chmod 777 /sharedir/k8s // 공유 디렉토리 목록에 추가 sudo vi /etc/exports // 맨 아래 다음 줄 추가 (아이피는 master-node 아이피) /sharedir/k8s 10.199.74.0/24(rw,sync,no_subtree_check) // 디렉토리 내보내기 및 재시작 sudo exportfs -a sudo systemctl restart nfs-kernel-server // 모든 노드에서 실행 apt-get install nfs-common
2. PV Yaml
저장소를 만드는 작업
apiVersion: v1 kind: PersistentVolume metadata: name: pv-nfs spec: capacity: storage: 20Gi volumeMode: Filesystem accessModes: - ReadWriteOnce storageClassName: jenkins-nfs persistentVolumeReclaimPolicy: Retain nfs: server: 172.30.1.77 path: /sharedir/k8s
3. PVC Yaml
원하는 용량과 AccessMode(읽기쓰기용인지 읽기용인지)등을 정하고 storageClassName으로 저장소 선택
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-jenkins spec: accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 10Gi storageClassName: jenkins-nfs
K3S에 저장소 적용하는 과정
// 방금 생성한 pv 적용 k apply -f pv.yaml // 방금 생성한 pvc 적용 k apply -f pvc.yaml // bound 상태 확인 k get pvc // 젠킨스 helm 레포 등록, 다운 helm repo add jenkins https://charts.jenkins.io helm repo update helm search repo jenkins helm pull jenkins/jenkins tar xvfz jenkins-4.3.23.tgz mv jenkins jenkins-4.3.23 rm -rf jenkins-4.3.23.tgz cd jenkins-4.3.23 cp values.yaml my-vaules.yaml // yaml 파일 수정 vi my-vaules.yaml // 위에서 생성한 pvc 적용 persistence.existingClaim : "pvc-jenkins" // 노드포트 설정, 원하는 포트 설정 controller.serviceType : "NodePort" k create ns jenkins helm install jenkins -f my-vaules.yaml . 로컬 nginx를 통해서 VM 포트 포워딩을 하여 로컬에서 확인한다.
로컬에서 접속시
젠킨스 접근시 http://127.0.0.1:[nginx포트]/login 이러한 uri로 접근한다. https X http O // 패스워드 확인 kubectl exec --namespace jenkins -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo
로컬에서 접속한 화면
젠킨스를 쿠버네티스 말고 도커로 별도 실행시
// 도커를 설치했다는 가정하에 명령어 실행 // 볼륨마운트 디렉토리 로컬에 맞게 설정 (-v /home/jenkins:/var/jenkins_home) sudo docker run --name jenkins -it -d --privileged=true -p 1004:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home -u root jenkins/jenkins:lts /sbin/init // 젠킨스 컨테이너 안에서 도커 설치 후 도커 실행시 다음 명령어로 도커 실행 (DockerInDocker) // 젠킨스 안에 도커를 설치한 이유는 추후에 깃허브에서 소스를 빌드후 도커이미지로 만들어 허브로 올리기위함 sudo /etc/init.d/docker start
'DevOps > K8s' 카테고리의 다른 글
K3S로 프로젝트 구성하기 - 4 (0) 2023.06.08 k8s 트러블 슈팅 - Failed to create pod sandbox (0) 2023.06.08 K3S로 프로젝트 구성하기 - 2 (0) 2023.05.23 K3S로 프로젝트 구성하기 - 1 (0) 2023.05.20