1장. Operator를 사용하여 GKE(Google Kubernetes Engine)에 개발자 허브 설치
OLM(Operator Lifecycle Manager) 프레임워크와 함께 배포된 Operator 기반 애플리케이션에서 제공하는 무선 업데이트 및 카탈로그를 사용하려면 Red Hat Container Registry에 배포된 Red Hat Developer Hub Operator를 사용하여 Red Hat Developer Hub를 설치하는 것이 좋습니다.
GKE에서 OpenShift 기반 설치에서 가장 큰 차이점은 다음과 같습니다.
- OLM 프레임워크 및 Red Hat Container Registry는 기본 제공되지 않습니다.
- Red Hat Container Registry 풀 시크릿은 전역적으로 관리되지 않습니다.
- 애플리케이션을 노출하기 위해 Ingress는 OpenShift 경로를 교체합니다.
명확히 하기 위해 콘텐츠는 이러한 플랫폼별 추가 단계를 강조하는 섹션에서 나뉩니다.
1.1. OLM 프레임워크를 사용하여 GKE(Google Kubernetes Engine)에 Developer Hub Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
OLM(Operator Lifecycle Manager) 프레임워크를 기반으로 하는 Red Hat Container Registry(registry.redhat.io)에는 Red Hat Developer Hub 인스턴스 라이프사이클 관리를 위한 Red Hat Developer Hub Operator 배포가 포함되어 있습니다.
그러나 Google Kubernetes Engine (GKE)에서 다음을 수행하십시오.
- OLM(Operator Lifecycle Manager) 프레임워크 및 Red Hat Container Registry는 기본 제공되지 않습니다.
- Red Hat Container Registry 풀 시크릿은 전역적으로 관리되지 않습니다.
따라서 OLM 프레임워크, Red Hat Container Registry를 설치하고 Red Hat Container Registry 풀 시크릿을 프로비저닝하여 Developer Hub Operator를 설치합니다.
사전 요구 사항
-
로컬 환경에
kubectlCLI를 설치했습니다. - 시스템은 Red Hat Developer Hub의 크기 조정 요구 사항을 충족합니다.
- OLM(Operator Lifecycle Manager)을 설치했습니다.
Red Hat Container Registry 에 대한 인증 정보 :
- <redhat_user_name>
- <redhat_password>
- <email>
- Google 계정에 로그인하여 GKE Autopilot 또는 GKE Standard 클러스터를 생성했습니다.
프로세스
GKE 클러스터에 연결합니다.
$ gcloud container clusters get-credentials <cluster-name> --location=<cluster-location>- <cluster-name>
- GKE 클러스터 이름을 입력합니다.
- <cluster-location>
- GKE 클러스터 위치를 입력합니다.
Red Hat Developer Hub Operator를 포함하도록
rhdh-operator네임스페이스를 생성합니다.$ kubectl create namespace rhdh-operator보호된 Red Hat Container Registry(registry.redhat.io)에서 컨테이너 이미지를 가져오기 위해 Red Hat 인증 정보를 사용하여 풀 시크릿을 생성합니다.
$ kubectl -n rhdh-operator create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<redhat_user_name> \ --docker-password=<redhat_password> \ --docker-email=<email>Red Hat Operator가 포함된 카탈로그 소스를 생성합니다.
$ cat <<EOF | kubectl -n rhdh-operator apply -f - apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: redhat-catalog spec: sourceType: grpc image: registry.redhat.io/redhat/redhat-operator-index:v4.19 secrets: - "rhdh-pull-secret" displayName: Red Hat Operators EOFoperator 그룹을 생성하여 Operator 서브스크립션을 관리합니다.
$ cat <<EOF | kubectl apply -n rhdh-operator -f - apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: rhdh-operator-group EOFRed Hat Developer Hub Operator를 설치할 서브스크립션을 생성합니다.
$ cat <<EOF | kubectl apply -n rhdh-operator -f - apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: rhdh namespace: rhdh-operator spec: channel: fast installPlanApproval: Automatic name: rhdh source: redhat-catalog sourceNamespace: rhdh-operator startingCSV: rhdh-operator.v1.8.1 EOFOperator 배포가 완료될 때까지 기다린 후 다음을 실행합니다.
until kubectl -n rhdh-operator get deployment rhdh-operator &>/dev/null; do echo -n . sleep 3 done echo "RHDH Operator Deployment created"ImagePullBackOff오류를 방지하려면 Operator 배포 매니페스트에 풀 시크릿 이름을 포함합니다.$ kubectl -n rhdh-operator patch deployment \ rhdh-operator --patch '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"rhdh-pull-secret"}]}}}}' \ --type=merge
검증
배포 이름을 확인합니다.
$ kubectl get deployment -n rhdh-operator