Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/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
GKE可扩展服务代理需要访问哪些URL_Url_Google Kubernetes Engine_Grpc_Istio - Fatal编程技术网

GKE可扩展服务代理需要访问哪些URL

GKE可扩展服务代理需要访问哪些URL,url,google-kubernetes-engine,grpc,istio,Url,Google Kubernetes Engine,Grpc,Istio,我在谷歌Kubenetes引擎中运行Istio。我的应用程序使用gRPC,并有一个可扩展的服务代理容器来链接到Google Enpoints服务 默认情况下,GKE上的Istio会阻止所有出口请求,这会破坏ESP容器,因为它需要从Istio网格外部请求一些数据 ESP的日志告诉我,它正试图访问IP 169.254.169.254以获取一些元数据,所以我从Istio打开了一个出口通道,让它发生,这很好 但是,ESP尝试的下一件事是“从卷展服务获取服务配置ID”。这再次被阻止,但这次日志错误没有告诉

我在谷歌Kubenetes引擎中运行Istio。我的应用程序使用gRPC,并有一个可扩展的服务代理容器来链接到Google Enpoints服务

默认情况下,GKE上的Istio会阻止所有出口请求,这会破坏ESP容器,因为它需要从Istio网格外部请求一些数据

ESP的日志告诉我,它正试图访问IP 169.254.169.254以获取一些元数据,所以我从Istio打开了一个出口通道,让它发生,这很好

但是,ESP尝试的下一件事是“从卷展服务获取服务配置ID”。这再次被阻止,但这次日志错误没有告诉我它试图访问的URL,只有路径。所以我不知道该打开什么url进行出口

这是日志条目:

警告:重试(重试(总计=2,连接=无,读取=无,重定向=无, 状态=无)连接被“ProtocolError”(“连接”)中断后 已中止。“,错误(104,“由对等方重置连接”): /v1/services/rev79.endpoints.rev79-232812.cloud.goog/rollouts?filter=status=SUCCESS


那么,有人能告诉我ESP需要访问哪些URL才能工作吗?

通过用一些关键字搜索路径的某些部分,我最终偶然发现了我想要的内容。 这看起来像ESP试图访问的内容:


事实上,打开到该主机的路由可以使ESP启动并运行。

对于其他遇到此问题的人

ESP需要访问两个独立的端点,才能在不崩溃的情况下运行。是的

  • servicemanagement.googleapis.com(HTTPS)
  • 169.254.269.254(HTTP)
要正确运行,它还需要

  • servicecontrol.googleapis.com(HTTPS)
如果在Istio网格中有严格的出口过滤,则需要两个ServiceEntry资源来实现这一点

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: endpoints-cert
spec:
  hosts:
  - metadata.google # this field does not matter
  addresses:
  - 169.254.169.254/32
  ports:
  - number: 80
    name: http
    protocol: HTTP
  resolution: NONE
  location: MESH_EXTERNAL

---

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: endpoints-metadata
spec:
  hosts:
  - "servicemanagement.googleapis.com"
  - "servicecontrol.googleapis.com"
  ports:
  - number: 80 # may not be necessary
    name: http
    protocol: HTTP
  - number: 443
    name: https
    protocol: HTTPS
  resolution: DNS
  location: MESH_EXTERNAL
如果您使用的是出口网关,则需要对这两个网关进行额外配置 这些端点