我有一个运行在limited access to public endpoint的私有GKE群集中的GRPC服务。我有自己的VPC和子网。我正在按照文档描述部署服务和端点,但是在esp容器启动时遇到此错误。我正在使用自己的服务帐户,该帐户应具有所有权限,并且群集具有以下oauth范围:
- https://www.googleapis.com/auth/cloud-platform
- https://www.googleapis.com/auth/devstorage.read_only
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring
- https://www.googleapis.com/auth/service.management.readonly
- https://www.googleapis.com/auth/servicecontrol
- https://www.googleapis.com/auth/sqlservice.admin
- https://www.googleapis.com/auth/trace.append
即使名称与我的YAML文件中的名称相同,也出现以下错误。
ERROR:Fetching rollouts failed (status code 404, reason Not Found, url https://servicemanagement.googleapis.com/v1/services/<name>.cloud.goog/rollouts?filter=status=SUCCESS)
编辑:这是esp容器的容器规格
containers:
- name: esp
image: gcr.io/endpoints-release/endpoints-runtime:1
args: [
"-P", "9000",
"-a", "grpc://127.0.0.1:50051",
"-s", "<service-name>.cloud.goog",
"--rollout_strategy", "managed",
"--service_account_key=/etc/creds/service-account-creds.json"
]
由于收到错误404,因此此情况与Patrick W提到的IAM权限有关。我建议您看一下本文档,在这里可以找到有关API权限的有用信息[1]。
此外,这可能与需要授权令牌的Google服务管理services.rollouts.list有关,可以从元数据服务器或服务帐户密钥文件中读取授权令牌。您可以参考此页面[2]以获取更多信息。
[1] https://cloud.google.com/kubernetes-engine/docs/reference/api-permissions