我正在尝试创建一个包含两个pod的Kubernetes作业,这两个pod必须在我们的Hybrid集群中的不同节点上进行调度 . 我们的要求是其中一个pod在Windows Server节点上运行而另一个pod在Linux节点上运行(因此我们不能只从同一个pod运行两个Docker容器,我知道这是可能的,但不能在我们的场景) . Linux pod(您可以将其视为客户端)将通过网络与Windows pod(您可以将其视为有状态服务器)进行通信,以便在作业运行时交换数据 . 当Linux pod终止时,我们还希望终止Windows pod . 但是,如果其中一个pod失败,那么我们希望两个pod都失败(因为它们被设计为单个作业)
我们当前的设计是编写一个K8S服务来处理pod之间的通信,然后将服务和两个pod应用到集群以“模拟”一项工作 . 然而,这并不理想,因为两个pod没有紧密耦合为单个作业,并且增加了相当多的开销来手动管理此设置(例如,当故障或作业时,我们可能需要手动终止服务和部署Windows pod) . 此外,我们需要为每个“作业”部署新服务,因为我们要求Linux pod在作业期间始终与同一Windows窗格进行通信,因为基础状态(因此不能对所有Windows窗格使用单个服务) ) .
任何关于如何在Kubernetes上取得最佳成绩的想法将不胜感激!希望本机支持这种情况,我不需要采用上面描述的这种pod-service-pod设置 .
非常感谢