1.2. 为 klusterlet 附加组件配置 nodeSelectors 和 tolerations
在 Red Hat Advanced Cluster Management 中,您可以为以下 klusterlet 附加组件配置 nodeSelector 和 tolerations:
- application-manager
- cert-policy-controller
- cluster-proxy
- config-policy-controller
- governance-policy-framework
- hypershift-addon
- iam-policy-controller
- managed-serviceaccount
- observability-controller
- search-collector
- submariner
- volsync
- work-manager
完成以下步骤:
-
使用
AddonDeploymentConfig
API 创建一个配置,在用于 Red Hat Advanced Cluster Management 安装的命名空间中指定nodeSelector
和tolerations
。 根据以下模板,创建一个名为
addondeploymentconfig.yaml
的文件:apiVersion: addon.open-cluster-management.io/v1alpha1 kind: AddOnDeploymentConfig metadata: name: config-name 1 namespace: config-name-space 2 spec: nodePlacement: nodeSelector: node-selector 3 tolerations: tolerations 4
完成的
AddOnDeployment
文件可能类似以下示例: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
运行以下命令以应用您创建的文件:
oc apply -f addondeploymentconfig
运行以下命令,使用您创建的配置作为附加组件的全局默认配置:
oc patch clustermanagementaddons <addon-name> --type='json' -p='[{"op":"add", "path":"/spec/supportedConfigs", "value":[{"group":"addon.open-cluster-management.io","resource":"addondeploymentconfigs", "defaultConfig":{"name":"deploy-config","namespace":"open-cluster-management-hub"}}]}]'
-
将
addon-name
替换为您的附加组件名称。 -
将
config-name
替换为您刚才创建的AddonDeploymentConfig
的名称。 -
将
config-namespace
替换为您刚才创建的AddonDeploymentConfig
的命名空间。
-
将
您指定的 nodeSelector
和 tolerations
应用到每个受管集群的所有附加组件。
您还可以按照以下步骤覆盖特定受管集群中附加组件的全局默认 AddonDeploymentConfig
配置:
-
使用
AddonDeploymentConfig
API 创建另一个配置,以指定 hub 集群上的nodeSelector
和tolerations
。 将您创建的新配置链接到受管集群的附加组件
ManagedClusterAddon
。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>"} ]}]'
-
将
managed-cluster
替换为您的受管集群名称 -
将
addon-name
替换为您的附加组件名称 -
将
config-namespace
替换为您刚才创建的AddonDeploymentConfig
的命名空间 -
将
config-name
替换为您刚才创建的AddonDeploymentConfig
的名称
-
将
您在 add-on ManagedClusterAddon
中引用的新配置会覆盖您之前在 ClusterManagementAddon
附加组件中定义的全局默认配置。