servicemesh-operator

更新时间:
复制为 MD 格式

servicemesh-operator 组件用于在 ACK 集群中简化服务网格(ASM)的部署、升级和配置管理流程,从而快速启用ASM所提供的流量管理、安全和可观测性等强大功能。

适用范围

  • ACK 集群版本需为 1.28 或更高。

  • 已开通 ASM 产品。

使用说明

ACK集群中成功安装 servicemesh-operator 组件后,系统将自动完成以下部署:

  • 在集群中部署一个名为 servicemesh-operator 的控制器。该控制器运行在集群的控制面,负责监听和处理服务网格(ServiceMesh)相关的自定义资源。

  • 创建CRD:servicemesh.istio.alibabacloud.com

  • 自动创建一个名为 mesh 的 ServiceMesh 自定义资源(CR)。

servicemesh-operator 控制器会创建一个名为mesh-for-${集群ID}的标准版 ASM 实例,并在创建完成后将 ACK 集群加入该实例。

可通过查询 ServiceMesh 自定义资源来实时监控 ASM 实例的创建进度和当前状态。

控制台

  1. ACK集群列表页面,单击目标集群名称,在集群详情页左侧导航栏,选择工作负载 > 自定义资源

  2. 自定义资源页面,搜索ServiceMesh,在下方列表单击istio.alibabacloud.com下的ServiceMesh名称。然后单击其右侧操作列下的YAML编辑

    YAML示例如下:

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: ServiceMesh
    metadata:
      annotations:
        operator.istio.alibabacloud.com/deletion-policy: Retain
      creationTimestamp: "2026-01-09T02:25:12Z"
      finalizers:
      - servicemeshoperator.finalizers.alibabacloud.com
      generation: 2
      name: asm
      resourceVersion: "36619976"
      uid: 94967e01-fc25-477e-9da9-4df42cede8ba
    spec:
      clusterSpec: Enterprise
    status:
      clusterSpec: Enterprise
      conditions:
      - lastTransitionTime: "2026-01-09T02:25:19Z"
        message: ""
        observedGeneration: 2
        reason: Passed
        status: "True"
        type: PreChecked
      - lastTransitionTime: "2026-01-09T02:25:32Z"
        message: ""
        observedGeneration: 2
        reason: Available
        status: "True"
        type: ServiceMeshAvailable
      - lastTransitionTime: "2026-01-09T02:25:32Z"
        message: ""
        observedGeneration: 2
        reason: Succeeded
        status: "True"
        type: ClusterEnrolled
      - lastTransitionTime: "2026-01-09T02:25:38Z"
        message: ""
        observedGeneration: 2
        reason: Succeeded
        status: "True"
        type: MeshConfigApplied
      serviceMeshId: c6490deb776cc458c82c4c22a69315bae
      serviceMeshName: mesh-for-cf17b23e9fa6b4fb081c58a33964cd3dc

kubectl

  1. 获取集群KubeConfig并通过kubectl工具连接集群

  2. 查看ServiceMesh自定义资源YAML。

    kubectl get servicemesh mesh -n istio-system -o yaml

    预期输出:

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: ServiceMesh
    metadata:
      annotations:
        operator.istio.alibabacloud.com/deletion-policy: Retain
      creationTimestamp: "2026-01-09T02:25:12Z"
      finalizers:
      - servicemeshoperator.finalizers.alibabacloud.com
      generation: 2
      name: asm
      resourceVersion: "36619976"
      uid: 94967e01-fc25-477e-9da9-4df42cede8ba
    spec:
      clusterSpec: Enterprise
    status:
      clusterSpec: Enterprise
      conditions:
      - lastTransitionTime: "2026-01-09T02:25:19Z"
        message: ""
        observedGeneration: 2
        reason: Passed
        status: "True"
        type: PreChecked
      - lastTransitionTime: "2026-01-09T02:25:32Z"
        message: ""
        observedGeneration: 2
        reason: Available
        status: "True"
        type: ServiceMeshAvailable
      - lastTransitionTime: "2026-01-09T02:25:32Z"
        message: ""
        observedGeneration: 2
        reason: Succeeded
        status: "True"
        type: ClusterEnrolled
      - lastTransitionTime: "2026-01-09T02:25:38Z"
        message: ""
        observedGeneration: 2
        reason: Succeeded
        status: "True"
        type: MeshConfigApplied
      serviceMeshId: c6490deb776cc458c82c4c22a69315bae
      serviceMeshName: mesh-for-cf17b23e9fa6b4fb081c58a33964cd3dc

配额与限制

  • 当前版本的 servicemesh-operator 仅支持 ASM 实例与 ACK 集群的一对一绑定。如需更新 ASM实例,请前往 ASM 控制台 操作。

  • 删除 ServiceMesh 资源时,将执行从ASM中移除此ACK集群的操作,如果 ACK 集群中有使用的 ASM 网关或 Sidecar 代理等资源,移除操作将失败。可通过 ServiceMesh 资源的 Status 查看当前状态。

  • 如果 ServiceMesh 资源包含 operator.istio.alibabacloud.com/deletion-policy: Delete 注解,则在删除 ACK 集群后同步删除 ASM实例,否则将保留ASM实例 。

  • 本组件默认创建标准版 ASM,免费但无 SLA 承诺,支持的最大集群规模为 50 个Pod。标准版仅在中国内地地域支持,其他地域或国家创建标准版将失败。可通过修改 ServiceMesh 资源的 .spec.clusterSpecEnterpriseUltimate 来创建或升级规格。更多关于版本与收费信息参见 计费说明

ServiceMesh CRD 说明

ServiceMesh 资源定义了在 Kubernetes 集群中声明和管理一个 ASM 服务网格的期望状态和实际状态。其中,Spec 中的一些字段是可变的,修改后将触发网格对应属性的更改。

Spec(.spec)

字段

类型

描述

默认值

必填

可变

id

string

服务网格的 ID。如果未指定,系统将生成一个随机 ID。用户可以指定此 ID 来创建一个新的服务网格,或将当前集群加入到一个已存在的网格中。此字段的优先级高于 name字段。

N/A

name

string

服务网格的名称。如果未指定,系统将生成一个格式为mesh-for-${集群ID}的名称。用户可以指定此名称来创建一个新的服务网格,或将当前集群加入到一个已存在的网格中。

N/A

clusterSpec

string

创建的服务网格实例的初始规格。它定义了网格实例的功能和性能等级。有效值为:

  • Standard(标准版)。

  • Enterprise(企业版)。

  • Ultimate(旗舰版)。

  • 中国内地地域为 Standard

  • 其他地域或国家为 Enterprise

Status(.status)

字段

类型

描述

serviceMeshName

string

由控制器创建的、实际的服务网格的唯一名称。该字段在首次创建请求发送前被记录,并且在整个协调过程中不可变,以防止创建重复的服务网格实例。

serviceMeshId

string

实际创建成功的服务网格的 ID。该值在服务网格实例成功创建后从云端获取。

clusterSpec

string

创建的服务网格实例的规格。

conditions

[]ServiceMeshCondition

一个列表,包含了服务网格在协调过程中经历的一系列条件及其状态。它详细记录了资源从创建到就绪的各个关键步骤。

ServiceMeshCondition

字段

类型

描述

lastTransitionTime

metav1.Time

该条件状态最后一次发生变化的时间戳。

status

string

条件的当前状态。有效值为:

  • True(条件成立)。

  • False(条件不成立)。

  • Unknown(状态未知)。

type

string

条件的类型,代表一个具体的协调步骤。例如:

  • PreChecked(预检查完成)。

  • ServiceMeshAvailable(服务网格可用)。

  • ClusterEnrolled(集群已加入)。

  • MeshConfigApplied(网格配置已应用)。

  • Retried(重试状态)。

  • ServiceMeshDeleted(服务网格已删除)。

message

string

关于该条件状态的信息描述,通常用于在发生错误或处于某个特定状态时提供额外上下文。

reason

string

该条件状态的原因,例如:

  • Reconciling(更新中)。

  • Succeeded(成功)。

  • Failed(失败)。

  • Available(可用)。

  • Unavailable(不可用)。

  • Passed(通过)。

  • WaitSteady(等待网格更新完成)。

  • Retried(已重试)。

特殊注解

ServiceMesh 资源支持一些特殊注解用来进行配置,当前包含:

重试

通过 operator.istio.alibabacloud.com/retry-at 注解可触发协调过程的重试。当协调过程中遇到错误时,可以设置此注解来触发重新尝试操作。

kubectl annotate servicemesh mesh operator.istio.alibabacloud.com/retry-at=""

执行该操作后,将自动发起重试操作。

删除策略

通过 operator.istio.alibabacloud.com/deletion-policy 注解可配置删除策略:

  • Retain(默认值): 当 ServiceMesh 资源被删除时,保留阿里云中的 ASM 实例。

  • Delete: 当 ServiceMesh 资源被删除时,从阿里云中删除 ASM 实例。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ServiceMesh
metadata:
  name: advanced-mesh
  annotations:
    operator.istio.alibabacloud.com/deletion-policy: Delete  # 或 Retain
spec:
  name: advanced-service-mesh
  clusterSpec: Ultimate