启用和停用规范化服务控制器
注意:Cloud Service Mesh 1.6.8 及更高版本会自动支持规范化服务。
使用 asmcli
安装或升级 Cloud Service Mesh 时,它会将规范化服务控制器部署到您的集群。规范化服务控制器会将属于同一逻辑服务的工作负载分组到一起,这是获得 Google Cloud 控制台中“服务”信息中心的完整功能所必需的。部署控制器会在 asm-system
命名空间中的集群中创建 canonical-service-controller-manager
Deployment,这不会影响您的服务或工作负载。
如果您未使用 asmcli
工具安装 Cloud Service Mesh,您的集群可能未启用规范化服务控制器。如需确定集群上是否启用了规范化服务控制器,请运行以下命令:
kubectl get services -n asm-system
启用集群内规范化服务控制器
如果规范化服务控制器未启用,您可以按照以下步骤启用它:
将包含控制器的
kpt
软件包下载到当前工作目录,请运行以下命令:kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.22 asm
应用控制器配置:
kubectl apply -f asm/canonical-service/controller.yaml
停用集群内规范化服务控制器
如要停用规范化服务控制器,请执行以下操作:
将包含控制器的 kpt 软件包下载到当前工作目录,请运行以下命令:
kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.22 asm
如要从集群中删除控制器,请运行以下命令:
kubectl delete -f asm/canonical-service/controller.yaml
启用代管式规范化服务控制器
如果您不想安装集群内控制器,则可以改为启用代管式规范化服务控制器,该控制器会为网格中的所有已注册集群执行相同的功能,而无需自行安装或管理控制器。
代管式控制器的优先级低于集群内控制器。如果您要从集群内控制器进行迁移,则必须从其运行的每个集群中删除集群内控制器,以便代管式控制器进行接管。如需了解详情,请参阅停用集群内规范化服务控制器。
如需启用代管式控制器,请执行以下操作:
创建 GKE 集群
如果您在创建新的 GKE 集群时使用了启用 Cloud Service Mesh 选项,则默认情况下已安装代管式规范化服务控制器。
通过运行以下命令,确保您已运行代管式规范化服务控制器:
gcloud beta container hub mesh describe --project=PROJECT_ID
说明指出规范化服务已成功协调:
projects/<your project number>/locations/global/memberships/<your cluster name>:
code: OK
description: |-
Revision(s) ready for use: asm-managed.
All Canonical Services have been reconciled successfully.
servicemeshFeatureState: {}
updateTime: '2021-11-16T21:10:36.289467777Z'
如果未成功协调规范化服务,则会出现错误消息或类似于以下消息的输出:
projects/<your project number>/locations/global/memberships/<your cluster name>:
code: OK
description: |-
Revision(s) ready for use: istiod-asm-173-6.
The Managed Canonical Service Controller is yielding to the in-cluster controller. See https://cloud.google.com/service-mesh/v1.21/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller.
servicemeshFeatureState: {}
updateTime: '2021-11-16T21:05:43.286828851Z'
lifecycleState: ENABLED
代管式控制层面安装
如果您安装了托管式 Cloud Service Mesh(使用 Fleet API 或 asmcli
),则系统会默认安装代管式规范化服务控制器。
通过运行以下命令,确保您已运行代管式规范化服务控制器:
gcloud beta container hub mesh describe --project=PROJECT_ID
说明指出规范化服务已成功协调:
projects/<your project number>/locations/global/memberships/<your cluster name>:
code: OK
description: |-
Revision(s) ready for use: asm-managed.
All Canonical Services have been reconciled successfully.
servicemeshFeatureState: {}
updateTime: '2021-11-16T21:10:36.289467777Z'
如果未成功协调规范化服务,则会出现错误消息或类似于以下消息的输出:
projects/<your project number>/locations/global/memberships/<your cluster name>:
code: OK
description: |-
Revision(s) ready for use: istiod-asm-173-6.
The Managed Canonical Service Controller is yielding to the in-cluster controller. See https://cloud.google.com/service-mesh/v1.21/docs/canonical-service-controller-enable-and-disable#disable-in-cluster-service-controller for instructions on removing the in-cluster controller.
servicemeshFeatureState: {}
updateTime: '2021-11-16T21:05:43.286828851Z'
lifecycleState: ENABLED
后续步骤
了解: