您通过访问ACK One Fleet实例使用应用分发功能时,需要定义应用分发的目标集群。ACK One支持通过关联集群ID和给关联集群打标的方式选择目标集群,本文介绍如何通过这两种方式选择应用分发的目标集群。
前提条件
已开启舰队管理功能。具体操作,请参见开启舰队管理功能。
舰队的Fleet实例已添加多个关联集群。具体操作,请参见添加关联集群。
已从ACK One控制台获取Fleet实例的KubeConfig,并通过kubectl连接至Fleet实例。
已安装AMC命令行工具。具体操作,请参见AMC命令行帮助。
方式一:通过关联集群ID选择目标集群
执行以下命令,查看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
使用以下内容,创建
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定义下发目标,一个下发目标可以包含一个或多个集群。
方式二:通过给关联集群打标选择目标集群
执行以下命令,查看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
执行以下命令,为关联集群打标。
替换
<clusterid>
为需要打标的关联集群ID,替换env=production1
为您的标签名称和值。kubectl label managedclusters <clusterid> env=production1
使用以下内容,创建
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中选择目标集群,可以包含一个或多个集群。