如果我有2个吊舱,有没有一种方法让他们彼此交谈,而无需创建和使用任何其他资源?
对于这两种情况,问题都存在-无论它们是在相同的名称空间还是在不同的名称空间。
答案 0 :(得分:2)
是的,他们可以!
假设您没有任何限制通话的网络策略,只需知道其DNS名称即可,这是它的工作原理:
上述情况假设您没有在Pod中既未设置主机名又未设置子域,并且正在使用默认配置。
在更高级的方案中,您还将使用群集dns后缀来调用这些服务。以下文档详细介绍了所有内容 https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/
答案 1 :(得分:1)
对于您的问题,我会回答……与ShreePrakash给您提供的服务类似,有多个问题要讲,同样的问题也可以应用于吊舱。
以下是有关的另一个问题:2 Kubernetes pod communicating without knowing the exposed address
这回答了您的问题,因为您应该可以对PODNAME.PODNAMESPACE:PORT
进行同样的操作,并且应该可以使用。
现在为什么不做呢?仅仅是因为pod在创建时在名称中添加了一个随机ID(类似:nginx-ingress-1234456),如果崩溃并重新创建,其名称就不会相同。这适用于无状态应用程序,您可以仅使用一个Pod来推断处于有状态状态的Pod的名称...
这就是为什么使用服务使Pod定位更容易的原因,因为它们的名称就是您在创建时声明的名称。
希望这会有所帮助。