This documentation is for a release that is no longer maintained
See documentation for the latest supported version.3.2. 使用 Operator 在 Elastic Kubernetes Service (EKS)上部署 Red Hat Developer Hub
您可以使用带有或不使用 Operator Lifecycle Manager (OLM)框架的 Red Hat Developer Hub Operator 在 EKS 上部署 Developer Hub。之后,您可以继续在 EKS 中安装 Developer Hub 实例。
3.2.1. 使用 OLM 框架安装 Red Hat Developer Hub Operator 复制链接链接已复制到粘贴板!
先决条件
-
您已在当前
kubeconfig
中将上下文设置为 EKS 集群。如需更多信息,请参阅为 Amazon EKS 集群创建或更新 kubeconfig 文件。 -
已安装
kubectl
。如需更多信息,请参阅 安装或更新 kubectl。 -
您已订阅了
registry.redhat.io
。如需更多信息,请参阅 Red Hat Container Registry 身份验证。 - 已安装 Operator Lifecycle Manager (OLM)。有关安装和故障排除的更多信息,请参阅 如何获取 Operator Lifecycle Manager?
流程
在终端中运行以下命令,以创建安装 Operator 的
rhdh-operator
命名空间:kubectl create namespace rhdh-operator
kubectl create namespace rhdh-operator
Copy 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 镜像。
创建一个
CatalogSource
资源,其中包含来自红帽生态系统的 Operator: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 -w
Copy 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=merge
kubectl -n rhdh-operator patch deployment \ rhdh.fast --patch '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"rhdh-pull-secret"}]}}}}' \ --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 Operator 的默认配置,以确保 Developer Hub 资源可以按照以下流程在 EKS 中正确启动:
使用以下命令,编辑
rhdh-operator
命名空间中的backstage-default-config
ConfigMap:kubectl -n rhdh-operator edit configmap backstage-default-config
kubectl -n rhdh-operator edit configmap backstage-default-config
Copy 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 保存并退出。
等待几分钟,直到更改自动应用到 Operator pod。
3.2.2. 在没有 OLM 框架的情况下安装 Red Hat Developer Hub Operator 复制链接链接已复制到粘贴板!
先决条件
已安装以下命令:
-
git
-
make
-
sed
-
流程
使用以下命令将 Operator 存储库克隆到本地机器中:
git clone --depth=1 https://github.com/janus-idp/operator.git rhdh-operator && cd rhdh-operator
git clone --depth=1 https://github.com/janus-idp/operator.git rhdh-operator && cd rhdh-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令并生成部署清单:
make deployment-manifest
make deployment-manifest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以上命令生成一个名为
rhdh-operator-<VERSION>.yaml
的文件,该文件会被手动更新。运行以下命令在生成的部署清单中应用替换:
sed -i "s/backstage-operator/rhdh-operator/g" rhdh-operator-*.yaml sed -i "s/backstage-system/rhdh-operator/g" rhdh-operator-*.yaml sed -i "s/backstage-controller-manager/rhdh-controller-manager/g" rhdh-operator-*.yaml
sed -i "s/backstage-operator/rhdh-operator/g" rhdh-operator-*.yaml sed -i "s/backstage-system/rhdh-operator/g" rhdh-operator-*.yaml sed -i "s/backstage-controller-manager/rhdh-controller-manager/g" rhdh-operator-*.yaml
Copy 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 将默认镜像替换为红帽生态系统中拉取的镜像:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将镜像 pull secret 添加到 Deployment 资源中的清单中,如下所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令应用清单来部署 Operator:
kubectl apply -f rhdh-operator-VERSION.yaml
kubectl apply -f rhdh-operator-VERSION.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证 Operator 是否正在运行:
kubectl -n rhdh-operator get pods -w
kubectl -n rhdh-operator get pods -w
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. 在 EKS 中安装 Developer Hub 实例 复制链接链接已复制到粘贴板!
安装并运行 Red Hat Developer Hub Operator 后,您可以在 EKS 中创建 Developer Hub 实例。
先决条件
- 已安装 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 要启用从红帽生态系统目录中拉取 PostgreSQL 镜像,请在部署 Developer Hub 实例的命名空间中将镜像 pull secret 添加到 default 服务帐户中:
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 实例已准备就绪。