【发布时间】:2018-04-23 13:01:54
【问题描述】:
我有 2 个名为 A 和 B 的服务
我有服务 A 的 pod a1、a2、a3。
我有服务 B 的 pod b1、b2、b3。
服务 A -> 类型 = ClusterIP
服务 B -> 类型= LoadBalancer
如果我尝试从 a1 -> b1 执行 nslookup,则会出现以下错误。
>kubectl exec a1 -- nslookup b1
nslookup: can't resolve '(null)': Name does not resolve
nslookup: can't resolve 'cassandra-0': Name does not resolve
command terminated with exit code 1
请帮我找出问题以及为什么其他 pod 无法访问它
已更新实际信息::
root-user> kubectl get services --all-namespaces -o wide
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
default kubernetes ClusterIP 100.24.1.0 <none> 443/TCP 26d <none>
default registration-service ClusterIP None <none> 8080/TCP 18d app=registration-service
default app-framework ClusterIP None <none> 24366/TCP 25d app=app-framework
default stt LoadBalancer 100.56.9.26 a548cdb75447611e897960efe53682ba-1445165219.us-east-2.elb.amazonaws.com 8443:31327/TCP 3d app=stt
kube-system kube-dns ClusterIP 100.46.0.10 <none> 53/UDP,53/TCP 26d k8s-app=kube-dns
kube-system kubernetes-dashboard ClusterIP 100.96.205.42 <none> 443/TCP 26d k8s-app=kubernetes-dashboard
【问题讨论】:
-
服务 A 和 B 是否在同一个命名空间中?
-
另外,由于您显然是在尝试查找 pod DNS(您应该真正连接到服务提供的 VIP 的位置),您是否考虑了正确的语法?有关详细信息,请参阅kubernetes.io/docs/concepts/services-networking/dns-pod-service/…。顺便说一句,一个具体的例子而不是你在此处提供的抽象例子更容易帮助你。
-
是的,这两个服务都在同一个命名空间“默认”中。
标签: dns kubernetes load-balancing kubernetes-pod