Test 내역
- Helm gitlab 설치
- root 로그인, 신규 Project 생성, git push 까지
올해 초 까지 Helm으로 gitlab 설치가 안 되었다. 그래서 docker-compose로 설치 했다. 우연히 어제 gitlab 버전이 14.x 업그레이드 되었다고 해서 혹시나 Helm 설치 해 보니 정상적으로 잘 된다.
Gitlab 설치 버전
[spkr@erdia22 ~ (ubuns:gitlab)]$ helm ls
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
gitlab gitlab 1 2021-07-30 10:09:29.6603678 +0900 KST deployed gitlab-5.1.1 14.1.1
간단히 설치 내역 공유해 본다.
사전 준비 사항으로 Kube Loadbalancer(MetalLB), default Storage Class가 있어야 한다. 나의 Kube Cluster 버전은 최신 1.21.2, Ubunu 20.04 이다.
[spkr@erdia22 spk01 (ubuns:gitlab)]$ kgn
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
ubun20-1 Ready control-plane,master 9d v1.21.2 172.17.29.61 <none> Ubuntu 20.04.2 LTS 5.4.0-65-generic docker://20.10.7
ubun20-2 Ready control-plane,master 9d v1.21.2 172.17.29.62 <none> Ubuntu 20.04.2 LTS 5.4.0-65-generic docker://20.10.7
ubun20-3 Ready control-plane,master 9d v1.21.2 172.17.29.63 <none> Ubuntu 20.04.2 LTS 5.4.0-65-generic docker://20.10.7
먼저 Helm file을 다운 받고 압축 푼다.
helm repo add gitlab https://charts.gitlab.io/
helm repo update
[spkr@erdia22 02.GitLab (ubuns:gitlab)]$ helm pull gitlab/gitlab
[spkr@erdia22 02.GitLab (ubuns:gitlab)]$ ls -lrt
-rw-r--r-- 1 spkr spkr 512441 Jul 30 11:11 gitlab-5.1.1.tgz
[spkr@erdia22 02.GitLab (ubuns:gitlab)]$ tar xvfz gitlab-5.1.1.tgz
(생략)
[spkr@erdia22 02.GitLab (ubuns:gitlab)]$ cd gitlab-5.1.1/
기본 Helm values.yml 파일에 2가지만 수정하면 된다. 상세 파일은 github 파일을 참조한다.
[spkr@erdia22 gitlab-5.1.1 (ubuns:gitlab)]$ cp values.yaml my-values.yaml
편집하기 쉽게 VSCode에서 파일을 연다.
gitlab 용으로 사용할 임의의 도메인을 지정한다. 도메인이 gitlab.XXX.XXX 으로 gitlab이 자동으로 앞에 붙는다.
Let’s Encrypt TLS 인증서가 자동으로 설치되는데 인증서에서 사용할 이메일을 임의로 지정한다.
여기까지 하면 정상적으로 설치가 된다. 나는 gitlab runner(gitlab ci/cd 사용하지 않음) 와 container registry(harbor 사용) 를 사용하지 않으니 해당 내역을 disable 한다.
- 참고로 VSCode 사용하면 아래와 같이 ‘Compare Selected’ 하면 변경된 부분만 빠르게 확인 가능하다.
registry disable
gitlab-runner disable
이제 준비가 되었다. 설치를 시작한다.
[spkr@erdia22 gitlab-5.1.1 (ubuns:gitlab)]$ k create ns gitlab
[spkr@erdia22 gitlab-5.1.1 (ubuns:gitlab)]$ k ns gitlab
Context "ubuns" modified.
Active namespace is "gitlab".
(네임스페이스를 gitlab으로 변경한다.)
[spkr@erdia22 gitlab-5.1.1 (ubuns:gitlab)]$ helm install gitlab -f my-values.yaml .
W0730 13:26:05.293944 21346 warnings.go:70] policy/v1beta1 PodDisruptionBudget is deprecated in v1.21+, unavailable in v1.25+; use policy/v1 PodDisruptionBudget
(생략)
NAME: gitlab
LAST DEPLOYED: Fri Jul 30 13:26:00 2021
NAMESPACE: gitlab
STATUS: deployed
REVISION: 1
NOTES:
NOTICE: The minimum required version of PostgreSQL is now 12. See https://gitlab.com/gitlab-org/charts/gitlab/-/blob/master/doc/installation/upgrade.md for more details.
Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=helm&release=14-1
gitlab 답게 시간이 많이 소요된다. 10분 이상 소요 후 정상적으로 설치 된다. 조급해하면 안된다.
[spkr@erdia22 ~ (ubuns:gitlab)]$ kgp
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
gitlab-certmanager-7d56f6fd9b-87dt5 1/1 Running 0 9m6s 10.233.94.150 ubun20-3 <none> <none>
gitlab-certmanager-cainjector-5cd57fbbbc-vvj7g 1/1 Running 0 9m6s 10.233.66.166 ubun20-2 <none> <none>
gitlab-certmanager-webhook-548d88c996-hspjn 1/1 Running 0 9m6s 10.233.94.151 ubun20-3 <none> <none>
gitlab-gitaly-0 1/1 Running 0 9m4s 10.233.94.159 ubun20-3 <none> <none>
gitlab-gitlab-exporter-86cfc9747c-6d86g 1/1 Running 0 9m6s 10.233.66.167 ubun20-2 <none> <none>
gitlab-gitlab-shell-6899958857-cc5hl 1/1 Running 0 8m49s 10.233.104.94 ubun20-1 <none> <none>
gitlab-gitlab-shell-6899958857-wxb68 1/1 Running 0 9m6s 10.233.66.168 ubun20-2 <none> <none>
gitlab-issuer-1-5g52h 0/1 Completed 0 9m3s 10.233.94.158 ubun20-3 <none> <none>
gitlab-migrations-1-lz79j 0/1 Completed 3 9m3s 10.233.94.156 ubun20-3 <none> <none>
gitlab-minio-658bd7d4fd-x6lcq 1/1 Running 0 9m5s 10.233.104.95 ubun20-1 <none> <none>
gitlab-minio-create-buckets-1-5nnsq 0/1 Completed 0 9m3s 10.233.94.157 ubun20-3 <none> <none>
gitlab-nginx-ingress-controller-6fc99758c8-lntt2 1/1 Running 0 9m5s 10.233.94.154 ubun20-3 <none> <none>
gitlab-nginx-ingress-controller-6fc99758c8-rvd8v 1/1 Running 0 9m5s 10.233.94.153 ubun20-3 <none> <none>
gitlab-nginx-ingress-default-backend-6964c77bb9-nqcxr 1/1 Running 0 9m5s 10.233.94.155 ubun20-3 <none> <none>
gitlab-postgresql-0 2/2 Running 0 9m4s 10.233.94.160 ubun20-3 <none> <none>
gitlab-redis-master-0 2/2 Running 0 9m3s 10.233.66.171 ubun20-2 <none> <none>
gitlab-sidekiq-all-in-1-v1-66878879d6-c9gbp 1/1 Running 0 9m6s 10.233.94.152 ubun20-3 <none> <none>
gitlab-sidekiq-all-in-1-v1-66878879d6-qb4xx 1/1 Running 0 2m48s 10.233.104.96 ubun20-1 <none> <none>
gitlab-sidekiq-all-in-1-v1-66878879d6-v7wfr 1/1 Running 0 2m48s 10.233.66.172 ubun20-2 <none> <none>
gitlab-task-runner-68f7b6b49c-f8x9d 1/1 Running 0 9m6s 10.233.66.169 ubun20-2 <none> <none>
gitlab-webservice-default-5cbfbdd9d6-djt4h 2/2 Running 0 9m5s 10.233.104.93 ubun20-1 <none> <none>
gitlab-webservice-default-5cbfbdd9d6-xjjv8 2/2 Running 0 9m5s 10.233.66.170 ubun20-2 <none> <none>
이제 gitlab 접속을 위해서 도메인을 확인한다.
[spkr@erdia22 gitlab-5.1.1 (ubuns:gitlab)]$ k get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
gitlab-minio <none> minio.spk01.io 172.17.29.164 80, 443 9m43s
gitlab-webservice-default <none> gitlab.spk01.io 172.17.29.164 80, 443 9m44s
브라우저를 사용하니 자기 OS hosts 파일에 위 HOSTS와 ADDRESS를 등록한다.
Window hosts 파일 등록
172.17.29.164 gitlab.spk01.io
이제 웹브라우저로 접속하면 정상적이다.
초기 계정은 root 이고 initial password는 secret으로 확인한다.
[spkr@erdia22 spk01 (ubuns:gitlab)]$ k get secrets gitlab-gitlab-initial-root-password -o jsonpath={.data.password}|base64 -d
xa4PC5vpWPiUUmBveePYhma(생략)
정상적으로 접속이 되고 이제 Gitlab 사용하면 된다.
User를 만들고 Project를 만들어서 (상세 과정 생략) git push 정상 여부 확인한다.
[spkr@erdia22 spk01 (spkcluster:gitlab01)]$ git add . && git commit -m "add test file"
[main 8894102] add test file
1 file changed, 22 insertions(+)
create mode 100644 gitlab-web-compose.yml
[spkr@erdia22 spk01 (spkcluster:gitlab01)]$ git push
Username for 'https://gitlab.spk01.io': jerry
Password for 'https://jerry@gitlab.spk01.io':
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 613 bytes | 613.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://gitlab.spk01.io/jerry/spk01.git
6f53c17..8894102 main -> main
비록 간단한 코드이지만 git push까지 정상적이다.
이제 docker 안쓰고 Kube 기반에서 gitlab 사용 할 수 있게 되었다.
'쿠버네티스 일반' 카테고리의 다른 글
컨테이너 격리 및 보안 설정 - KAN 1차 스터디 (2) | 2022.01.10 |
---|---|
Kubernetes 컨설팅/구축 서비스 (0) | 2021.07.30 |
Kubernetes PVC Replication (8) | 2021.07.28 |
Kube snapshot scheduler (0) | 2021.07.22 |
[kubectl df-pv] Kube PV 사용량 확인 Tool (0) | 2021.07.21 |