我想知道是否有从POD执行任务的选项?因此,当我拥有POD时,例如,侦听某些请求并根据请求将任务委派给其他POD(工作人员POD)。当没有要执行的工作,并且如果有多个工作要执行时,该工作人员POD将无法运行。作业完成后,“工作人员POD”将停止。因此,工作人员POD在一项任务中处于活动状态,然后被杀死,并且在新任务到达时启动新的工作人员POD。我希望我能正确地描述它。您知道在Kubernetes中这是否可行吗?可以通过例如从主POD进行休息呼叫来启动工作人员POD。
答案 0 :(得分:0)
有几种方法可以实现这种行为。
此解决方案需要ServiceAccount
配置。请掠夺Kubernetes文档Configure Service Accounts for Pods。
您的应用程序service/pod
可以处理不同的自定义任务。最佳做法是将特定的serviceaccount
应用于您的广告连播,以执行特定的任务。在kubernetes
中,结合使用service account
和预定义/指定的RBAC规则,您几乎可以立即解决此任务。
主要概念是通过赋予不同的权限(RBAC
,service account
,get
,{{1 }})分配给不同的list
资源,例如(watch
,create
)。
在这种情况下,工作Pod正在等待传入请求,在收到特定请求后,它可以针对kubernetes api执行特定任务。
这可以扩展,即通过在工作窗格中使用Kubernetes
。有关pod
的更多详细信息,可以在this article中找到。
另一种实现目标的方法是使用jobs
。
Extending the Kubernetes Controller文章中提供的示例显示了sidecar container
如何监视kubernetes api以便检测底层的工作容器(监视kubernetes配置是否有任何更改,然后删除相应的容器)。在您的设置中,这样的控制器可以监视您的api是否收到sidecar concept
请求,并执行其他任务,例如在k8s集群中创建kubernetes job。
Custom Controller
。