설치
이 문서는 Kubernetes 또는 OpenShift 클러스터에서 매니페스트를 통해 GitLab Operator를 배포하는 방법을 설명합니다.
OpenShift를 사용하는 경우 이러한 단계는 일반적으로 OLM(Operator Lifecycle Manager)에 의해 처리됩니다. 그러나 최신 운영자 이미지를 테스트하기 위해 사용자는 운영자 리포지토리에서 제공되는 배포 매니페스트를 사용하여 운영자를 설치해야 할 수도 있습니다.
필수 사항
설치 페이지의 “필수 사항” 섹션을 참조하십시오.
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
환경 변수를 브랜치 이름으로 설정합니다. 예:TAG=my-mr-branch-name task deploy_operator
.포크된 MR에서 작업할 때 브랜치 이름으로 인해 잘못된 이미지 이름이 생성될 수 있으며, 이 파이프라인은 포크에서 실행되었습니다. 코드가 우리의 파이프라인에 보안 위험을 초래하지 않는다고 판단되면 프로젝트에서 수동 파이프라인을 트리거하고 커밋 SHA를
TAG
로 사용하십시오. 예:TAG=7f954ee1 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 Chart 문서를 참조하십시오. -
새 GitLab CR를 사용하여 GitLab 인스턴스를 배포합니다.
kubectl -n gitlab-system apply -f mygitlab.yaml
이 명령은 GitLab Operator가 조정할 수 있도록 클러스터에 GitLab CR을 전송합니다. 컨트롤러 포드에서 로그를 tailing하여 진행 상황을 확인할 수 있습니다:
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 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 인스턴스와 위에서 언급한 (PVCs)를 제외한 모든 관련 객체를 제거합니다.
GitLab 운영자 제거
task delete_operator
이 명령은 실행 중인 Deployment를 포함하여 운영자의 리소스를 삭제합니다. GitLab 인스턴스와 관련된 객체는 삭제하지 않습니다.