연재 시리즈

pkos 스터디 3주차 3편 - git서비스 gitlab

악분 2023. 3. 25. 15:39
반응형

3주차 2편에서는 gitops시스템에서 git서비스인 gitlab을 다룹니다.

 

📘 gitlab이란?

gitlab은 사람들에게 많이 알려진 git서비스(github, bitbucket 등) 중 한개입니다. gitops시스템에서는 git기능을 담당합니다.

 

gitlab은 github, bitbucket과 다르게 오픈소스버전이 공개되어 있어 직접 설치와 운영이 가능합니다. 유료버전과 비교하여 기능은 큰 차이가 없어, 폐쇄망에서 오픈소스 git서비스를 사용해야 한다면 gitlab이 강력한 후보입니다. github action처럼 파이프라인 기능도 제공하고 있어 소규모에서 파이프라인을 적용해야 하는 상황에 적합합니다.

 

📘 설치

저는 helm차트로 gitlab을 설치했습니다. 

helm repo add gitlab https://charts.gitlab.io/
helm repo update

 

오버라이딩할 values.yaml을 정의합니다. 저는 aws ALB와 certiciate manager을 설정했습니다. 

global:
  hosts:
    domain: <각자자신의도메인>
    https: true

  ingress:
    configureCertmanager: false
    provider: aws
    class: alb
    annotations:
      alb.ingress.kubernetes.io/scheme: internet-facing
      alb.ingress.kubernetes.io/target-type: ip
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
      alb.ingress.kubernetes.io/certificate-arn: ${CERT_ARN}   # 각자 자신의 값으로 수정입력
      alb.ingress.kubernetes.io/success-codes: 200-399
      alb.ingress.kubernetes.io/group.name: "gitlab"
    tls:
      enabled: false

certmanager:
  install: false

nginx-ingress:
  enabled: false

gitlab-runner:
  install: false

prometheus:
  install: false

 

참고로 aws certificate는 aws CLI로 쉽게 구할 수 있습니다.

aws acm list-certificates --query 'CertificateSummaryList[].CertificateArn[]' --output text
CERT_ARN=`aws acm list-certificates --query 'CertificateSummaryList[].CertificateArn[]' --output text`

 

helm install명령어로 helm차트를 release합니다.

helm upgrade --install gitlab gitlab/gitlab \
-f ./values.yaml \
--namespace gitlab \
--create-namespace \
--version 6.8.4

 

약 5분정도 기다리면 쿠버네티스 pod와 aws ALB, route 53이 설정이 됩니다.

 

gitlab도메인으로 이동해보세요. gitlab로그인 페이지가 보입니다. https인증이 잘 되는지 같이 확인해보세요.

 

📘 계정과 비밀번호

디폴트 계정은 root입니다. 비밀번호는 쿠버네티스 secret에서 조회해야합니다.

kubectl get secrets -n gitlab gitlab-gitlab-initial-root-password --template={{.data.password}} | base64 -d ;echo

 

📘 gitlab 프로젝트 생성

gitlab은 git 저장소를 gitlab프로젝트 단위로 관리합니다. 즉, gitlab에서 git저장소를 만드는 것은 gitlab 프로젝트 생성과 동일합니다.

 

New project버튼을 눌러 프로젝트를 생성할 수 있습니다.

 

프로젝트는 템플릿기반으로 생성할 수 있습니다. 현재는 템플릿이 없으므로 blank project를 선택합니다.

 

프로젝트 이름을 입력하고 public(누구나 접근가능)을 선택합니다. 그리고 Create project버튼을 클릭하여 버튼을 생성합니다.

 

프로젝트 생성되면 git저장소가 만들어졌습니다.

 

📘 git push

생성한 gitlab 프로젝트에 helloworld.txt를 push해볼게요! 이 글은 예제이므로 root계정으로 진행했습니다. 실제 업무에 사용하실 때는 계정을 만들어서 사용해야합니다.

 

git저장소 주소를 복사합니다. https프로토콜을 사용합니다.

 

git clone을 입력하면 로그인 프롬프트가 나옵니다. 디폴트 root계정 비밀번호를 사용했습니다.

git clone {복사한 주소}
user:
password:

 

git push를 하기 전 git정보를 설정합니다. git정보를 설정하지 않으면 git commit이 안됩니다. 이 글은 예제이므로 root로 설정했습니다.

git config --global user.email "root"
git config --global user.name "root"

 

test.txt파일을 추가하고 git저장소에 push합니다.

touch test.txt
git add test.txt
git commit -am "test"
git push

 

gitlab 프로젝트를 확인하면 push한 test.txt가 잘 보입니다.

반응형