1.4.2. 添加协调选项
您可以在单个资源中使用 apps.open-cluster-management.io/reconcile-option
注解来覆盖订阅级别的协调选项。
例如,如果您在订阅中添加 apps.open-cluster-management.io/reconcile-option: replace
注解,在订阅的 Git 仓库的一个资源 YAML 中添加 apps.open-cluster-management.io/reconcile-option: merge
注解,则资源将在目标集群中合并,其他资源则在替换其他资源时合并。
1.4.2.1. 协调频率 Git 频道
您可以选择在频道配置中选择协调频率选项: high
、medium
、low
和 off
,以避免不必要的资源协调,并因此防止订阅 operator 的超载。
需要的访问权限: 管理员和集群管理员
请参阅以下的 settings:attribute:<value>
定义:
-
Off
:不自动协调部署的资源。Subscription
自定义资源的更改会启动协调。您可以添加或更新标签或注解。 -
Low
:部署的资源会每小时自动协调,即使源 Git 存储库没有改变。 -
Medium
:这是默认设置。订阅 operator 每 3 分钟将当前部署的提交 ID 与源存储库的最新提交 ID 进行比较,并将更改应用到目标集群。每 15 分钟,所有资源都会从源 Git 存储库重新应用到目标集群,即使存储库没有改变。 -
High
:部署的资源每两分钟自动协调,即使源 Git 存储库没有改变。
您可以使用订阅引用的频道自定义资源中的 apps.open-cluster-management.io/reconcile-rate
注解进行设置。
请参阅以下 name: git-channel
示例:
apiVersion: apps.open-cluster-management.io/v1 kind: Channel metadata: name: git-channel namespace: sample annotations: apps.open-cluster-management.io/reconcile-rate: <value from the list> spec: type: GitHub pathname: <Git URL> --- apiVersion: apps.open-cluster-management.io/v1 kind: Subscription metadata: name: git-subscription annotations: apps.open-cluster-management.io/git-path: <application1> apps.open-cluster-management.io/git-branch: <branch1> spec: channel: sample/git-channel placement: local: true
在上例中,所有使用 sample/git-channel
的订阅都被分配了 low
协调频率。
-
当订阅协调率被设置为
low
时,订阅的应用程序资源最多可能需要一小时才能完成协调。在单个应用程序视图的卡上,单击 Sync 以手动协调。如果设为off
,则永远不会协调。
无论频道中的 reconcile-rate
设置是什么,订阅都可以通过在 Subscription
自定义资源中指定
apps.open-cluster-management.io/reconcile-rate: off
注解来关闭自动协调。
请参阅以下 git-channel
示例:
apiVersion: apps.open-cluster-management.io/v1 kind: Channel metadata: name: git-channel namespace: sample annotations: apps.open-cluster-management.io/reconcile-rate: high spec: type: GitHub pathname: <Git URL> --- apiVersion: apps.open-cluster-management.io/v1 kind: Subscription metadata: name: git-subscription annotations: apps.open-cluster-management.io/git-path: application1 apps.open-cluster-management.io/git-branch: branch1 apps.open-cluster-management.io/reconcile-rate: "off" spec: channel: sample/git-channel placement: local: true
git-subscription
部署的资源永远不会自动协调,即使 reconcile-rate
在频道中被设置为 high
。