Istio 伊斯蒂奥。跨命名空间服务

Istio 伊斯蒂奥。跨命名空间服务,istio,Istio,跨命名空间服务。我试图让nsA名称空间中的一个pod调用nsB名称空间中的一个pod。但是我想避免开发人员担心最终服务的位置,所以只需在调用中使用主机名,我将使用Istio重定向它。 我的假设是,在代码中,我只需要调用一个主机名,就像现在我要创建一个这样的虚拟服务,将它重定向到正确的名称空间 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: podB spec: hosts: -

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

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的服务。它可以是一个没有任何端点的“空”服务,但该服务必须存在,Istio代理才能处理请求,如果该服务不存在,virtualService将无法运行


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

我希望这篇文章能有所帮助:


(很抱歉,我没有足够的声誉来写评论,只有答案)

我希望这篇文章能对你有所帮助:


(很抱歉,我没有足够的声誉来写评论,只有答案)

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

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

谢谢,但它不适用,在该示例中发生了两件事,第一件事是服务在两个名称空间中运行,第二件事是他们使用FQDN,因此,或者我在使用者名称空间中创建一个虚拟服务,或者我必须知道最终服务在哪里设置FQDN。我认为我想要的是不可能的。谢谢,但它不适用,在该示例中发生了两件事,第一件事是服务在两个命名空间中运行,第二件事是它们使用FQDN,因此,或者我在使用者命名空间中创建一个虚拟服务,或者我必须知道最终服务将在哪里设置FQDN。我想我想要的是不可能的。你不需要我来做这件事。创建一个没有选择器的无头服务,其端点对象指向第二个服务。不需要istio来执行此操作。创建不带选择器的无头服务,端点对象指向第二个服务。