第 2 章 使用 Helm Chart 在 GKE 上安装 Developer Hub
当您在 Google Kubernetes Engine (GKE)中安装 Developer Hub Helm Chart 时,它会编配 Developer Hub 实例的部署,它在 GKE 生态系统中提供了强大的开发人员平台。
先决条件
-
您已订阅了
registry.redhat.io
。如需更多信息,请参阅 Red Hat Container Registry 身份验证。 -
已安装
kubectl
。如需更多信息,请参阅安装 kubetl。 - 已安装 Google Cloud CLI。如需更多信息,请参阅安装 gcloud CLI。
- 您已登录到 Google 帐户,并创建了 GKE Autopilot 或 GKE Standard 集群。
- 您已为 Developer Hub 实例配置了域名。
- 您已保留了一个未附加到任何虚拟机的静态外部高级 IPv4 全局 IP 地址。如需更多信息,请参阅 保留新的静态外部 IP 地址
您已为域名配置了 DNS 记录,以指向已保留的 IP 地址。
注意您需要创建一个等于 IP 地址的
A
记录。此过程最多可能需要一小时才能传播。- 已安装 Helm 3 或最新的。如需更多信息,请参阅安装 Helm。
流程
进入终端并运行以下命令,将包含 Developer Hub chart 的 Helm Chart 仓库添加到本地 Helm registry 中:
helm repo add openshift-helm-charts https://charts.openshift.io/
helm repo add openshift-helm-charts https://charts.openshift.io/
Copy to Clipboard Copied! 使用以下命令创建 pull secret:
kubectl -n <your-namespace> create secret docker-registry rhdh-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>
kubectl -n <your-namespace> create secret docker-registry rhdh-pull-secret \
1 --docker-server=registry.redhat.io \ --docker-username=<user_name> \
2 --docker-password=<password> \
3 --docker-email=<email>
4 Copy to Clipboard Copied! 创建的 pull secret 用于从红帽生态系统中拉取 Developer Hub 镜像。
通过创建一个需要附加到 ingress 的
ManagedCertificate
对象来设置 Google 管理的证书。将
ManagedCertificate
对象附加到入口的示例apiVersion: networking.gke.io/v1 kind: ManagedCertificate metadata: name: <rhdh_certificate_name> spec: domains: - <rhdh_domain_name>
apiVersion: networking.gke.io/v1 kind: ManagedCertificate metadata: name: <rhdh_certificate_name> spec: domains: - <rhdh_domain_name>
Copy to Clipboard Copied! 有关设置 Google 管理的证书的更多信息,请参阅设置 Google 管理的证书。
创建
FrontendConfig
对象,来为重定向到 HTTPS 设置策略。您必须将此策略附加到 ingress。将
FrontendConfig
对象附加到入口的示例apiVersion: networking.gke.io/v1beta1 kind: FrontendConfig metadata: name: <ingress_security_config> spec: sslPolicy: gke-ingress-ssl-policy-https redirectToHttps: enabled: true
apiVersion: networking.gke.io/v1beta1 kind: FrontendConfig metadata: name: <ingress_security_config> spec: sslPolicy: gke-ingress-ssl-policy-https redirectToHttps: enabled: true
Copy to Clipboard Copied! 有关将策略设置为重定向到 HTTPS 的更多信息,请参阅 HTTP 到 HTTPS 重定向。
使用以下模板创建一个名为
values.yaml
的文件:values.yaml
文件示例global: host: <rhdh_domain_name> route: enabled: false upstream: service: type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: gce kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME> networking.gke.io/managed-certificates: <rhdh_certificate_name> networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config> className: gce backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true fsGroup: 3000 volumePermissions: enabled: true
global: host: <rhdh_domain_name> route: enabled: false upstream: service: type: NodePort ingress: enabled: true annotations: kubernetes.io/ingress.class: gce kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME> networking.gke.io/managed-certificates: <rhdh_certificate_name> networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config> className: gce backstage: image: pullSecrets: - rhdh-pull-secret podSecurityContext: fsGroup: 2000 postgresql: image: pullSecrets: - rhdh-pull-secret primary: podSecurityContext: enabled: true fsGroup: 3000 volumePermissions: enabled: true
Copy to Clipboard Copied! 在终端中运行以下命令,以使用最新版本的 Helm Chart 并使用
values.yaml
文件部署 Developer Hub:helm -n <your_namespace> install -f values.yaml <your_deploy_name> \ openshift-helm-charts/redhat-developer-hub \ --version 1.6.2
helm -n <your_namespace> install -f values.yaml <your_deploy_name> \ openshift-helm-charts/redhat-developer-hub \ --version 1.6.2
Copy to Clipboard Copied! 有关最新的 Helm Chart 版本,请参阅此 Helm Chart 仓库。
验证
确认部署已完成。
kubectl get deploy <you_deploy_name>-developer-hub -n <your_namespace>
kubectl get deploy <you_deploy_name>-developer-hub -n <your_namespace>
Copy to Clipboard Copied! 验证是否已创建服务和入口。
kubectl get service -n <your_namespace> kubectl get ingress -n <your_namespace>
kubectl get service -n <your_namespace> kubectl get ingress -n <your_namespace>
Copy to Clipboard Copied! 注意等待
ManagedCertificate
被置备。这个过程可能需要几小时时间。-
Access RHDH with
https://<rhdh_domain_name>
要升级部署,请使用以下命令:
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version <UPGRADE_CHART_VERSION>
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version <UPGRADE_CHART_VERSION>
Copy to Clipboard Copied! 要删除部署,请使用以下命令:
helm -n <your_namespace> delete <your_deploy_name>
helm -n <your_namespace> delete <your_deploy_name>
Copy to Clipboard Copied!