OpenShift 클러스터 설정
이 문서는 이 프로젝트의 자동화 스크립트를 사용하여 Google Cloud에서 OpenShift 클러스터를 만드는 방법을 안내합니다.
준비
먼저, 여러분은 GitLab 이메일과 연결된 Red Hat 계정이 있어야 합니다.
Red Hat Alliance 담당자에게 연락하여 계정 초대 이메일을 보내주도록 요청하세요. Red Hat 계정을 활성화한 후, OpenShift 실행에 필요한 라이센스와 구독에 액세스할 수 있습니다.
Google Cloud에서 클러스터를 시작하려면, 공용 Cloud DNS 존이 등록된 도메인과 연결되어야 하며 Google Cloud DNS에서 구성되어야 합니다. 도메인이 아직 없는 경우, 이 가이드에서 도메인을 생성하는 단계를 따르십시오.
CLI 도구 및 Pull Secret 가져오기
OpenShift 클러스터를 생성하려면 두 개의 CLI 도구(openshift-install
)가 필요하며, 그 후 클러스터와 상호 작용하기 위해 oc
가 필요합니다.
Pull secret는 Red Hat의 개인 Docker 레지스트리에서 이미지를 가져오는 데 필요합니다. 각 개발자는 Red Hat 계정에 연결된 서로 다른 pull secret를 가지고 있습니다.
CLI 도구와 pull secret를 얻으려면 https://console.redhat.com/openshift/install/gcp/installer-provisioned로 가서 Red Hat 계정으로 로그인합니다.
이 페이지에서 제공된 링크를 사용하여 설치 프로그램과 명령줄 도구의 최신 버전을 다운로드합니다. 이러한 패키지를 추출한 다음 openshift-install
및 oc
를 PATH
에 두십시오.
pull secret를 클립보드에 복사하고 이 저장소의 루트에 pull_secret
이라는 파일로 내용을 작성하세요. 이 파일은 gitignore로 설정되어 있습니다.
Google Cloud (GCP) 서비스 계정 만들기
Google Cloud cloud-native
프로젝트에서 서비스 계정을 만들려면 이 지침을 따르세요. 해당 문서에서 필수로 표시된 모든 역할을 부여합니다.
서비스 계정이 생성되면 JSON 키를 생성하고 이 저장소의 루트에 gcloud.json
으로 저장하세요. 이 파일은 gitignore로 설정되어 있습니다.
OpenShift 클러스터 만들기
아래의 구성 옵션을 확인하고 목표 GCP 프로젝트에서 필수 API 서비스가 활성화되어 있는지 확인합니다.
./scripts/create_openshift_cluster.sh
를 실행하여 Google Cloud에서 OpenShift 클러스터를 만듭니다.
이 클러스터는 3개의 제어 플레인(마스터) 노드와 3개의 작업자 노드로 구성된 6개 노드 클러스터가 될 것입니다 (구성 템플릿). 이 작업은 약 40분이 소요됩니다. 클러스터에 연결하기 위해 콘솔 출력의 마지막에 있는 지침을 따르십시오.
클러스터가 생성되면 https://console.redhat.com/openshift/에서 클러스터가 등록된 것을 볼 수 있어야 합니다. 모든 설치 로그와 메타데이터는 이 저장소 내 install-$CLUSTER_NAME/
디렉토리에 저장됩니다. 이 폴더는 gitignore로 설정되어 있습니다.
이 클러스터가 다른 팀원이나 CI에서 사용될 예정이라면, 1Password Cloud Native 금고에 새 항목을 만들고 INSTALL_DIR
에 배치된 다음 파일을 첨부하세요:
-
metadata.json
, 필요에 따라 클러스터 삭제 -
auth/kubeconfig
, 클러스터 인증 -
auth/kubeadmin-password
, 클러스터 UI 인증
구성 옵션
구성은 환경 변수를 설정하여 실행 중에 적용할 수 있습니다. 모든 옵션은 기본값이 있으며, 필수 옵션은 없습니다.
변수 | 설명 | 기본값 |
---|---|---|
CLUSTER_NAME |
클러스터 이름 | ocp-$USER |
BASE_DOMAIN |
클러스터의 루트 도메인 | k8s-ft.win |
FIPS_ENABLED |
FIPS 암호화 모듈 활성화 | false |
GCP_PROJECT_ID |
Google Cloud 프로젝트 ID | cloud-native-182609 |
GCP_REGION |
클러스터에 대한 Google Cloud 영역 | us-central1 |
GOOGLE_APPLICATION_CREDENTIALS |
Google Cloud 서비스 계정 JSON 파일 경로 | gcloud.json |
GOOGLE_CREDENTIALS |
Google Cloud 서비스 계정 JSON 파일의 내용 |
$GOOGLE_APPLICATION_CREDENTIALS 의 내용 |
PULL_SECRET_FILE |
Red Hat 풀 시크릿 파일의 경로 | pull_secret |
PULL_SECRET |
Red Hat 풀 시크릿 파일의 내용 |
$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 |
참고:
변수 CLUSTER_NAME
및 BASE_DOMAIN
은 클러스터의 도메인 이름을 생성하는 데 결합됩니다.
참고:
FIPS_ENABLED
가 true
로 설정된 클러스터를 생성하면 타사 소프트웨어와 호환성 문제가 발생할 수 있습니다. 우리는 이 문제를 조사하고 있습니다: https://gitlab.com/gitlab-org/charts/gitlab/-/issues/3153
.
OpenShift 클러스터 파괴
./scripts/destroy_openshift_cluster.sh
를 실행하여 Google Cloud에서 OpenShift 클러스터를 파괴합니다. 이 작업은 약 4분이 소요됩니다.
INSTALL_DIR
의 metadata.json
파일이 OpenShift 클러스터를 파괴하는 데 필요한 모든 것입니다. metadata.json
파일은 클러스터의 자격 증명을 보유하는 클러스터의 기존 1Password 항목에 첨부되어 있습니다.
구성 옵션
구성은 다음 환경 변수를 설정하여 실행 중에 적용할 수 있습니다. 모든 옵션은 기본값이 있으며, 필수 옵션은 없습니다.
변수 | 설명 | 기본값 |
---|---|---|
CLUSTER_NAME |
클러스터 이름 | ocp-$USER |
LOG_LEVEL |
openshift-install 출력의 상세 수준 |
info |
GOOGLE_APPLICATION_CREDENTIALS |
Google Cloud 서비스 계정 JSON 파일 경로 | gcloud.json |
GOOGLE_CREDENTIALS |
Google Cloud 서비스 계정 JSON 파일의 내용 |
$GOOGLE_APPLICATION_CREDENTIALS 의 내용 |
다음 단계
OpenShift 클러스터에 GitLab Operator를 설치하는 방법은 doc/installation.md를 참조하세요.
리소스
-
openshift-installer
소스: https://github.com/openshift/installer -
oc
소스: https://github.com/openshift/oc -
openshift-installer
및oc
패키지: https://mirror.openshift.com/pub/openshift-v4/clients/ocp/ - OpenShift Container Project (OCP) 아키텍처 문서: https://docs.openshift.com/container-platform/4.10/architecture/index.html
- OpenShift GCP 문서: https://docs.openshift.com/container-platform/4.15/installing/installing_gcp/installing-gcp-account.html
- OpenShift 문제 해결 가이드: https://docs.openshift.com/container-platform/4.15/support/troubleshooting/troubleshooting-installations.html