ASMReconcileNSLabels CRD 说明

更新时间:
复制为 MD 格式

ASM 自 1.28 版本起,支持通过 ASMReconcileNSLabels CRD 配置命名空间标签的同步策略。本文介绍 ASMReconcileNSLabels CRD 的 YAML 示例和字段说明。

使用场景

在多集群 ASM 实例中,控制面(ASM 实例)和数据面(Kubernetes 集群)的命名空间是独立管理的。当您在控制面为命名空间设置了 Istio 相关标签(如启用 Sidecar 注入或 Ambient 模式)后,默认情况下会将控制面的 Istio 相关标签同步至数据面集群中,你可以通过 ASMReconcileNSLabels 来修改这一行为。

使用限制

  • ASM 实例版本需为 1.28 及以上。关于升级实例的具体操作,请参见升级ASM实例

  • ASMReconcileNSLabels 是集群级别的资源(Cluster-scoped),在一个 ASM 实例中只能创建名为 default 的资源。

  • 仅以下 Istio 相关标签会被同步,其他自定义标签不受影响:

    • istio.io/dataplane-mode:标识命名空间使用 Ambient 数据面模式。

    • istio-injection:标识命名空间是否启用 Sidecar 自动注入。

    • istio.io/rev:标识命名空间使用的 Istio 修订版本。

YAML 示例

示例一:全局启用命名空间标签同步

将控制面的命名空间标签同步到所有数据面集群。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
  name: default  # 必须为 default
spec:
  syncPolicy:
    enabled: true

示例二:全局禁用命名空间标签同步

停止所有命名空间标签向数据面集群的同步。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
  name: default
spec:
  syncPolicy:
    enabled: false

示例三:仅向指定集群同步(白名单)

仅将命名空间标签同步到指定的数据面集群。当 enabledtrue 时,clusters 列表(集群 ID)作为白名单使用。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
  name: default
spec:
  syncPolicy:
    enabled: true
    clusters:
    - c-xxxx1  # 数据面集群 ID
    - c-xxxx2

示例四:排除指定集群(黑名单)

将命名空间标签同步到除指定集群以外的所有数据面集群。当 enabledfalse 时,clusters 列表(集群 ID)作为黑名单使用。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
  name: default
spec:
  syncPolicy:
    enabled: false
    clusters:
    - c-xxxx3  # 数据面集群 ID

示例五:指定同步源集群

通过 cardinal 字段指定作为标签同步来源的集群 ID。默认从控制面集群同步,您也可以指定某个数据面集群作为同步来源。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
  name: default
spec:
  syncPolicy:
    enabled: true
    cardinal: c-xxxx4  # 作为同步来源的集群 ID

示例六:组合使用白名单和同步源集群

从指定的源集群读取命名空间标签,并仅同步到白名单中的集群。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMReconcileNSLabels
metadata:
  name: default
spec:
  syncPolicy:
    enabled: true
    cardinal: c-xxxx4  # 作为同步来源的集群 ID
    clusters:
    - c-xxxx1
    - c-xxxx2

字段说明

Spec

字段

类型

是否必须

说明

syncPolicy

SyncPolicy

全局同步策略,控制命名空间标签向数据面集群的同步行为。未配置时,默认向所有数据面集群同步。

SyncPolicy

SyncPolicy 定义了命名空间标签的同步行为。其中 enabledclusters 字段共同决定同步范围,具体规则如下:

enabled

clusters

同步行为

true(默认)

所有数据面集群同步

true

[A, B]

向集群 A 和 B 同步(白名单)

false

不向任何集群同步

false

[A, B]

集群 A 和 B 以外的所有集群同步(黑名单)

字段

类型

是否必须

说明

enabled

bool

控制同步策略的启用状态,默认为 true。与 clusters 字段共同决定白名单或黑名单行为。设为 true 时,clusters 列表作为白名单;设为 false 时,clusters 列表作为黑名单。

cardinal

string

指定作为标签同步来源的数据面集群 ID。未指定时默认从控制面集群同步。如果指定的集群不存在,将回退到控制面集群。

clusters

string[]

数据面集群 ID 列表。与 enabled 字段配合使用:enabled 为 true 时作为白名单,enabled 为 false 时作为黑名单。为空时表示所有集群。

相关文档