2장. Helm 차트를 사용하여 EKS에 개발자 허브 설치
EKS(Elastic Kubernetes Service)에 Developer Hub Helm 차트를 설치할 때 AWS 에코시스템 내에서 강력한 개발자 플랫폼을 제공하는 Developer Hub 인스턴스의 배포를 오케스트레이션합니다.
사전 요구 사항
- AWS Application Load Balancer(ALB) 애드온이 설치된 EKS 클러스터가 있어야 합니다. 자세한 내용은 Amazon Developer Hub의 애플리케이션 로드 밸런싱 및 AWS Load Balancer Controller 애드온 설치를 참조하십시오.
- 개발자 허브 인스턴스의 도메인 이름을 구성했습니다. 도메인 이름은 Route 53의 호스팅 영역 항목이거나 AWS 외부에서 관리할 수 있습니다. 자세한 내용은 Amazon Route 53 as your DNS 서비스 설명서를 참조하십시오.
- 원하는 도메인 이름에 대한 AWS Certificate Manager (ACM) 항목이 있습니다. 인증서 ARN 기록을 보관해야 합니다.
-
registry.redhat.io에 가입했습니다. 자세한 내용은 Red Hat Container Registry Authentication 을 참조하십시오. -
현재
kubeconfig에서 컨텍스트를 EKS 클러스터로 설정했습니다. 자세한 내용은 Amazon EKS 클러스터의 kubeconfig 파일 생성 또는 업데이트를 참조하십시오. -
kubectl을 설치했습니다. 자세한 내용은 kubectl 설치 또는 업데이트를 참조하십시오. - Helm 3 또는 최신 버전을 설치했습니다. 자세한 내용은 Amazon EKS에서 Helm 사용을 참조하십시오.
프로세스
터미널로 이동하여 다음 명령을 실행하여 개발자 허브 차트가 포함된 Helm 차트 리포지터리를 로컬 Helm 레지스트리에 추가합니다.
helm repo add openshift-helm-charts https://charts.openshift.io/다음 명령을 사용하여 풀 시크릿을 생성합니다.
kubectl create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<user_name> \1 --docker-password=<password> \2 --docker-email=<email>3 생성된 풀 시크릿은 Red Hat Ecosystem에서 Developer Hub 이미지를 가져오는 데 사용됩니다.
다음 템플릿을 사용하여
values.yaml이라는 파일을 생성합니다.global: # TODO: Set your application domain name. host: <your Developer Hub domain name> route: enabled: false upstream: service: # NodePort is required for the ALB to route to the Service type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing # TODO: Using an ALB HTTPS Listener requires a certificate for your own domain. Fill in the ARN of your certificate, e.g.: alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:xxx:xxxx:certificate/xxxxxx alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/ssl-redirect: '443' # TODO: Set your application domain name. external-dns.alpha.kubernetes.io/hostname: <your rhdh domain name> backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: # you can assign any random value as fsGroup fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true # you can assign any random value as fsGroup fsGroup: 3000 volumePermissions: enabled: true터미널에서 다음 명령을 실행하여 최신 버전의 Helm 차트를 사용하고 이전 단계에서 생성한 values.yaml 파일을 사용하여 개발자 허브를 배포합니다.
helm install rhdh \ openshift-helm-charts/redhat-developer-hub \ [--version 1.6.3] \ --values /path/to/values.yaml
검증
DNS 이름이 응답할 때까지 기다린 후 Developer Hub 인스턴스를 사용할 준비가 되었음을 나타냅니다.