반응형
아래의 Kubernetes기반 CI/CD환경설정 시리즈 01. NFS 서버 구성 포스팅에서 이어지는 내용입니다.
https://momobob.tistory.com/50
NFS 서버설치를 이어서 아래의 쿠버네티스 클러스터 내에 파드로 GitLab을 올려보았습니다.
0. NFS VM에 디렉토리 추가 (NFS VM에서 실행)
- 생성할 파드에 마운트할 디렉토리 생성
- mkdir /mnt/nfs/gitlab
- mkdir /mnt/nfs/gitlab/data
- mkdir /mnt/nfs/gitlab/log
- mkdir /mnt/nfs/gitlab/config
- nfs server 재시작
- systemctl restart nfs-kernel-server
1. git clone (여기서부터 Master node에서 실행)
- git clone https://github.com/choisungyoung/kubernetes-example
- cd kubernetes-example
2. namespace 생성
- kubectl create ns gitlab
3. 설정 변경
- cd 11.cloude-setup/gitlab
- cd helm-charts/
4. NFS 서버 ip설정
- vi values.yaml
# gitlab image
nameOverride: ""
fullnameOverride: ""
namespace: "gitlab"
gitlabimage: "gitlab/gitlab-ce"
nfs:
name: "nfs"
datasize: "5Gi"
logsize: "10Gi"
configsize: "1Gi"
ip: "10.100.0.105"
5. NFS 서버 마운트 경로 설정
- 아래 파일내용의 표시한 메타데이터 이름을 잘 보고 nfs 경로를 아래 파일 내용과 같이 수정함.
- vi templates/persistentvolume.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: {{ template "pvdata" . }}
... (중략) ...
nfs:
path: /mnt/nfs/gitlab/data
server: {{ .Values.nfs.ip }}
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: {{ template "pvlog" . }}
... (중략) ...
nfs:
path: /mnt/nfs/gitlab/log
server: {{ .Values.nfs.ip }}
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: {{ template "pvconfig" . }}
... (중략) ...
nfs:
path: /mnt/nfs/gitlab/config
- NFS 서버에서 위에서 설정한 경로에 해당하는 디렉토리 생성
- mkdir /mnt/nfs/gitlab
- mkdir /mnt/nfs/gitlab/data
- mkdir /mnt/nfs/gitlab/log
- mkdir /mnt/nfs/gitlab/config
- NFS 서버에서 exports 설정
- vi /etc/exports(nfs서버에서 실행)에 아래 설정 추가
- /mnt/nfs/gitlab *(rw,no_root_squash)
- NFS 서버 재기동
- systemctl restart nfs-kernel-server
6. 차트 설치
- helm install gitlab ./helm-charts
- GitLab 접속 (나의 경우 VM과 포트포워딩을 해놓은 상타라 로컬아이피로 접속)
반응형
7. 관리자 로그인
- kubectl exec -it -n gitlab <gitlab pod id> -- bash
- cd /etc/gitlab
- cat initial_root_password
id : root
password : 위 텍스트 로그인
- 관리자로 로그인 후 회원가입 승인
8. 사용자 로그인
9. 프로젝트 생성 후 clone url 확인
- 파드 ID로 url 생성된 것을 볼 수 있음.
- 저러한 Pod명으로된 DNS는 gitlab파드가 존재하지 않는 노드나 외부에서는 접근하여 프로젝트를 받을 수 없음.
- 그렇기 때문에 외부에서도 접근할 수 있도록 external_url 수정
- nfs 서버에 접속
- vi /mnt/nfs/gitlab/config/gitlab.rb
- 32라인의 external_url를 아래와 같이 CoreDNS로 수정
- external_url ‘http://gitlab-gitlab.gitlab.svc'
- <서비스 명>.<네임스페이스명>.<리소스명>
- gitlab 파드 bash실행하여 설정 적용
- kubectl exec --stdin --tty <파드명> -- /bin/bash
- gitlab-ctl reconfigure
- 재접속을 하여 url를 보면 쿠버네티스에서 제공하는 DNS(CoreDNS)로 설정되어 클러스터 내에서 접근가능하게 됨.
Thank you!
반응형
'Tools > Kubernetes' 카테고리의 다른 글
[Kubernetes기반 CI/CD환경설정 시리즈] 05. helm을 이용한 쿠버네티스 대시보드 설치 (0) | 2022.02.08 |
---|---|
[Kubernetes기반 CI/CD환경설정 시리즈] 04. Helm을 이용한 Jenkins 설치 (0) | 2022.01.20 |
[Kubernetes기반 CI/CD환경설정 시리즈] 03. Helm을 이용한 Private Docker Image Registry 구축 (0) | 2021.12.23 |
[Kubernetes기반 CI/CD환경설정 시리즈] 01. NFS 서버 구성 (0) | 2021.12.15 |
[Kubernetes] 쿠버네티스 Worker node의 docker 초기화 (0) | 2021.11.30 |