第 5 章 在 Kubernetes 中使用 TLS 连接配置 RHDH 实例
您可以在 Kubernetes 集群中配置带有传输层安全(TLS)连接的 RHDH 实例,如 Azure Red Hat OpenShift (ARO)集群、支持的云供应商中的任何集群,或者具有正确配置自己的集群。传输层安全性(TLS)可确保与其他实体(如第三方应用程序或外部数据库)的 RHDH 实例的安全连接。但是,您必须使用公共证书颁发机构(CA)签名证书来配置 Kubernetes 集群。
先决条件
- 您已使用公共 CA 签名证书设置了 Azure Red Hat OpenShift (ARO)集群。有关获取 CA 证书的更多信息,请参阅您的厂商文档。
您已创建了命名空间并设置对资源具有正确读取权限的服务帐户。
示例:用于基于角色的访问控制的 Kubernetes 清单
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: backstage-read-only rules: - apiGroups: - '*' resources: - pods - configmaps - services - deployments - replicasets - horizontalpodautoscalers - ingresses - statefulsets - limitranges - resourcequotas - daemonsets verbs: - get - list - watch #...
- 您已获取与服务帐户关联的 secret 和服务 CA 证书。
您已创建了一些资源并为其添加注解,以便 Kubernetes 插件可以发现这些资源。您可以应用这些 Kubernetes 注解:
-
backstage.io/kubernetes-id
to label components -
backstage.io/kubernetes-namespace
以标记命名空间
-
流程
在
dynamic-plugins-rhdh.yaml
文件中启用 Kubernetes 插件:kind: ConfigMap apiVersion: v1 metadata: name: dynamic-plugins-rhdh data: dynamic-plugins.yaml: | includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic disabled: false 1 - package: ./dynamic-plugins/dist/backstage-plugin-kubernetes disabled: false 2 # ...
注意backstage-plugin-kubernetes
插件 当前还只是一个技术预览。作为替代方案,您可以使用./dynamic-plugins/dist/backstage-plugin-topology-dynamic
插件,该插件正式发布(GA)。设置 kubernetes 集群详情并在
app-config-rhdh.yaml
文件中配置目录同步选项:kind: ConfigMap apiVersion: v1 metadata: name: app-config-rhdh data: "app-config-rhdh.yaml": | # ... catalog: rules: - allow: [Component, System, API, Resource, Location] providers: kubernetes: openshift: cluster: openshift processor: namespaceOverride: default defaultOwner: guests schedule: frequency: seconds: 30 timeout: seconds: 5 kubernetes: serviceLocatorMethod: type: 'multiTenant' clusterLocatorMethods: - type: 'config' clusters: - url: <target-cluster-api-server-url> 1 name: openshift authProvider: 'serviceAccount' skipTLSVerify: false 2 skipMetricsLookup: true dashboardUrl: <target-cluster-console-url> 3 dashboardApp: openshift serviceAccountToken: ${K8S_SERVICE_ACCOUNT_TOKEN} 4 caData: ${K8S_CONFIG_CA_DATA} 5 # ...
- 保存配置更改。
验证
运行 RHDH 应用程序来导入您的目录:
kubectl -n rhdh-operator get pods -w
- 验证 pod 日志是否没有显示您的配置错误。
- 进入 Catalog 并检查 Developer Hub 实例中的组件页面,以验证集群连接以及您的创建的资源是否存在。
如果您遇到连接错误,如证书问题或权限,请在组件页面中选中消息框或查看 pod 的日志。