附加组件


Red Hat Advanced Cluster Management for Kubernetes 2.14

访问 klusterlet 附加组件的信息。

摘要

请参阅更多信息,了解如何为集群使用附加组件。

第 1 章 受管集群高级配置

使用 Red Hat Advanced Cluster Management for Kubernetes klusterlet 附加组件,您可以进一步配置受管集群以提高性能并为应用程序添加功能。请查看以下启用选项:

安装 Red Hat Advanced Cluster Management for Kubernetes 后,然后使用多集群引擎 Operator 创建或导入集群,您可以为这些受管集群启用 klusterlet 附加组件。如果您创建或导入集群,否则 Red Hat Advanced Cluster Management 控制台创建或导入,则不会启用 klusterlet 附加组件。请参阅以下可用的 klusterlet 附加组件:

  • application-manager
  • cert-policy-controller
  • config-policy-controller
  • governance-policy-framework
  • search-collector

完成以下步骤,在安装 Red Hat Advanced Cluster Management 后为受管集群启用 klusterlet 附加组件:

  1. 创建一个类似于以下 KlusterletAddonConfig 的 YAML 文件,其 spec 值代表附加组件:

    apiVersion: agent.open-cluster-management.io/v1
    kind: KlusterletAddonConfig
    metadata:
      name: <cluster_name>
      namespace: <cluster_name>
    spec:
      applicationManager:
        enabled: true
      certPolicyController:
        enabled: true
      policyController: 
    1
    
        enabled: true
      searchCollector:
        enabled: true
    Copy to Clipboard Toggle word wrap
    1
    policy-controller 附加组件分为两个附加组件:governance-policy-frameworkconfig-policy-controller。因此,policyController 控制 governance-policy-frameworkconfig-policy-controller managedClusterAddons
  2. 将文件保存为 klusterlet-addon-config.yaml
  3. 在 hub 集群中运行以下命令来应用 YAML:

    oc apply -f klusterlet-addon-config.yaml
    Copy to Clipboard Toggle word wrap
  4. 要验证在创建 KlusterletAddonConfig 后是否创建了已启用的 managedClusterAddons,请运行以下命令:

    oc get managedclusteraddons -n <cluster namespace>
    Copy to Clipboard Toggle word wrap

1.2. 配置 klusterlet 附加组件

在 Red Hat Advanced Cluster Management 中,您可以配置以下 klusterlet 附加组件以提高受管集群的性能和功能:

  • application-manager
  • cert-policy-controller
  • cluster-proxy
  • config-policy-controller
  • governance-policy-framework
  • hypershift-addon
  • managed-serviceaccount
  • observability-controller
  • search-collector
  • submariner
  • volsync
  • work-manager

重要提示:您不能为observability-controller插件配置resourceRequirements

在配置 klusterlet 附加组件时,您可以将规格应用到每个受管集群的任何附加组件中,如 nodeSelectortolerations。要配置 klusterlet 附加组件,请完成以下步骤:

  1. 使用 AddonDeploymentConfig API 在 hub 集群上的任意命名空间中创建附加组件配置。
  2. 使用以下模板创建一个名为 addondeploymentconfig.yaml 的文件:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: config-name 
    1
    
      namespace: config-namespace 
    2
    
    spec:
      nodePlacement:
        nodeSelector: {<node-selector>} 
    3
    
        tolerations: {<tolerations>} 
    4
    
      resourceRequirements: 
    5
    
      - containerID: "<workload-kind>:<workload-name>:<container-name>" 
    6
    
        resources:
          requests:
            memory: 75Mi
          limits:
            memory: 150Mi
    Copy to Clipboard Toggle word wrap
    1
    config-name 替换为您刚才创建的 AddonDeploymentConfig 的名称
    2
    config-namespace 替换为您刚才创建的 AddonDeploymentConfig 的命名空间
    3
    node-selector 替换为您的节点选择器。
    4
    tolerations 替换为您的容限。
    5
    在此处列出资源需求以覆盖附加工作负载容器的资源。如果附加组件容器与列表中的多个项目匹配,则会应用最后匹配的配置。
    6
    <workload-kind > 替换为工作负载的类型,例如: deployment。将 <workload-name > 替换为工作负载的名称。将 container-name 替换为容器的名称。
    1. 对于这些值,您可以使用 * 属性将配置应用到附加组件管理的所有对象。例如,如果您使用了 *:*:* 属性,它会将配置应用到配置附加到的任何附加组件中的每个工作负载类型的每个容器。

      完成的 AddOnDeploymentConfig 类似以下示例:

    apiVersion: addon.open-cluster-management.io/v1alpha1
    kind: AddOnDeploymentConfig
    metadata:
      name: deploy-config
      namespace: open-cluster-management-hub
    spec:
      nodePlacement:
        nodeSelector:
          "node-dedicated": "acm-addon"
        tolerations:
          - effect: NoSchedule
            key: node-dedicated
            value: acm-addon
            operator: Equal
    Copy to Clipboard Toggle word wrap

1.2.2. 为所有受管集群配置 klusterlet 附加组件

设置 AddOnDeploymentConfig 后,您可以使用 ClusterManagementAddOn 配置它,然后将此附加组件配置应用到附加到 hub 集群的所有受管集群。要为所有受管集群配置 klusterlet 附加组件,请完成以下步骤:

  1. 运行以下命令,将 AddOnDeploymentConfig 文件应用到 klusterlet 附加组件:

    oc apply -f addondeploymentconfig.yaml
    Copy to Clipboard Toggle word wrap
  2. 通过修补 ClusterManagementAddOn 资源,将您创建的新配置连接到所有受管集群的附加组件。运行以下命令来修补 ClusterManagementAddOn 中的 spec.supportedConfigs 参数以指向新配置:

    oc patch clustermanagementaddons <addon-name> --type='json' -p='[{
      "op":"add",
      "path":"/spec/supportedConfigs",
      "value":[{
        "group":"addon.open-cluster-management.io",
        "resource":"addondeploymentconfigs",
        "defaultConfig":{"name":"<config-name>","namespace":"<config-namespace>"}
      }]
    }]'
    Copy to Clipboard Toggle word wrap
    • addon-name 替换为您的附加组件名称
    • config-name 替换为您刚才创建的 AddonDeploymentConfig 的名称
    • config-namespace 替换为您刚才创建的 AddonDeploymentConfig 的命名空间

1.2.3. 为单个受管集群配置 klusterlet 附加组件

您还可以在特定受管集群中覆盖附加组件的全局 default AddonDeploymentConfig 配置。通过覆盖,您可以为单个受管集群配置 klusterlet 附加组件,因为附加组件配置只适用于附加到 hub 集群该命名空间的特定受管集群。要覆盖配置,请完成以下步骤:

  1. 使用 AddonDeploymentConfig API 创建另一个配置,以指定 hub 集群上的 nodeSelectortolerations
  2. 将您创建的新配置连接到受管集群命名空间中的 hub 集群上的 ManagedClusterAddOn 附加组件。运行以下命令来修补 ManagedClusterAddOn 中的 spec.configs 参数以指向新配置:

    oc -n <managed-cluster> patch managedclusteraddons <addon-name> --type='json' -p='[{
      "op":"add",
      "path":"/spec/configs",
      "value":[{
        "group":"addon.open-cluster-management.io",
        "resource":"addondeploymentconfigs",
        "namespace":"<config-namespace>",
        "name":"<config-name>"
      }]
    }]'
    Copy to Clipboard Toggle word wrap
    • managed-cluster 替换为您的受管集群名称
    • addon-name 替换为您的附加组件名称
    • config-namespace 替换为您刚才创建的 AddonDeploymentConfig 的命名空间
    • config-name 替换为您刚才创建的 AddonDeploymentConfig 的名称

您在 ManagedClusterAddOn 附加组件中引用的新配置会覆盖您在 ClusterManagementAddOn 附加组件之前定义的全局默认配置。

要确保您可以将内容部署到正确的节点,请参阅 可选:配置 klusterlet 以在特定节点上运行

1.3. 在现有集群附加组件上启用集群范围代理

您可以在集群命名空间中配置 KlusterletAddonConfig,将代理环境变量添加到受管 Red Hat OpenShift Container Platform 集群的所有 klusterlet 附加组件 pod 中。完成以下步骤以配置 KlusterletAddonConfig,将三个环境变量添加到 klusterlet 附加组件的 pod 中:

  1. 编辑位于需要代理的集群的 KlusterletAddonConfig 文件。您可以使用控制台查找资源,也可以使用以下命令在终端中编辑:

    oc -n <my-cluster-name> edit klusterletaddonconfig <my-cluster-name>
    Copy to Clipboard Toggle word wrap

    注: 如果您只使用一个集群,则不需要命令末尾的 <my-cluster-name>。使用以下命令:

    oc -n <my-cluster-name> edit klusterletaddonconfig
    Copy to Clipboard Toggle word wrap
  2. 编辑文件的 .spec.proxyConfig 部分,使其类似以下示例。spec.proxyConfig 是一个可选部分:

    spec
      proxyConfig:
        httpProxy: "<proxy_not_secure>" 
    1
    
        httpsProxy: "<proxy_secure>" 
    2
    
        noProxy: "<no_proxy>" 
    3
    Copy to Clipboard Toggle word wrap
    1
    proxy_not_secure 替换为 http 请求的代理服务器的地址。例如,使用 http://192.168.123.145:3128
    2
    使用 https 请求的代理服务器的地址替换 proxy_secure。例如,使用 https://192.168.123.145:3128
    3
    使用以逗号分隔的 IP 地址、主机名和域名列表替换 no_proxy,其中没有通过代理路由流量。例如,使用 .cluster.local,.svc,10.128.0.0/14,example.com

    如果使用在 hub 集群上配置的集群范围内的代理创建 OpenShift Container Platform 集群,则集群范围的代理配置值会在满足以下条件时添加到 klusterlet add-ons 的 pod 中:

    • addon 部分中的 .spec.policyController.proxyPolicy 被启用并设置为 OCPGlobalProxy
    • .spec.applicationManager.proxyPolocy 被启用并设置为 CustomProxy

      注: addon 部分中的 proxyPolicy 默认值是 Disabled

      请参阅以下 proxyPolicy 条目示例:

      apiVersion: agent.open-cluster-management.io/v1
          kind: KlusterletAddonConfig
          metadata:
            name: clusterName
            namespace: clusterName
          spec:
            proxyConfig:
              httpProxy: http://pxuser:12345@10.0.81.15:3128
              httpsProxy: http://pxuser:12345@10.0.81.15:3128
              noProxy: .cluster.local,.svc,10.128.0.0/14, example.com
            applicationManager:
              enabled: true
              proxyPolicy: CustomProxy
            policyController:
              enabled: true
              proxyPolicy: OCPGlobalProxy
            searchCollector:
              enabled: true
              proxyPolicy: Disabled
            certPolicyController:
              enabled: true
              proxyPolicy: Disabled
      Copy to Clipboard Toggle word wrap

重要: 全局代理设置不会影响警报转发。要为使用集群范围代理的 Red Hat Advanced Cluster Management hub 集群设置警报转发,请参阅 转发警报 以了解更多详细信息。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat