【问题标题】:Istio. Cross-namespace services伊斯蒂奥。跨命名空间服务
【发布时间】:2020-12-24 17:07:05
【问题描述】:

跨命名空间服务。我试图让命名空间 nsA 中的 pod 调用命名空间 nsB 中的 pod。但我想避免让开发人员担心最终服务的位置,所以只需在调用中使用主机名,我将使用 Istio 重定向它。 我的假设是在代码中我只是调用一个主机名,比如http://podB:9080,现在我会创建一个这样的虚拟服务来将它重定向到正确的命名空间

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: podB
spec:
  hosts:
  - podB
  http:
  - route:
    - destination:
        host: podB.nsB.svc.cluster.local
        subset: v1

但这不起作用,为此我必须在命名空间 nsA 中创建一个名为 podB 的服务。它可以是没有任何 Endpoint 的“空”服务,但该服务必须存在 Istio Proxy 才能处理请求,如果它不存在,则 virtualService 不会运行。

对这种情况有什么建议吗?

【问题讨论】:

  • 您不需要 istio 来执行此操作。创建一个没有选择器且端点对象指向第二个服务的无头服务。

标签: istio


【解决方案1】:

我希望其他帖子可以提供帮助: Istio: Blue/green deployment

(对不起,我没有足够的声誉来写 cmets,只有答案)

【讨论】:

  • 谢谢,但它不适用,在该示例中发生了两件事,第一是服务在两个命名空间中运行,第二是他们使用 FQDN,或者我在消费者命名空间,或者我必须知道最终服务在哪里设置 FQDN。我想我想要的是不可能的。
【解决方案2】:

我遇到了同样的问题,因为应用程序本身在发出请求时需要此 DNS 记录。我认为 ISTIO 1.8 可以通过添加自己的 DNS 解析来解决这个问题。也许你可以试一试

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 2017-09-28
    • 2021-10-13
    • 2020-12-08
    • 2014-02-06
    • 1970-01-01
    • 2010-09-07
    • 2011-05-09
    • 2017-01-04
    相关资源
    最近更新 更多