This documentation is for a release that is no longer maintained
See documentation for the latest supported version.第 4 章 Red Hat Developer Hub 与 Microsoft Azure Kubernetes Service (AKS)集成
您可以将 Developer Hub 与 Microsoft Azure Kubernetes Service (AKS)集成,在开发中提供显著改进,为构建、部署和管理应用程序提供了一个简化的环境。
这个集成需要使用以下方法之一在 AKS 上部署 Developer Hub:
- Helm chart
- Red Hat Developer Hub Operator
您可以在 Azure Kubernetes Services (AKS)上部署 Developer Hub 应用程序,以访问用于构建、测试和部署应用程序的综合解决方案。
先决条件
- 您有一个带有有效订阅的 Azure 帐户。
您已在机器上安装 Azure CLI,并配置了 Resource Group 和 Cluster。如需更多信息,请参阅 如何安装 Azure CLI。
您可以执行以下步骤来配置资源组和集群:
要访问 Azure,请确保您登录到我们的指定租户,请使用以下命令:
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 <your_ResourceGroup> --location <location>
az group create --name <your_ResourceGroup> --location <location>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提示您可以使用
az 帐户列表 -o table
来检索可用的区域。创建 AKS 集群:
az aks create \ --resource-group <your_ResourceGroup> \ --name <your_ClusterName> \ --enable-managed-identity \ --generate-ssh-keys
az aks create \ --resource-group <your_ResourceGroup> \ --name <your_ClusterName> \ --enable-managed-identity \ --generate-ssh-keys
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需了解更多选项,请参阅
--help
。连接到集群:
az aks get-credentials --resource-group <your_ResourceGroup> --name <your_ClusterName>
az aks get-credentials --resource-group <your_ResourceGroup> --name <your_ClusterName>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上一命令配置 Kubernetes 客户端,并将
kubeconfig
中的当前上下文设置为指向您的 AKS 集群。
-
已安装
kubectl
。如需更多信息,请参阅 安装或更新 kubectl。 已安装 Helm 3 或最新的。
- 特定于 AKS 的基本 Developer Hub 部署的比较
-
权限问题 : Developer Hub 容器可能会遇到与 权限 相关的错误,如在尝试特定操作时
Permission denied
。通过在PodSpec.securityContext
中调整fsGroup
来解决此错误。 Ingress 配置 :在 AKS 中,配置入口对于访问已安装的 Developer Hub 实例至关重要。访问 Developer Hub 实例需要使用以下命令启用基于 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 true
Copy 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&
gt;。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
-
权限问题 : Developer Hub 容器可能会遇到与 权限 相关的错误,如在尝试特定操作时
您可以使用 Helm 在 AKS 上部署 Developer Hub。
流程
打开终端并运行以下命令来添加 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 要创建
ImagePull Secret
,请运行以下命令: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 使用以下模板创建一个名为
values.yaml
的文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要安装 Helm Chart,请运行以下命令:
helm -n <your_namespace> install -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version 1.1.1
helm -n <your_namespace> install -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version 1.1.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证部署状态:
kubectl get deploy <your_deploy_name>-developer-hub -n <your_namespace>
kubectl get deploy <your_deploy_name>-developer-hub -n <your_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用 URL 访问部署的 Developer Hub:
https://<app_address>
;,其中 <app_address> 是之前获取的 Ingress 地址(例如https://108.141.70.228
)。 要升级或删除部署,请运行以下命令:
upgrade 命令
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version 1.1.1
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version 1.1.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow delete 命令
helm -n <your_namespace> delete <your_deploy_name>
helm -n <your_namespace> delete <your_deploy_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以使用 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: 300
Copy 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.spec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将修改后的 Operator 清单应用到 Kubernetes 集群:
kubectl apply -f rhdh-operator-<VERSION>.yaml
kubectl apply -f rhdh-operator-<VERSION>.yaml
Copy 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.yaml
Copy 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,并添加一个名为BACKEND_SECRET
的键,并带有Base64 编码的字符串
值,如下例所示: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.yaml
Copy 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.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow