作者:黄雅萱介芳 | 来源:互联网 | 2022-12-02 18:30
我已经阅读了一些用Kubernetes编写的书以及文档中有关无头服务的页面的几段内容。但是我仍然不确定它的真正作用以及为什么有人会使用它。是否有人对它有很好的了解,它能完成什么以及为什么有人会使用它?
1> Konstantin V..:
好吧,我认为您需要一些理论。整个互联网上有很多解释(包括官方文档),但是我认为Marco Luksa做到了最好:
与该服务的每个连接都转发到一个随机选择的后备容器。但是,如果客户端需要连接到所有这些Pod,该怎么办?如果后备箱本身需要分别连接到所有其他后备箱,该怎么办。通过服务进行连接显然不是实现此目的的方法。什么是?
为了使客户端连接到所有Pod,它需要确定每个Pod的IP。一种选择是让客户端调用Kubernetes API服务器并通过API调用获取Pod列表及其IP地址,但是由于您应始终努力使应用与Kubernetes无关,因此使用API服务器并不理想
幸运的是,Kubernetes允许客户端通过DNS查找来发现Pod IP。通常,当您对服务执行DNS查找时,DNS服务器会返回一个IP(服务的群集IP)。但是,如果您告诉Kubernetes,您不需要服务的群集IP(通过在服务规范中将clusterIP字段设置为None来完成此操作),DNS服务器将返回容器IP,而不是单个服务IP。DNS服务器将返回该服务的多个A记录,而不是返回单个DNS A记录,每个记录都指向当时支持该服务的单个pod的IP。因此,客户端可以进行简单的DNS A记录查找,并获取服务中所有pod的IP。然后,客户端可以使用该信息来连接到一个,多个或全部。
将服务规范中的clusterIP字段设置为None会使该服务变得毫无头绪,因为Kubernetes不会为它分配一个群集IP,客户端可以通过该群集IP连接到支持它的Pod。
Marco Luksa的“ Kubernetes在行动”
我很乐意为您提供帮助,但我建议您购买这本书。毫无疑问,作者做得很好,应该受到鼓励。
感谢您链接这本书-非常感谢。我将看看是否可以在网上找到一份副本并阅读。答案很棒,但我真的很感激。