第 1 章 在 Elastic Kubernetes Service (EKS)上安装 Red Hat Developer Hub
您可以使用以下方法之一在 Amazon Elastic Kubernetes Service (EKS)上安装 Red Hat Developer Hub:
- Red Hat Developer Hub Operator
- Red Hat Developer Hub Helm chart
1.1. 使用 Operator 在 EKS 上安装 Developer Hub 复制链接链接已复制到粘贴板!
Red Hat Developer Hub Operator 安装需要 Operator Lifecycle Manager (OLM)框架。
附加资源
- 有关 OLM 的详情,请参考 Operator Lifecycle Manager (OLM) 文档。
1.1.1. 使用 OLM 框架安装 Developer Hub Operator 复制链接链接已复制到粘贴板!
您可以使用 Operator Lifecycle Manager (OLM)框架在 EKS 上安装 Developer Hub Operator。之后,您可以继续在 EKS 中部署 Developer Hub 实例。
先决条件
-
在当前
kubeconfig中将上下文设置为 EKS 集群。如需更多信息,请参阅为 Amazon EKS 集群创建或更新 kubeconfig 文件。 -
已安装
kubectl。如需更多信息,请参阅 安装或更新 kubectl。 -
您已订阅了
registry.redhat.io。如需更多信息,请参阅 Red Hat Container Registry 身份验证。 - 已安装 Operator Lifecycle Manager (OLM)。有关安装和故障排除的更多信息,请参阅 OLM QuickStart 或 How do I get Operator Lifecycle Manager?
流程
在终端中运行以下命令,以创建安装 Operator 的
rhdh-operator命名空间:kubectl create namespace rhdh-operator
kubectl create namespace rhdh-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令创建 pull secret:
kubectl -n rhdh-operator create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>kubectl -n rhdh-operator 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 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建的 pull secret 用于从红帽生态系统中拉取 Developer Hub 镜像。
创建一个包含红帽生态系统中的 Operator 的
CatalogSource资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 按如下所示创建
OperatorGroup资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下代码创建
Subscription资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,以验证创建的 Operator 是否正在运行:
kubectl -n rhdh-operator get pods -w
kubectl -n rhdh-operator get pods -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 Operator pod 显示
ImagePullBackOff状态,则可能需要权限直接在 Operator 部署清单中拉取镜像。提示您可以在
deployment.spec.template.spec.imagePullSecrets列表中包括所需的 secret 名称,并使用kubectl get deployment -n rhdh-operator命令验证部署名称:kubectl -n rhdh-operator patch deployment \ rhdh.fast --patch '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"rhdh-pull-secret"}]}}}}' \ --type=mergekubectl -n rhdh-operator patch deployment \ rhdh.fast --patch '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"rhdh-pull-secret"}]}}}}' \ --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 Operator 的默认配置,以确保 Developer Hub 资源可以按照以下步骤在 EKS 中正确启动:
使用以下命令,编辑
rhdh-operator命名空间中的backstage-default-configConfigMap:kubectl -n rhdh-operator edit configmap backstage-default-config
kubectl -n rhdh-operator edit configmap backstage-default-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 找到
db-statefulset.yaml字符串,并将fsGroup添加到其spec.template.spec.securityContext中,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 找到
deployment.yaml字符串,并将fsGroup添加到其规格中,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 找到
service.yaml字符串,并将类型改为NodePort,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 保存并退出。
等待几分钟,直到更改自动应用到操作器 Pod。
1.1.2. 使用 Operator 在 EKS 上部署 Developer Hub 实例 复制链接链接已复制到粘贴板!
先决条件
- 集群管理员已安装了 Red Hat Developer Hub Operator。
- 已安装带有 AWS Application Load Balancer (ALB)附加组件的 EKS 集群。如需更多信息,请参阅 Amazon Elastic Kubernetes Service 上的应用程序负载均衡 和 安装 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。
流程
使用以下模板,创建一个名为
app-config-rhdh的 ConfigMap,其中包含 Developer Hub 配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
secrets-rhdh的 Secret,再添加名为BACKEND_SECRET的键,其带有Base64 编码的字符串作为值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要确保为每个 Developer Hub 实例使用唯一的
BACKEND_SECRET值。您可以使用以下命令生成密钥:
node-p'require("crypto").randomBytes(24).toString("base64")'node-p'require("crypto").randomBytes(24).toString("base64")'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要启用从 Red Hat Ecosystem Catalog 拉取 PostgreSQL 镜像,请在部署 Developer Hub 实例的命名空间中的 default 服务帐户中添加镜像 pull secret:
kubectl patch serviceaccount default \ -p '{"imagePullSecrets": [{"name": "rhdh-pull-secret"}]}' \ -n <your_namespace>kubectl patch serviceaccount default \ -p '{"imagePullSecrets": [{"name": "rhdh-pull-secret"}]}' \ -n <your_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下模板创建自定义资源文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下模板创建 Ingress 资源,确保根据需要自定义名称:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的模板中,将 ' <rhdh_dns_name>' 替换为您的 Developer Hub 域名,并将
alb.ingress.kubernetes.io/certificate-arn的值替换为您的证书 ARN。
验证
等待 DNS 名称响应,这表示您的 Developer Hub 实例已准备就绪。