Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 启用Istio的GKE群集无法与Google服务基础架构API可靠通信_Kubernetes_Google Cloud Platform_Google Kubernetes Engine_Google Cloud Endpoints_Istio - Fatal编程技术网

Kubernetes 启用Istio的GKE群集无法与Google服务基础架构API可靠通信

Kubernetes 启用Istio的GKE群集无法与Google服务基础架构API可靠通信,kubernetes,google-cloud-platform,google-kubernetes-engine,google-cloud-endpoints,istio,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,Google Cloud Endpoints,Istio,我无法可靠地允许我的支持istio的Google Kubernetes引擎集群通过连接到Google云端点(服务管理API)。部署Pod时,代理始终无法启动,导致Pod重新启动,并输出以下错误: INFO:从元数据服务获取访问令牌 警告:“NewConnectionError(':无法建立新连接:[Errno 111]连接被拒绝',)”:/computeMetadata/v1/instance/service accounts/default/token)断开连接后重试(重试(重试(总计=0,连

我无法可靠地允许我的支持istio的Google Kubernetes引擎集群通过连接到Google云端点(服务管理API)。部署Pod时,代理始终无法启动,导致Pod重新启动,并输出以下错误:

INFO:从元数据服务获取访问令牌
警告:“NewConnectionError(':无法建立新连接:[Errno 111]连接被拒绝',)”:/computeMetadata/v1/instance/service accounts/default/token)断开连接后重试(重试(重试(总计=0,连接=None,读取=None,重定向=0,状态=None))
错误:获取元数据属性失败:http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token
但是,重启后,代理报告一切正常,它能够获取访问令牌,并且我能够成功向Pod发出请求:

INFO:从元数据服务获取访问令牌
信息:从卷展栏服务获取服务配置ID
信息:从服务管理服务获取服务配置
信息:属性区:europe-west2-a
信息:属性项目\u id:我的项目
信息:属性kube_env:kube_env
nginx:[警告]使用受信任的CA证书文件:/etc/nginx/trusted-CA-certificates.crt
10.154.0.5--[23/May/2020:21:19:36+0000]“GET/domains HTTP/1.1”200 221“-”curl/7.58.0”
大约一个小时后,可能是因为访问令牌已过期,代理日志表明它再次无法获取访问令牌,我无法再向我的Pod发出请求

2020/05/23 22:14:04[错误]9#9:上游超时(110:连接超时)
2020/05/23 22:14:04[错误]9#9:无法获取服务帐户令牌
2020/05/23 22:14:04[错误]9#9:获取访问令牌意外状态:内部:无法获取服务帐户令牌
我有一个ServiceEntry资源,它应该允许代理向GKE节点上的元数据服务器发出请求:

apiVersion:networking.istio.io/v1alpha3 种类:ServiceEntry 元数据: 名称:谷歌元数据服务器 规格: 主持人: -metadata.google.internal#GCE元数据服务器 地址: -169.254.169.254#GCE元数据服务器 位置:外部网格 端口: -名称:http 电话:80 协议:HTTP -名称:https 电话:443 协议:HTTPS 我已通过
exec
ing进入其中一个容器并运行以下操作确认此功能正常:

curl-H“元数据风格:谷歌”http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token

我如何防止这种行为并可靠地让代理与Google服务基础架构API通信?

尽管我不完全相信这是解决方案,但使用专用服务帐户在可扩展服务代理容器内生成访问令牌似乎可以防止上述行为我能够可靠地向代理和上游服务发出请求,即使在一小时之后

我正在使用的服务帐户具有以下角色:

  • roles/cloudtrace.agent
  • 角色/servicemanagement.serviceController
假设这是一个稳定的问题解决方案,那么作为一个结果,我会更高兴,因为我对使用元数据服务器不是100%满意,因为它依赖于与GKE节点关联的服务帐户。此服务帐户通常比ESP完成其工作所需的功能更强大

不过,我将继续监控这一点,以防代理上游再次无法访问