要求: 我有两个docker容器,它们都暴露于不同的端口。 (例如9001和9002端口)
根据需求,我尝试设计kubernetes对象及其关系,但是我不确定A或B是否正确。
A)1个Ingres连接到1个服务。并且1个服务通过2个容器的1个容器连接到1个有状态集
B)2个Ingres连接到2个服务。并且2个服务通过2个pod连接到2个statefulset。每个吊舱都有1个容器。
我想问以下问题:
答案 0 :(得分:1)
您可以在同一个Pod上运行两个容器, Java可以在端口8080上运行 而且Eheterum可以在端口3306上运行。
然后,您可以在容器内使用localhost:8080到达Java,而Java可以到达localhost:3306上的以太坊。
如果不需要从群集外部进行访问,则不需要进入。
希望它能回答您的问题。
答案 1 :(得分:1)
据我了解,您只需要一个有状态的应用程序,另一个就可以是无状态的,并在第一个应用程序中保留数据。如果您遵循microsservices范例,则应将应用程序分为无状态和有状态服务。
同样重要的是要注意,除非两个容器紧密连接,否则它们不应位于同一吊舱中。这些分隔可提供更灵活的可伸缩性,因为您不需要两个容器都具有相同数量的副本。
最后,我将执行以下操作:
该入口将允许从集群外部的请求到您的应用服务的路由。即使您的状态为全状态的应用程序不与外界通信,为他创建服务也将使群集内的应用程序之间的通信更加轻松(您可以使用固定IP或even DNS)
答案 2 :(得分:1)
1个入口可以服务n个服务,并根据host和hostPath将外部连接路由到服务。
1服务可以服务多个端口,并且为每个端口分配不同的节点端口映射。
1个Pod可以同时为多个端口服务,这取决于您在清单中公开的端口。
状态集更像豆荚表明的那样,只是它们提供了持久化卷的附加功能。