全部产品
Search
文档中心

:选择分发目标集群

更新时间:Nov 02, 2023

您通过访问ACK One Fleet实例使用应用分发功能时,需要定义应用分发的目标集群。ACK One支持通过关联集群ID和给关联集群打标的方式选择目标集群,本文介绍如何通过这两种方式选择应用分发的目标集群。

前提条件

方式一:通过关联集群ID选择目标集群

  1. 执行以下命令,查看Fleet实例管理的关联集群,获取集群的名称。

    kubectl get managedclusters

    预期输出:

    NAME                     HUB ACCEPTED   MANAGED CLUSTER URLS   JOINED   AVAILABLE   AGE
    managedcluster-c5***z9   true                                  True     True        12d
    managedcluster-c1***e5   true                                  True     True        12d
  2. 使用以下内容,创建Policy

    替换如下示例中的<clusterid1>为待发布的目标集群ID。

    apiVersion: core.oam.dev/v1alpha1
    kind: Policy
    metadata:
      name: cluster-beijing
      namespace: demo
    type: topology
    properties:
      clusters: ["<clusterid1>"]   # 定义分发的目标集群,如需分发多个集群格式为clusters: ["<clusterid1>", "<clusterid2>"...] 

    参数

    说明

    type: topology

    • Topology类型的Policy定义了应用资源的下发目标。

    • Override类型的Policy定义了应用分发的差异化配置。

    properties. clusters

    支持通过关联集群ID定义下发目标,一个下发目标可以包含一个或多个集群。

方式二:通过给关联集群打标选择目标集群

  1. 执行以下命令,查看Fleet实例管理的关联集群,获取集群的名称。

    kubectl get managedclusters

    预期输出:

    NAME                     HUB ACCEPTED   MANAGED CLUSTER URLS   JOINED   AVAILABLE   AGE
    managedcluster-c5***z9   true                                  True     True        12d
    managedcluster-c1***e5   true                                  True     True        12d
  2. 执行以下命令,为关联集群打标。

    替换<clusterid>为需要打标的关联集群ID,替换env=production1为您的标签名称和值。

    kubectl label managedclusters <clusterid> env=production1
  3. 使用以下内容,创建Policy,通过clusterSelector选择待发布的目标集群。

    替换env:production1为您的标签名称和值。

    apiVersion: core.oam.dev/v1alpha1
    kind: Policy
    metadata:
      name: cluster-test
      namespace: demo
    type: topology
    properties:
      clusterSelector:   
        env:production1     # 标签名称和值,如需分发多个集群可将不同标签名称和值在下面增加。   

    参数

    说明

    type: topology

    • Topology类型的Policy定义了应用资源的下发目标。

    • Override类型的Policy定义了应用分发的差异化配置。

    properties: clusterSelector

    标签选择器。通过标签从managedclusters中选择目标集群,可以包含一个或多个集群。