第 3 章 Red Hat Developer Hub 与 Amazon Web Services (AWS)集成
您可以将 Red Hat Developer Hub 应用程序与 Amazon Web Services (AWS)集成,这有助于简化 AWS 生态系统中的工作流。将 Developer Hub 资源与 AWS 集成,可访问全面的工具、服务和解决方案。
与 AWS 集成需要使用以下方法之一在 Elastic Kubernetes Service (EKS)中部署 Developer Hub:
- Helm chart
- Red Hat Developer Hub Operator
当您使用 Helm Chart 在 Elastic Kubernetes Service (EKS)中部署 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。
流程
进入终端,运行以下命令将包含 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在终端中运行以下命令,使用最新版本的 Helm Chart 部署 Developer Hub,并使用上一步中创建的 values.yaml 文件:
helm install rhdh \ openshift-helm-charts/redhat-developer-hub \ [--version 1.1.4] \ --values /path/to/values.yaml注意
验证
等待 DNS 名称响应,表示您的 Developer Hub 实例已准备就绪。