我有两个码头图片Mosquitto & user-info。userInfo是一个容器,它执行一些逻辑,然后将结果发送到mosquitto。摩斯基托然后使用这些信息将其发送到IOT集线器。在user-info内部,我已经提到使用hostname=mosquitto,所以user-info将所有数据发送给蚊子
首先,我用这两个容器创建了一个吊舱。所以我用kind: Pod写了一个yaml文件,一切都很顺利。由于这些容器位于同一个容器中,所以它们可以轻松地相互通信,因此user-info能够向mosquitto发送数据。
现在,我不想创建豆荚,我想使用kind: Deployment,但是我想知道在部署中不可能创建多个荚。因此,如果我为mosquitto-deployment.yaml & user-info-deployment.yaml创建两个部署文件,它们都将创建两个不同的荚。那我怎么才能让这些吊舱沟通呢?
我读过关于服务的文章,我们可以使用服务进行交流,但我在服务方面遇到了困难。如果我为蚊子创建服务,我是否需要为user-info创建服务,或者它可以直接与蚊子服务沟通。另外,是否不可能使用单个deployment.yaml文件来创建所有的deployment.yaml文件,而不是使用2-3个deployment.yaml文件。
发布于 2018-03-07 08:34:58
在不同的部署中拥有两个不同的软件是有意义的。只要用---分隔符行分隔它们,就可以将它们都放在单独的yaml文件中,但这与为每个分隔符都有单独的文件是本质上相同的。
您需要为一组豆荚(0-N)提供服务,您的集群(或外部的NodePort和LB svc)需要连接到该服务,因此在您的情况下,您只需要为Mosquitto提供svc服务,除非其他东西也会与用户信息对话。
您可以将服务看作是坐在选定的一组吊舱前的负载平衡器。
发布于 2018-03-07 08:31:07
引用“与库伯奈特一起运行”一书的话会给你一个提示;
一般来说,在设计Pods时,需要问自己的正确问题是:“如果这些容器降落在不同的机器上,它们会正常工作吗?”如果答案是“否”,则Pod是容器的正确分组。如果答案是“是”,那么多个Pods可能是正确的解决方案。
据我所读到的关于您的项目,这两个容器将更适合于一个单荚-和这样他们可以通过本地主机通信。
一般来说,您将永远不需要一个k8清单与善良的吊舱,这只是为了实验目的。
对于一个典型的应用程序,您将需要一个部署和服务对象。
汤姆
https://stackoverflow.com/questions/49146940
复制相似问题