2장. Helm 차트를 사용하여 GKE에 개발자 허브 설치
GKE(Google Kubernetes Engine)에 Developer Hub Helm 차트를 설치할 때 GKE 에코시스템 내에서 강력한 개발자 플랫폼을 제공하는 Developer Hub 인스턴스의 배포를 오케스트레이션합니다.
사전 요구 사항
-
registry.redhat.io에 가입했습니다. 자세한 내용은 Red Hat Container Registry Authentication 을 참조하십시오. -
kubectl을 설치했습니다. 자세한 내용은 kubetl 설치를 참조하십시오. - Google Cloud CLI를 설치했습니다. 자세한 내용은 gcloud CLI 설치를 참조하십시오.
- Google 계정에 로그인하여 GKE Autopilot 또는 GKE Standard 클러스터를 생성했습니다.
- 개발자 허브 인스턴스의 도메인 이름을 구성했습니다.
- VM에 연결되지 않은 정적 외부 프리미엄 IPv4 글로벌 IP 주소를 예약했습니다. 자세한 내용은 새 고정 외부 IP 주소예약을 참조하십시오.
도메인 이름에 대한 DNS 레코드가 예약된 IP 주소를 가리키도록 구성되었습니다.
참고IP 주소와 같은 값이 있는
A레코드를 만들어야 합니다. 이 프로세스는 전파하는 데 최대 1시간이 걸릴 수 있습니다.- Helm 3 또는 최신 버전을 설치했습니다. 자세한 내용은 Helm 설치를 참조하십시오.
프로세스
터미널로 이동하여 다음 명령을 실행하여 개발자 허브 차트가 포함된 Helm 차트 리포지터리를 로컬 Helm 레지스트리에 추가합니다.
helm repo add openshift-helm-charts https://charts.openshift.io/다음 명령을 사용하여 풀 시크릿을 생성합니다.
kubectl -n <your-namespace> create secret docker-registry rhdh-pull-secret \1 --docker-server=registry.redhat.io \ --docker-username=<user_name> \2 --docker-password=<password> \3 --docker-email=<email>4 생성된 풀 시크릿은 Red Hat Ecosystem에서 Developer Hub 이미지를 가져오는 데 사용됩니다.
수신에 연결해야 하는
ManagedCertificate오브젝트를 생성하여 Google 관리 인증서를 설정합니다.ManagedCertificate오브젝트를 Ingress에 연결하는 예apiVersion: networking.gke.io/v1 kind: ManagedCertificate metadata: name: <rhdh_certificate_name> spec: domains: - <rhdh_domain_name>Google 관리 인증서 설정에 대한 자세한 내용은 Google 관리 인증서 설정을 참조하십시오.
FrontendConfig오브젝트를 생성하여 HTTPS로 리디렉션하는 정책을 설정합니다. 이 정책을 Ingress에 연결해야 합니다.FrontendConfig오브젝트를 Ingress에 연결하는 예apiVersion: networking.gke.io/v1beta1 kind: FrontendConfig metadata: name: <ingress_security_config> spec: sslPolicy: gke-ingress-ssl-policy-https redirectToHttps: enabled: trueHTTPS로 리디렉션할 정책을 설정하는 방법에 대한 자세한 내용은 HTTP를 HTTPS 리디렉션 으로 참조하십시오.
다음 템플릿을 사용하여
values.yaml이라는 파일을 생성합니다.values.yaml파일 예global: host: <rhdh_domain_name> route: enabled: false upstream: service: type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: gce kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME> networking.gke.io/managed-certificates: <rhdh_certificate_name> networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config> className: gce backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true fsGroup: 3000 volumePermissions: enabled: true터미널에서 다음 명령을 실행하여 최신 버전의 Helm 차트 및
values.yaml파일을 사용하여 개발자 허브를 배포합니다.helm -n <your_namespace> install -f values.yaml <your_deploy_name> \ openshift-helm-charts/redhat-developer-hub \ --version 1.6.3최신 Helm 차트 버전의 경우 이 Helm 차트 리포지터리를 참조하십시오.
검증
배포가 완료되었는지 확인합니다.
kubectl get deploy <you_deploy_name>-developer-hub -n <your_namespace>서비스와 Ingress가 생성되었는지 확인합니다.
kubectl get service -n <your_namespace> kubectl get ingress -n <your_namespace>참고ManagedCertificate가 프로비저닝될 때까지 기다립니다. 이 프로세스는 몇 시간이 걸릴 수 있습니다.-
https://<rhdh_domain_name>을 사용하여 RHDH에 액세스 배포를 업그레이드하려면 다음 명령을 사용하십시오.
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version <UPGRADE_CHART_VERSION>배포를 삭제하려면 다음 명령을 사용하십시오.
helm -n <your_namespace> delete <your_deploy_name>