servicemesh-operator

servicemesh-operator

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

适用范围

ACK集群版本需为1.21或更高。

使用说明

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

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

  • 创建servicemesh.istio.alibabacloud.comCRD。

  • 自动创建一个名为 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:
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"istio.alibabacloud.com/v1beta1","kind":"ServiceMesh","metadata":{"annotations":{},"name":"mesh"},"spec":{"clusterSpec":"Standard"}}
      creationTimestamp: "2025-08-08T03:38:15Z"
      generation: 1
      name: mesh
      resourceVersion: "18972175"
      uid: 440b90f4-c894-4dc1-8b37-c025690171c9
    spec:
      clusterSpec: Standard
    status:
      conditions:
      - lastTransitionTime: "2025-08-08T03:38:16Z"
        status: "True"
        type: PreChecked
      - lastTransitionTime: "2025-08-08T03:38:18Z"
        status: "True"
        type: ServiceMeshCreated
      - lastTransitionTime: "2025-08-08T03:38:19Z"
        status: "True"
        type: ServiceMeshReady
      - lastTransitionTime: "2025-08-08T03:38:21Z"
        status: "True"
        type: ClusterAdded
      phase: Succeeded
      serviceMeshId: cb3a33d70d3344ea58170494c1b12a6fa
      serviceMeshName: mesh-for-c9ce5e565cb984d709326a29ccb80d70a

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:
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"istio.alibabacloud.com/v1beta1","kind":"ServiceMesh","metadata":{"annotations":{},"name":"mesh"},"spec":{"clusterSpec":"Standard"}}
      creationTimestamp: "2025-08-08T03:38:15Z"
      generation: 1
      name: mesh
      resourceVersion: "18972175"
      uid: 440b90f4-c894-4dc1-8b37-c025690171c9
    spec:
      clusterSpec: Standard
    status:
      conditions:
      - lastTransitionTime: "2025-08-08T03:38:16Z"
        status: "True"
        type: PreChecked
      - lastTransitionTime: "2025-08-08T03:38:18Z"
        status: "True"
        type: ServiceMeshCreated
      - lastTransitionTime: "2025-08-08T03:38:19Z"
        status: "True"
        type: ServiceMeshReady
      - lastTransitionTime: "2025-08-08T03:38:21Z"
        status: "True"
        type: ClusterAdded
      phase: Succeeded
      serviceMeshId: cb3a33d70d3344ea58170494c1b12a6fa
      serviceMeshName: mesh-for-c9ce5e565cb984d709326a29ccb80d70a

配额与限制

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

ServiceMesh CRD 说明

ServiceMesh 资源定义了在 Kubernetes 集群中声明和管理一个 ASM 服务网格的期望状态和实际状态。

Spec(.spec)

字段

类型

描述

默认值

必填

id

string

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

N/A

name

string

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

N/A

clusterSpec

string

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

  • Standard(标准版)。

  • Enterprise(企业版)。

  • Ultimate(旗舰版)。

Standard

Status(.status)

字段

类型

描述

serviceMeshName

string

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

serviceMeshId

string

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

phase

string

描述服务网格当前所处的生命周期阶段。可能的值包括:

  • Initializing(初始化中)。

  • Ready(网格就绪)。

  • Succeeded(成功)。

  • Failed(失败)。

conditions

[]ServiceMeshCondition

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

retriedAt

metav1.Time

记录了当协调过程遇到可重试的错误时,最后一次重试的时间戳。

ServiceMeshCondition

字段

类型

描述

lastTransitionTime

metav1.Time

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

status

string

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

  • True(条件成立)。

  • False(条件不成立)。

  • Unknown(状态未知)。

type

string

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

  • PreChecked(预检查完成)。

  • ServiceMeshCreated(服务网格实例已创建)。

  • ServiceMeshReady(服务网格实例已就绪)。

  • ClusterAdded(集群已添加到网格)。

message

string

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