1.14.5.4. 附加组件状态

您可能希望根据部署在其上的附加组件的状态,为放置选择受管集群。例如,只有在集群中启用了特定的附加组件时,才会为放置选择受管集群。

您可以为附加组件指定标签,并在创建放置时根据需要指定其状态(如果需要)。如果集群中启用了附加组件,则会自动在 ManagedCluster 资源上创建一个标签。如果禁用了附加组件,则会自动删除该标签。

每个附加组件都由一个标签表示,格式为 feature.open-cluster-management.io/addon-<addon_name>=<status_of_addon>

使用要在要选择的受管集群中启用的附加组件名称替换 addon_name

status_of_addon 替换为在选择集群时该附加组件应具有的状态。status_of_addon 的可能值位于以下列表中:

  • available :附加组件已启用并可用。
  • unhealthy:附加组件已启用,但租期不会持续更新。
  • unreachable :附加组件已启用,但没有为其找到租用。也可以在受管集群离线时导致这个问题。

例如,可用的 application-manager 附加组件由受管集群中的标签表示:

feature.open-cluster-management.io/addon-application-manager: available

请参阅以下基于附加组件及其状态创建放置的示例:

  • 您可以通过添加以下 YAML 内容来创建放置,其中包含启用了 application-manager 的所有受管集群:

    apiVersion: cluster.open-cluster-management.io/v1alpha1
    kind: Placement
    metadata:
      name: placement1
      namespace: ns1
    spec:
      predicates:
        - requiredClusterSelector:
            labelSelector:
              matchExpressions:
                - key: feature.open-cluster-management.io/addon-application-manager
                  operator: Exists
  • 您可以通过添加以下 YAML 内容来创建放置,其中包含启用了 application-manager 且具有 available 状态的所有受管集群:

    apiVersion: cluster.open-cluster-management.io/v1alpha1
    kind: Placement
    metadata:
      name: placement2
      namespace: ns1
    spec:
      predicates:
        - requiredClusterSelector:
            labelSelector:
              matchLabels:
                "feature.open-cluster-management.io/addon-application-manager": "available"
  • 您可以通过添加以下 YAML 内容来创建包含禁用 application-manager 的所有受管集群的放置:

    apiVersion: cluster.open-cluster-management.io/v1alpha1
    kind: Placement
    metadata:
      name: placement3
      namespace: ns1
    spec:
      predicates:
        - requiredClusterSelector:
            labelSelector:
              matchExpressions:
                - key: feature.open-cluster-management.io/addon-application-manager
                  operator: DoesNotExist