如何正确使用 Kubernetes 进行作业调度?

How to properly use Kubernetes for job scheduling?

我想到了以下系统:轮询任务列表以查看是否应启动它们的主程序(基于某些触发信息)。任务本身是某个存储库中的容器映像。任务在 Kubernetes 集群上作为作业执行,以确保它们 运行 完成。主程序是在 pod 中执行的容器,由复制控制器 运行 无限期保存。

但是,我还没有偶然发现这种从 pod 启动作业的模式。每个教程似乎都假设我只是从集群外部调用 kubectl。我当然可以这样做,但是我必须通过其他系统来确保主程序的可用性和可靠性。那我错过了什么吗?在我看来,从无限期 运行 pod 中启动一次性作业是 Kubernetes 的一个完全有效的用例。

您的主程序可以利用 Kubernetes 客户端库在集群上执行操作。查找完整示例 here.