Kubernetes吊舱间通信
我有2个部署—A(1个副本)和B(4个副本) 我在POD A中安排了作业,成功完成后,它通过部署B的服务到达部署B中一个POD中存在的端点 是否有一种方法可以在作业成功完成时命中部署B中4个POD的所有端点Kubernetes吊舱间通信,kubernetes,kubernetes-pod,kubernetes-service,Kubernetes,Kubernetes Pod,Kubernetes Service,我有2个部署—A(1个副本)和B(4个副本) 我在POD A中安排了作业,成功完成后,它通过部署B的服务到达部署B中一个POD中存在的端点 是否有一种方法可以在作业成功完成时命中部署B中4个POD的所有端点 理想情况下,通知一个pod!!但是这是可能的,因为我不想为此使用pub-sub。Kubernetes服务是提供服务发现和负载平衡的抽象。所以,如果您正在使用服务,您的请求将被发送到一个后端pod 为了实现您想要的,我建议您创建4个不同的服务,每个服务只有一个后端pod,或者在服务a和服务B之
理想情况下,通知一个pod!!但是这是可能的,因为我不想为此使用pub-sub。Kubernetes服务是提供服务发现和负载平衡的抽象。所以,如果您正在使用服务,您的请求将被发送到一个后端pod 为了实现您想要的,我建议您创建4个不同的服务,每个服务只有一个后端pod,或者在服务a和服务B之间使用消息队列,如rabbitmq。您可以使用。这样Kubernetes就不会分配单独的IP地址,而是用所有POD的IP地址设置DNS记录。然后在应用程序中,只需解析记录并向所有端点发送通知。但实际上,这是pub-sub或服务发现系统的理想用例。DNS对此太不可靠了 是否有一种方法可以在作业成功完成时命中部署B中4个POD的所有端点 但这是可能的,因为我不想用酒吧酒吧酒吧来做这件事 正如你所说的,酒吧间的解决方案最适合解决这个问题。但你不想用它 为服务B使用稳定的网络标识 若要在没有发布订阅的情况下解决此问题,您需要为部署B中的POD提供稳定的网络标识。若要获得此标识,您需要为服务B更改为a statefulset对于需要以下一项或多项的应用程序很有价值
- 稳定、唯一的网络标识符
因此,是的,在请求-应答方式中,这是一个更为复杂的问题。PUB-SUB是这里的最佳选择。我有类似的用例,我正在使用pub-sub,它已经在过去6个月的生产中。问题是部署B可以有不同的pod..2,4,6。。因此,没有酒吧/酒吧,就没有其他方式了!!!!打字错误:ranbbitmq->rabbitmq@ArghyaSadhu这正是为什么我说“DNS对此来说太不可靠了”。如果没有酒吧酒吧或一些外部发现系统,这几乎是唯一的方法。@ArpanSharma你是对的。这是可能的,但酒吧间酒吧是解决这个问题的一个更好的办法。我认为这可以归结为关注点的分离,在这里发布活动更容易。B中的每个pod负责订阅。在请求-应答解决方案中,作业或代理负责监视服务B中存在哪些POD(除非是固定数量的POD),此外,它需要向所有人发送请求,如果任何请求失败(在部署时会发生),它负责重试对这些POD的请求。因此,是的,在请求-应答方式中,这是一个更复杂的问题。Pub-Sub是松散耦合的。您能详细描述一下用例吗?由于所有4个实例都是相同的,如果其中任何一个为调用服务,会有什么问题,为什么所有4个实例都应该同时进入图片?他们中只有一个应该为这个电话服务!!