This documentation is for a release that is no longer maintained
See documentation for the latest supported version.在 Microsoft Azure Kubernetes Service 上安装 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-operator-<VERSION>.yaml的 Red Hat Developer Hub Operator 清单文件,并通过添加以下片段来修改db-statefulset.yaml和deployment.yaml的默认配置:securityContext: fsGroup: 300
securityContext: fsGroup: 300Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是清单中的指定位置:
db-statefulset.yaml: | spec.template.spec deployment.yaml: | spec.template.spec
db-statefulset.yaml: | spec.template.spec deployment.yaml: | spec.template.specCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将修改后的 Operator 清单应用到 Kubernetes 集群:
kubectl apply -f rhdh-operator-<VERSION>.yaml
kubectl apply -f rhdh-operator-<VERSION>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意上一命令的执行是集群范围的,需要适当的集群特权。
使用您的红帽凭证创建一个名为
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-rhdh的 ConfigMap,其中包含 Developer Hub 配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
secrets-rhdh的 Secret,并使用Base64 编码的字符串值添加名为BACKEND_SECRET的键,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
rhdh.yaml的自定义资源(CR)清单文件,并包含之前创建的rhdh-pull-secret,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 CR 清单应用到您的命名空间:
kubectl -n <your_namespace> apply -f rhdh.yaml
kubectl -n <your_namespace> 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 <your_namespace> delete -f rhdh.yaml
kubectl -n <your_namespace> 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 创建并激活 < rhdh> 命名空间:
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.3.5
helm -n $NAMESPACE install -f values.yaml $DEPLOYMENT_NAME openshift-helm-charts/redhat-developer-hub --version 1.3.5Copy 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.3.5/redhat-developer-hub-1.3.5.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.3.5/redhat-developer-hub-1.3.5.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.3.5/redhat-developer-hub-1.3.5.tgz
helm upgrade $DEPLOYMENT_NAME -i https://github.com/openshift-helm-charts/charts/releases/download/redhat-redhat-developer-hub-1.3.5/redhat-developer-hub-1.3.5.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