【问题标题】:How to make cluster local request from one service to another in Knative?如何在 Knative 中从一个服务向另一个服务发出集群本地请求?
【发布时间】:2020-02-01 23:41:54
【问题描述】:

我已按照本指南https://knative.dev/docs/serving/cluster-local-route/ 将服务集群设为本地。

我正在尝试使用 curl 命令从集群内的另一个服务访问该服务,但我总是 get could not resolve host 错误。

我尝试使用 curl helloworld-default.svc.clustercurl -H "Host: helloworld-go.default.svc .cluster" http:// 命令。

我错过了什么? 我是否需要对 Istio virtualService 进行任何配置才能使其正常工作? (我在 GKE 中运行 Knative)

【问题讨论】:

  • 集群域一般为cluster.local

标签: knative


【解决方案1】:

我认为您缺少.local,它应该可以工作。

curl -H "Host: helloworld-go.default.svc.cluster.local" http://< cluster_ip > 

但是当您从集群内发出请求时,您应该能够完全删除 ClusterIP。基本执行:

curl helloworld-go.default.svc.cluster.local

DNShelloworld-go.default.svc.cluster.local 将通过 Kubernetes DNS 解析机制进行解析。


仅在入口流量(公共流量进入私人流量)上指定 HOST 标头很重要。

详细信息:Knative Service 创建一个 Route CRD,它创建一个 ClusterIngress,它将被控制器(默认为 istio-network)拾取以配置 Ingress Gateway(在 istio 的情况下使用另一个 CRD VirtualService)。 Ingress Gateways 路由基于 HOST 标头。

【讨论】:

  • 感谢回复,问题是GKE默认安装的Knative没有安装集群本地网关。
  • 酷,我很想看到一个更长的答案,以便我可以从中学习?
猜你喜欢
  • 1970-01-01
  • 2018-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 2018-11-08
  • 1970-01-01
  • 2020-03-18
相关资源
最近更新 更多