在 Microsoft Azure Kubernetes Service 上安装 Red Hat Developer Hub
使用 Operator 或 Helm chart 在 Microsoft Azure Kubernetes Service (AKS)上运行 Red Hat Developer Hub
摘要
前言 复制链接链接已复制到粘贴板!
您可以使用以下方法之一在 Microsoft Azure Kubernetes Service (AKS)上安装 Red Hat Developer Hub:
- Red Hat Developer Hub Operator
- Red Hat Developer Hub Helm chart
第 1 章 使用 Operator 在 AKS 上部署 Developer Hub 复制链接链接已复制到粘贴板!
您可以使用 Red Hat Developer Hub Operator 在 AKS 上部署 Developer Hub。
流程
使用您的红帽凭证创建一个名为
rhdh-pull-secret的ImagePull Secret,以访问受保护的registry.redhat.io中的镜像,如下例所示:kubectl -n <your_namespace> create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<redhat_user_name> \ --docker-password=<redhat_password> \ --docker-email=<email>kubectl -n <your_namespace> create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<redhat_user_name> \ --docker-password=<redhat_password> \ --docker-email=<email>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
rhdh-ingress.yaml的 Ingress 清单文件,指定 Developer Hub 服务名称,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要部署创建的 Ingress,请运行以下命令:
kubectl -n <your_namespace> apply -f rhdh-ingress.yaml
kubectl -n <your_namespace> apply -f rhdh-ingress.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下示例,创建一个包含
app-config.yamlDeveloper Hub 配置文件的my-rhdh-app-config配置映射: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 配置的标识符。
创建名为 <
your-rhdh-cr>的Backstage自定义资源(CR)清单文件,并包括之前创建的rhdh-pull-secret,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<my_product_secrets> 是您首选的 Developer Hub secret 名称,其中 <my_product_secrets> 指定 Developer Hub 中 secret 配置的标识符。
将 CR 清单应用到您的命名空间:
kubectl -n my-rhdh-project apply -f rhdh.yaml
kubectl -n my-rhdh-project apply -f rhdh.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用 URL 访问部署的 Developer Hub:
https://<app_address>,其中 < app_address > 是前面获取的 Ingress 地址(例如https://108.141.70.228)。 可选: 要删除 CR,请运行以下命令:
kubectl -n my-rhdh-project delete -f rhdh.yaml
kubectl -n my-rhdh-project delete -f rhdh.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 使用 Helm Chart 在 AKS 上部署 Developer Hub 复制链接链接已复制到粘贴板!
您可以在 Azure Kubernetes Service (AKS)上部署 Developer Hub 应用程序,以访问用于构建、测试和部署应用程序的综合解决方案。
先决条件
- 您有一个带有有效订阅的 Microsoft Azure 帐户。
- 已安装 Azure CLI。
-
已安装
kubectlCLI。 -
使用
kubectl登录集群,并具有开发人员或admin权限。 - 已安装 Helm 3 或最新的。
特定于基本 Developer Hub 部署的 AKS 的比较
-
权限问题 : Developer Hub 容器可能会遇到权限相关的错误,如尝试某些操作时
Permission denied。可以通过调整PodSpec.securityContext中的fsGroup来解决此错误。 Ingress 配置 :在 AKS 中,配置 ingress 对于访问已安装的 Developer Hub 实例至关重要。访问 Developer Hub 实例需要使用以下命令启用 Routing 附加组件(基于 NGINX 的 Ingress Controller):
az aks approuting enable --resource-group <your_ResourceGroup> --name <your_ClusterName>
az aks approuting enable --resource-group <your_ResourceGroup> --name <your_ClusterName>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示您可能需要安装 Azure CLI 扩展
aks-preview。如果没有自动安装扩展,您可能需要使用以下命令手动安装它:az extension add --upgrade -n aks-preview --allow-preview true
az extension add --upgrade -n aks-preview --allow-preview trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意安装 Ingress Controller 后,集群中将部署带有 Ingress Controller 的
app-routing-system命名空间。请注意已安装的 Ingress Controller 的 Developer Hub 应用程序地址(例如,108.141.70.228)),以便以后访问 Developer Hub 应用程序,稍后被引用为 <app_address>。kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'kubectl get svc nginx --namespace app-routing-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 命名空间 管理 :您可以使用以下命令为 AKS 中的 Developer Hub 部署创建专用命名空间:
kubectl create namespace <your_namespace>
kubectl create namespace <your_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
运行以下命令登录到 AKS:
az login [--tenant=<optional_directory_name>]
az login [--tenant=<optional_directory_name>]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建资源组:
az group create --name <resource_group_name> --location <location>
az group create --name <resource_group_name> --location <location>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示您可以运行以下命令来列出可用的区域:
az account list-locations -o table
az account list-locations -o tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建 AKS 集群:
az aks create \ --resource-group <resource_group_name> \ --name <cluster_name> \ --enable-managed-identity \ --generate-ssh-keys
az aks create \ --resource-group <resource_group_name> \ --name <cluster_name> \ --enable-managed-identity \ --generate-ssh-keysCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以参阅-
-help来获得其他选项。运行以下命令来连接到集群:
az aks get-credentials --resource-group <resource_group_name> --name <cluster_name>
az aks get-credentials --resource-group <resource_group_name> --name <cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上一命令配置 Kubernetes 客户端,并将
kubeconfig中的当前上下文设置为指向您的 AKS 集群。打开终端并运行以下命令来添加 Helm Chart 仓库:
helm repo add openshift-helm-charts https://charts.openshift.io/
helm repo add openshift-helm-charts https://charts.openshift.io/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建并激活 < my-rhdh-project> 命名空间:
DEPLOYMENT_NAME=<redhat-developer-hub> NAMESPACE=<rhdh> kubectl create namespace ${NAMESPACE} kubectl config set-context --current --namespace=${NAMESPACE}DEPLOYMENT_NAME=<redhat-developer-hub> NAMESPACE=<rhdh> kubectl create namespace ${NAMESPACE} kubectl config set-context --current --namespace=${NAMESPACE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,创建一个 pull secret,用于从红帽生态系统拉取 Developer Hub 镜像:
kubectl -n $NAMESPACE create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<redhat_user_name> \ --docker-password=<redhat_password> \ --docker-email=<email>kubectl -n $NAMESPACE create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<redhat_user_name> \ --docker-password=<redhat_password> \ --docker-email=<email>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下模板创建一个名为
values.yaml的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用 Helm Chart 安装 Developer Hub,请运行以下命令:
helm -n $NAMESPACE install -f values.yaml $DEPLOYMENT_NAME openshift-helm-charts/redhat-developer-hub --version 1.7.0
helm -n $NAMESPACE install -f values.yaml $DEPLOYMENT_NAME openshift-helm-charts/redhat-developer-hub --version 1.7.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证部署状态:
kubectl get deploy $DEPLOYMENT_NAME -n $NAMESPACE
kubectl get deploy $DEPLOYMENT_NAME -n $NAMESPACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用集群中的 Developer Hub 数据库密码和路由器基本 URL 值配置 Developer Hub Helm Chart 实例:
PASSWORD=$(kubectl get secret redhat-developer-hub-postgresql -o jsonpath="{.data.password}" | base64 -d) CLUSTER_ROUTER_BASE=$(kubectl get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/^[^.]*\.//') helm upgrade $DEPLOYMENT_NAME -i "https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.7.0/redhat-developer-hub-1.7.0.tgz" \ --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE" \ --set global.postgresql.auth.password="$PASSWORD"PASSWORD=$(kubectl get secret redhat-developer-hub-postgresql -o jsonpath="{.data.password}" | base64 -d) CLUSTER_ROUTER_BASE=$(kubectl get route console -n openshift-console -o=jsonpath='{.spec.host}' | sed 's/^[^.]*\.//') helm upgrade $DEPLOYMENT_NAME -i "https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.7.0/redhat-developer-hub-1.7.0.tgz" \ --set global.clusterRouterBase="$CLUSTER_ROUTER_BASE" \ --set global.postgresql.auth.password="$PASSWORD"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,显示正在运行的 Developer Hub 实例 URL:
echo "https://$DEPLOYMENT_NAME-$NAMESPACE.$CLUSTER_ROUTER_BASE"
echo "https://$DEPLOYMENT_NAME-$NAMESPACE.$CLUSTER_ROUTER_BASE"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
- 在浏览器中打开正在运行的 Developer Hub 实例 URL,以使用 Developer Hub。
Upgrade(升级)
要升级部署,请运行以下命令:
helm upgrade $DEPLOYMENT_NAME -i https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.7.0/redhat-developer-hub-1.7.0.tgz
helm upgrade $DEPLOYMENT_NAME -i https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.7.0/redhat-developer-hub-1.7.0.tgzCopy to Clipboard Copied! Toggle word wrap Toggle overflow
删除
要删除部署,请运行以下命令:
helm -n $NAMESPACE delete $DEPLOYMENT_NAME
helm -n $NAMESPACE delete $DEPLOYMENT_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow