설치
이 문서는 Kubernetes 또는 OpenShift 클러스터에서 Manifest를 사용하여 GitLab Operator를 배포하는 방법에 대해 설명합니다.
OpenShift를 사용하는 경우, 이러한 단계는 보통 오퍼레이터가 번들로 출판된 후 OLM(Operator Lifecycle Manager)에 의해 처리됩니다. 그러나 사용자들은 최근 오퍼레이터 이미지를 테스트하기 위해 오퍼레이터 저장소에서 사용 가능한 배포 manifest를 사용하여 오퍼레이터를 설치해야 할 수도 있습니다.
전제 조건
설치 페이지의 “전제 조건” 섹션을 참조하십시오.
GitLab Operator 설치
-
GitLab Operator 저장소를 로컬 시스템에 복제합니다.
git clone https://gitlab.com/gitlab-org/cloud-native/gitlab-operator.git cd gitlab-operator
-
GitLab Operator를 배포합니다.
kubectl create namespace gitlab-system task deploy_operator # 또는 "task deploy_operator_openshift"
이 명령은 먼저 오퍼레이터에 의해 사용되는 서비스 어카운트, 역할 및 역할 바인딩을 배포한 후 오퍼레이터 자체를 배포합니다.
병합 요청을 처리할 때
deploy_operator
에서 기본으로 사용되는latest
태그를 무시하려면TAG
환경 변수를 브랜치 이름으로 설정하여deploy_operator
를 실행합니다. 예:TAG=my-mr-branch-name task deploy_operator
.참고: GitLab을 오퍼레이터 네임스페이스에 배포해야 합니다. 다른 네임스페이스는 지원되지 않습니다.
-
GitLab 사용자 정의 리소스(CR)를 생성합니다.
mygitlab.yaml
과 같은 이름의 새 파일을 만듭니다.이 파일에 넣을 내용의 예는 다음과 같습니다.
apiVersion: apps.gitlab.com/v1beta1 kind: GitLab metadata: name: gitlab spec: chart: version: "X.Y.Z" # 이 프로젝트의 루트에 있는 CHART_VERSIONS 파일에서 버전을 선택합니다. values: global: hosts: domain: example.com # 여기에 실제 도메인을 사용합니다. ingress: configureCertmanager: true certmanager-issuer: email: youremail@example.com # 여기에 실제 이메일 주소를 사용합니다.
spec.chart.values
아래에서 사용할 구성 옵션에 대한 자세한 내용은 GitLab Helm 차트 문서를 참조하십시오. -
새로운 GitLab CR을 사용하여 GitLab 인스턴스를 배포합니다.
kubectl -n gitlab-system apply -f mygitlab.yaml
이 명령은 GitLab Operator가 조정하기 위해 클러스터로 GitLab CR을 보냅니다. 컨트롤러 파드의 로그를 계속 확인하여 진행 상황을 확인할 수 있습니다.
kubectl -n gitlab-system logs deployment/gitlab-controller-manager -c manager -f
GitLab 리소스를 나열하고 상태를 확인할 수도 있습니다.
kubectl get gitlabs -n gitlab-system
CR이 조정되면(GitLab 리소스의 상태가
RUNNING
이 됨), 브라우저에서https://gitlab.example.com
으로 GitLab에 액세스할 수 있습니다.
GitLab Operator 업데이트
설치와 동일한 명령이지만 이전에 캐시된 결과를 덮어쓰려면 --force
를 추가해야 할 수 있습니다.
task --force deploy_operator
정리
config/
디렉토리 아래의 파일 제거와 같은 특정 작업은 다시 빌드/배포를 유발하지 않을 수 있으므로 다음과 같이 수행해야 할 수도 있습니다.
task clean
이 명령은 모든 빌드 아티팩트와 설치 레코드를 제거합니다.
삭제
GitLab Operator 및 관련 리소스를 제거하려면 아래 단계를 따르십시오.
오퍼레이터를 제거하기 전에 주의할 사항:
- GitLab 인스턴스가 삭제될 때 Persistent Volume Claims 또는 Secrets가 삭제되지 않습니다.
- 오퍼레이터를 삭제할 때, 설치된 네임스페이스(
gitlab-system
가 기본)는 자동으로 삭제되지 않습니다. 이는 의도치 않게 지속적인 볼륨이 손실되는 것을 방지하기 위한 것입니다.
GitLab 인스턴스 제거
kubectl -n gitlab-system delete -f mygitlab.yaml
이 명령은 GitLab 인스턴스를 제거하고(PVC는 위에서 언급한 것과 같이 제외) 모든 관련 객체를 제거합니다.
GitLab Operator 제거
task delete_operator
이 명령은 실행 중인 배포를 포함한 오퍼레이터 리소스를 삭제합니다. GitLab 인스턴스와 관련된 객체는 삭제하지 않습니다.