第 1 章 使用 OLM 框架安装 Developer Hub Operator
您可以使用 Operator Lifecycle Manager (OLM)框架在 GKE 上安装 Developer Hub Operator。之后,您可以继续在 GKE 中部署 Developer Hub 实例。
有关 OLM 的详情,请参考 Operator Lifecycle Manager (OLM) 文档。
先决条件
-
您已订阅了
registry.redhat.io。如需更多信息,请参阅 Red Hat Container Registry 身份验证。 - 已安装 Operator Lifecycle Manager (OLM)。有关安装和故障排除的更多信息,请参阅 如何获取 Operator Lifecycle Manager?
-
已安装
kubectl。如需更多信息,请参阅安装 kubetl。 - 已安装 Google Cloud CLI。如需更多信息,请参阅安装 gcloud CLI。
- 您已登录到 Google 帐户,并创建了 GKE Autopilot 或 GKE Standard 集群。
流程
使用以下命令连接到您的 GKE 集群:
gcloud container clusters get-credentials <cluster-name> \ --location=<cluster-location>gcloud container clusters get-credentials <cluster-name> \1 --location=<cluster-location>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令将 Kubernetes 客户端配置为指向您的 GKE 集群。
在终端中运行以下命令,以创建安装 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资源:CatalogSource资源示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 按如下所示创建
OperatorGroup资源:OperatorGroup资源示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下代码创建
Subscription资源: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
1.1. 使用 Operator 在 GKE 上部署 Developer Hub 实例 复制链接链接已复制到粘贴板!
您可以使用 Operator 在 GKE 中部署 Developer Hub 实例。
先决条件
- 集群管理员已安装了 Red Hat Developer Hub Operator。
-
您已订阅了
registry.redhat.io。如需更多信息,请参阅 Red Hat Container Registry 身份验证。 -
已安装
kubectl。如需更多信息,请参阅安装 kubetl。 - 您已为 Developer Hub 实例配置了域名。
- 您已保留了一个未附加到任何虚拟机(VM)的静态外部高级 IPv4 全局 IP 地址。如需更多信息,请参阅 保留新的静态外部 IP 地址
您已为域名配置了 DNS 记录,以指向已保留的 IP 地址。
注意您需要创建一个等于 IP 地址的
A记录。此过程最多可能需要一小时才能传播。
流程
使用以下模板创建一个包含
Developer Hub 配置文件的 app-config.yaml 配置映射:app-config.yamlapp-config.yaml片段Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个 &
lt;my_product_secrets> secret,并添加名为BACKEND_SECRET的键,并带有Base64 编码的字符串值,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<my_product_secrets> 是您首选的 Developer Hub secret 名称,其中 <my_product_secrets> 指定 Developer Hub 中 secret 配置的标识符。
重要确保为每个 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 使用以下模板创建
Backstage自定义资源(CR)文件:自定义资源片段
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<my_product_secrets> 是您首选的 Developer Hub secret 名称,其中 <my_product_secrets> 指定 Developer Hub 中 secret 配置的标识符。
通过创建一个
ManagedCertificate对象来设置 Google 管理的证书,您必须附加到 Ingress,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关设置 Google 管理的证书的更多信息,请参阅设置 Google 管理的证书。
创建
FrontendConfig对象,来为重定向到 HTTPS 设置策略。您必须将此策略附加到 Ingress。FrontendConfig对象示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关将策略设置为重定向到 HTTPS 的更多信息,请参阅 HTTP 到 HTTPS 重定向。
使用以下模板创建入口资源,根据需要自定义名称:
ingress 资源配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
-
等待
ManagedCertificate被置备。这个过程可能需要几小时时间。 -
Access RHDH with
https://<rhdh_domain_name>
其他信息
有关使用 TLS 的 Ingress 设置 GKE 的更多信息,请参阅 安全 GKE Ingress。