我不确定这是不是一个愚蠢的问题。当同一个应用程序/服务在多个容器中运行时,它们如何向zookeeper/etcd报告自己并识别自己?因此负载均衡器知道不同的实例,并知道要与谁交谈,在哪里探测和分派,等等?或者服务实例将在其标识中使用容器中的某个id?
提前感谢
发布于 2021-06-18 19:37:10
首先,让我用几句话来解释how it works
基本构建块从Pod开始,它只是一个可以按需创建和销毁的资源。由于Pod可以移动或重新调度到另一个节点,因此分配给该Pod的任何内部IP都可能随时间而改变。如果我们要连接到这个Pod来访问我们的应用程序,它在下一次重新部署时将不起作用。要使Pod 能够在不依赖任何内部IP的情况下访问外部网络或群集的,我们需要另一个抽象层。K8s通过我们所说的服务部署提供了这种抽象。
通过这种方式,您可以创建一个将由负载均衡器识别的网站。
服务为跨群集统一工作的Pod提供网络连接。服务发现是确定如何连接到服务的实际过程。
您还可以找到有关服务in the official documentation的一些信息
是一种将运行在一组Pods上的应用程序作为网络服务进行公开的抽象方法。使用Kubernetes,您无需修改应用程序即可使用不熟悉的服务发现机制。Kubernetes为Pod提供自己的IP地址和一组Pod的单个DNS名称,并且可以在它们之间进行负载均衡。
https://stackoverflow.com/questions/68030198
复制相似问题