了解功能状态条件
注意:Cloud Service Mesh 1.6.8 及更高版本会自动支持规范化服务。
本页面介绍了如何解释 Cloud Service Mesh 集群或舰队中报告的条件并采取相应措施。
如需检查条件,请运行以下命令:
gcloud container fleet mesh describe --project FLEET_PROJECT
输出可能包含集群的 membershipStates
中的 conditions
,如下所示:
...
membershipStates:
projects/test-project/locations/us-central1/memberships/my-membership:
servicemesh:
conditions:
- code: <CONDITION_CODE>
details: ...
documentationLink: ....
severity: ...
如需详细了解 code
的值,请参阅此页面。
NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED
您可能会在会员资格的 Conditions
字段中看到 NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED
错误代码:
membershipStates:
projects/test-project/locations/us-central1/memberships/my-membership:
servicemesh:
conditions:
- code: NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED
details: One or more node pools have workload identity federation disabled.
documentationLink: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
severity: ERROR
controlPlaneManagement:
details:
- code: REVISION_FAILED_PRECONDITION
details: Required in-cluster components are not ready. This will be retried
within 15 minutes.
implementation: TRAFFIC_DIRECTOR
state: FAILED_PRECONDITION
如果 GKE 集群未在该集群的所有节点池上启用工作负载身份联合,则会显示此错误,因为这是安装 Cloud Service Mesh 的前提条件。
如需解决此错误消息,您必须按照说明在所有节点池上启用工作负载身份联合。请注意,启用方式可能会因特定集群情况而异。
启用后,错误消息应会自动移除,并且您的集群应会恢复到 ACTIVE
状态。如果问题仍然存在,且您需要其他帮助,请参阅获取支持。
MESH_IAM_PERMISSION_DENIED
此错误表示服务账号没有足够的权限来访问您的舰队项目。请按照以下步骤排查问题:
验证您的服务账号是否已授予
Anthos Service Mesh Service Agent
角色。如需详细了解如何验证 IAM 权限并添加权限,请参阅修订版本报告运行状况不佳错误,并使用其中的相同步骤。如果问题仍然存在,请与 Google 客户支持团队联系,以获得更多帮助。
MESH_IAM_CROSS_PROJECT_PERMISSION_DENIED
此错误表示舰队项目服务账号没有足够的权限来访问其他项目(集群项目或网络项目)。
对于共享 VPC,请务必在共享 VPC 网络项目中向所有舰队项目服务账号授予 Anthos Service Mesh Service Agent
角色。
对于 GKE 舰队项目和集群项目场景,请务必在集群项目中向舰队项目服务账号授予 Anthos Service Mesh Service Agent
角色。
示例问题排查命令:
验证您的网络项目或集群项目服务账号是否已向舰队项目服务账号授予
Anthos Service Mesh Service Agent
角色。如果没有,请运行以下命令:gcloud projects add-iam-policy-binding NETWORK_OR_CLUSTER_PROJECT_ID \ --member "serviceAccount:service-FLEET_PROJECT_NUMBER@gcp-sa-servicemesh.iam.gserviceaccount.com" \ --role roles/anthosservicemesh.serviceAgent
此外,请确认您没有任何自动化操作会移除此绑定。
如果问题仍然存在,请与 Google 客户支持团队联系,以获得更多帮助。
CONFIG_VALIDATION_ERROR
此错误表明,尝试应用于舰队中一个或多个成员资格的部分网格相关配置未能成功应用。错误详情中说明了用户解决此问题的最佳途径。
membershipStates:
projects/test-project/locations/us-central1/memberships/my-membership:
servicemesh:
conditions:
- code: CONFIG_VALIDATION_ERROR
details: 'Unsupported ProxyConfig fields: [proxyconfig.statNameLength]'
severity: ERROR
controlPlaneManagement:
特定配置相关的配置验证错误要求用户采取相应的操作来解决问题。例如,对于使用了不受支持的 API 字段方面的错误,最好的解决方法是从 Mesh API 中移除有问题的配置。
在 Cloud 控制台中,依次前往 Kubernetes Engine > Secrets & ConfigMaps > istio-asm-managed(ConfigMap 的名称取决于您使用的发布渠道;例如,istio-asm-managed-stable 或 istio-asm-managed-rapid),然后选择“YAML”标签页。
例如,以下示例将不再支持 meshConfig.configSources:
apiVersion: v1
data:
mesh: |
enablePrometheusMerge: true
trustDomain: "foobar.svc.id.goog"
trustDomainAliases:
- cluster.local
configSources:
- address: k8s://
- address: fs:///var/lib/istio/config/data