第 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
    #...
    Copy to Clipboard Toggle word wrap

  • 您已获取与服务帐户关联的 secret 和服务 CA 证书。
  • 您已创建了一些资源并为其添加注解,以便 Kubernetes 插件可以发现这些资源。您可以应用这些 Kubernetes 注解:

    • backstage.io/kubernetes-id to label components
    • backstage.io/kubernetes-namespace 以标记命名空间

流程

  1. 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
    
            # ...
    Copy to Clipboard Toggle word wrap
    1
    将值设为 false 以启用 backstage-plugin-kubernetes-backend-dynamic 插件。
    2
    将值设为 false 以启用 backstage-plugin-kubernetes 插件。
    注意

    backstage-plugin-kubernetes 插件 当前还只是一个技术预览。作为替代方案,您可以使用 ./dynamic-plugins/dist/backstage-plugin-topology-dynamic 插件,该插件正式发布(GA)。

  2. 设置 Kubernetes 集群详情并在 app-config.yaml 配置文件中配置 目录同步选项。

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: my-rhdh-app-config
    data:
      "app-config.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
    
                # ...
    Copy to Clipboard Toggle word wrap
    1
    Kubernetes control plane 的基本 URL。您可以运行 kubectl cluster-info 命令来获取基本 URL。
    2
    将此参数的值设置为 false,以启用 TLS 证书的验证。
    3
    可选:管理 ARO 集群的 Kubernetes 仪表板的链接。
    4
    可选:使用您在 < my_product_secrets> secret 中定义的 K8S_SERVICE_ACCOUNT_ TOKEN 环境变量传递服务帐户令牌。
    5
    使用您在 < my_product_secrets> secret 中定义的 K8S_CONFIG_CA_ DATA 环境变量传递 CA 数据。
  3. 保存配置更改。

验证

  1. 运行 RHDH 应用程序来导入您的目录:

    kubectl -n rhdh-operator get pods -w
    Copy to Clipboard Toggle word wrap
  2. 验证 pod 日志是否没有显示您的配置错误。
  3. 进入 Catalog 并检查 Developer Hub 实例中的组件页面,以验证集群连接以及您的创建的资源是否存在。
注意

如果您遇到连接错误,如证书问题或权限,请在组件页面中选中消息框或查看 pod 的日志。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat