GitLab 차트를 위한 OpenShift 리소스 준비

Tier: Free, Premium, Ultimate Offering: Self-Managed

이 문서에서는 구글 클라우드에서 OpenShift 클러스터를 생성하기 위해 이 프로젝트의 자동화 스크립트를 사용하는 방법에 대해 안내합니다.

준비 작업

먼저 GitLab 이메일과 연결된 Red Hat 계정이 있어야 합니다. Red Hat 얼라이언스 연락 담당자에게 연락하여 계정 초대 이메일을 받을 수 있도록 요청하세요. Red Hat 계정을 활성화하면 OpenShift를 실행하기 위해 필요한 라이선스 및 구독에 액세스할 수 있습니다.

구글 클라우드에서 클러스터를 시작하려면 공개 클라우드 DNS 영역을 등록된 도메인에 연결하고 구글 클라우드 DNS에서 구성해야 합니다. 도메인이 이미 있는 경우, 이 가이드의 단계를 따라 진행하여 새 도메인을 생성하세요.

CLI 도구 및 Pull Secret 가져오기

OpenShift 클러스터를 생성하는 데 필요한 두 가지 CLI 도구(openshift-install)와 클러스터와 상호 작용하는 도구(oc)가 필요합니다.

Red Hat의 개인 Docker 레지스트리에서 이미지를 가져오려면 Pull Secret이 필요합니다. 각 개발자마다 Red Hat 계정에 연결된 별도의 Pull Secret이 있습니다.

CLI 도구 및 Pull Secret을 가져오려면 Red Hat의 클라우드에 접속하여 Red Hat 계정으로 로그인하세요. 이 페이지에서 제공된 링크를 사용하여 최신 버전의 설치 프로그램과 명령줄 도구를 다운로드하세요. 이러한 패키지를 추출하고 openshift-installocPATH에 배치하세요.

Pull Secret을 클립보드에 복사하고 해당 내용을 이 리포지토리의 루트에 pull_secret 파일에 작성하세요. 이 파일은 gitignored 상태여야 합니다.

구글 클라우드 (GCP) 서비스 계정 생성

구글 클라우드 cloud-native 프로젝트에 서비스 계정을 생성하려면 다음 지침을 따르세요. 해당 문서에서 필수로 표시된 모든 역할을 부여하세요. 서비스 계정이 생성되면 JSON 키를 생성하여 이 리포지토리의 루트에 gcloud.json로 저장하세요. 이 파일은 gitignored 상태여야 합니다.

OpenShift 클러스터 생성

OpenShift 클러스터를 생성하려면 다음을 수행하세요:

  1. GitLab 오퍼레이터 리포지토리를 복제합니다:

    git clone https://gitlab.com/gitlab-org/cloud-native/gitlab-operator.git
    
  2. 구글 클라우드에서 OpenShift 클러스터를 생성하는 스크립트를 실행합니다:

    cd gitlab-operator
    ./scripts/create_openshift_cluster.sh
    

이는 3개의 컨트롤 플레인(마스터) 노드와 3개의 워커 노드로 구성된 6개 노드 클러스터가 됩니다. 이 과정은 약 40분이 소요됩니다. 콘솔 출력의 마지막에 나오는 지침에 따라 클러스터에 연결하세요.

생성되면 Red Hat 클라우드에서 클러스터가 등록된 것을 확인할 수 있어야 합니다. 모든 설치 로그 및 메타데이터는 이 리포지토리의 install-$CLUSTER_NAME/ 디렉토리에 저장됩니다. 이 디렉토리는 gitignored 상태여야 합니다.

구성 옵션

구성은 환경 변수를 설정하여 실행 중에 적용할 수 있습니다. 모든 옵션에는 기본값이 있으므로 옵션을 사용하는 것은 필수가 아닙니다.

변수 설명 기본값
CLUSTER_NAME 클러스터 이름 ocp-$USER
BASE_DOMAIN 클러스터의 루트 도메인 k8s-ft.win
GCP_PROJECT_ID 구글 클라우드 프로젝트 ID cloud-native-182609
GCP_REGION 클러스터의 구글 클라우드 지역 us-central1
GOOGLE_APPLICATION_CREDENTIALS 구글 클라우드 서비스 계정 JSON 파일 경로 gcloud.json
GOOGLE_CREDENTIALS 구글 클라우드 서비스 계정 JSON 파일의 내용 $GOOGLE_APPLICATION_CREDENTIALS의 내용
PULL_SECRET_FILE Red Hat Pull Secret 파일 경로 pull_secret
PULL_SECRET Red Hat Pull Secret 파일의 내용 $PULL_SECRET_FILE의 내용
SSH_PUBLIC_KEY_FILE SSH 공개 키 파일 경로 $HOME/.ssh/id_rsa.pub
SSH_PUBLIC_KEY SSH 공개 키 파일의 내용 $SSH_PUBLIC_KEY_FILE의 내용
LOG_LEVEL openshift-install 출력의 상세 수준 info
INSTALL_DIR 설치 자산 디렉토리, 여러 클러스터를 시작하는 데 유용함 install-$CLUSTER_NAME

참고: CLUSTER_NAMEBASE_DOMAIN 변수는 클러스터의 도메인 이름을 구축하기 위해 결합됩니다.

OpenShift 클러스터 삭제

OpenShift 클러스터를 삭제하려면 다음을 수행하세요:

  1. GitLab 오퍼레이터 리포지토리를 복제합니다:

    git clone https://gitlab.com/gitlab-org/cloud-native/gitlab-operator.git
    
  2. 구글 클라우드에서 OpenShift 클러스터를 삭제하는 스크립트를 실행합니다. 이 작업은 약 4분이 소요됩니다:

    cd gitlab-operator
    ./scripts/destroy_openshift_cluster.sh
    

이중 GOOGLE_APPLICATION_CREDENTIALSGOOGLE_CREDENTIALS 환경 변수를 설정하여 실행 중에 구성할 수 있습니다. 모든 옵션에는 기본값이 있으므로 옵션을 사용하는 것은 필수가 아닙니다.

다음 단계

클러스터가 가동된 상태에서 GitLab을 설치할 수 있습니다.

자원