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

前提条件

  • 开发者用户从ACK One控制台获取主控实例的KubeConfig,通过Kubectl连接至主控实例。

  • 主控实例管理员(实例创建者)已配置命名空间和配额。具体操作,请参见管理命名空间与配额

  • 主控实例已添加多个关联集群。具体操作,请参见添加关联集群
  • 安装AMC命令行工具。具体操作,请参见AMC命令行帮助

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

  1. 执行以下命令,查看主控实例管理的关联集群,获取集群的名称。
    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. 执行以下命令,查看主控实例管理的关联集群,获取集群的名称。
    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中选择目标集群,可以包含一个或多个集群。