第 1 章 使用 Operator 在 EKS 上安装 Developer Hub
Red Hat Developer Hub Operator 安装需要 Operator Lifecycle Manager (OLM)框架。
其他资源
- 有关 OLM 的详情,请参考 Operator Lifecycle Manager (OLM) 文档。
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使用以下命令创建 pull secret:
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 创建的 pull secret 用于从红帽生态系统中拉取 Developer Hub 镜像。
创建一个包含红帽生态系统中的 Operator 的
CatalogSource资源:cat <<EOF | kubectl -n rhdh-operator apply -f - apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: redhat-catalog spec: sourceType: grpc image: registry.redhat.io/redhat/redhat-operator-index:v4.17 secrets: - "rhdh-pull-secret" displayName: Red Hat Operators EOF按如下所示创建
OperatorGroup资源:cat <<EOF | kubectl apply -n rhdh-operator -f - apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: rhdh-operator-group EOF使用以下代码创建
Subscription资源:cat <<EOF | kubectl apply -n rhdh-operator -f - apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: rhdh namespace: rhdh-operator spec: channel: fast installPlanApproval: Automatic name: rhdh source: redhat-catalog sourceNamespace: rhdh-operator startingCSV: rhdh-operator.v1.4.3 EOF运行以下命令,以验证创建的 Operator 是否正在运行:
kubectl -n rhdh-operator get pods -w如果 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更新 Operator 的默认配置,以确保 Developer Hub 资源可以按照以下步骤在 EKS 中正确启动:
使用以下命令,编辑
rhdh-operator命名空间中的backstage-default-configConfigMap:kubectl -n rhdh-operator edit configmap backstage-default-config找到
db-statefulset.yaml字符串,并将fsGroup添加到其spec.template.spec.securityContext中,如下例所示:db-statefulset.yaml: | apiVersion: apps/v1 kind: StatefulSet --- TRUNCATED --- spec: --- TRUNCATED --- restartPolicy: Always securityContext: # You can assign any random value as fsGroup fsGroup: 2000 serviceAccount: default serviceAccountName: default --- TRUNCATED ---找到
deployment.yaml字符串,并将fsGroup添加到其规格中,如下例所示:deployment.yaml: | apiVersion: apps/v1 kind: Deployment --- TRUNCATED --- spec: securityContext: # You can assign any random value as fsGroup fsGroup: 3000 automountServiceAccountToken: false --- TRUNCATED ---找到
service.yaml字符串,并将类型改为NodePort,如下所示:service.yaml: | apiVersion: v1 kind: Service spec: # NodePort is required for the ALB to route to the Service type: NodePort --- TRUNCATED ---保存并退出。
等待几分钟,直到更改自动应用到操作器 Pod。