第 2 章 使用 Helm Chart 在 EKS 上安装 Developer Hub
当您在 Elastic Kubernetes Service (EKS)中安装 Developer Hub Helm Chart 时,它会编配 Developer Hub 实例的部署,它在 AWS 生态系统中提供了强大的开发人员平台。
先决条件
- 已安装带有 AWS Application Load Balancer (ALB)附加组件的 EKS 集群。如需更多信息,请参阅 Amazon Developer Hub 上的应用程序负载均衡 和 安装 AWS Load Balancer Controller 附加组件。
- 您已为 Developer Hub 实例配置了域名。域名可以是 Route 53 上的托管区条目,也可以在 AWS 之外管理。如需更多信息,请参阅 将 Amazon Route 53 配置为您的 DNS 服务 文档。
- 您在 AWS 证书管理器(ACM)中有一个条目,用于您首选的域名。确保保留证书 ARN 的记录。
-
您已订阅了
registry.redhat.io。如需更多信息,请参阅 Red Hat Container Registry 身份验证。 -
在当前
kubeconfig中将上下文设置为 EKS 集群。如需更多信息,请参阅为 Amazon EKS 集群创建或更新 kubeconfig 文件。 -
已安装
kubectl。如需更多信息,请参阅 安装或更新 kubectl。 - 已安装 Helm 3 或最新的。如需更多信息,请参阅在 Amazon EKS 中使用 Helm。
- 您有一个正常工作的默认存储类,如 EBS 存储附加组件,在 EKS 集群中配置。
- 请确定您的系统满足最低要求。请参阅 Red Hat Developer Hub 大小要求。
流程
进入终端并运行以下命令,将包含 Developer Hub chart 的 Helm Chart 仓库添加到本地 Helm registry 中:
helm repo add openshift-helm-charts https://charts.openshift.io/使用以下命令创建 pull secret:
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 创建的 pull secret 用于从红帽生态系统中拉取 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- 更新所需的域名,例如,在 Route 53 或外部 DNS 服务中,以指向置备的 IP 地址。Elastic Kubernetes Service 使用对应的 IP 地址置备一个 Application Load Balancer (ALB)。
在终端中运行以下命令,以使用最新版本的 Helm Chart 并使用上一步中创建的 values.yaml 文件部署 Developer Hub:
helm install rhdh \ openshift-helm-charts/redhat-developer-hub \ [--version 1.7.3] \ --values /path/to/values.yaml
注意
验证
等待 DNS 名称响应,这表示您的 Developer Hub 实例已准备就绪。