Kubernetes集群 - 使用Ingress的服务之间的通信

时间:2018-04-14 00:04:38

标签: kubernetes

我正在Kubernetes集群中运行2项服务。

  1. pricesvc
  2. schedulesvc
  3. 使用“ClusterIP”类型部署服务,并且ingress(netscalar)位于服务前面。

    schedulesvc正常运行,我可以从Kubernetes集群外部访问schedulesvc。

    现在,尝试从pricesvc访问schedulesvc。我可以使用ClusterIP服务端点或Ingress。 因为,我计划在多个数据中心运行Kubernetes集群,我将在DC中运行我的Active / Active应用程序,因此我不想使用ClusterIP网址,并且现在想要使用Ingress URL。

    我可以从kubernetes集群外部访问schedulesvc ingress url。但是,如果我尝试使用入口URL从pricesvc调用schedulesvc,则会收到以下错误。

    Caused by: java.net.UnknownHostException: schedulesvc.testns.ing.lb.kubecloud.io: Temporary failure in name resolution
        at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_152]
        at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[na:1.8.0_152]
        at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[na:1.8.0_152]
        at java.net.InetAddress.getAllByName0(InetAddress.java:1276) ~[na:1.8.0_152]
        at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[na:1.8.0_152]
        at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[na:1.8.0_152]
        at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) ~[httpclient-4.5.2.jar!/:4.5.2]
    

    我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您似乎创建了一个名为testns的命名空间。

请记住,只能创建一个入口来解决Ingress所在的命名空间内的服务。出于安全原因,未实现跨命名空间入口。