考虑到安全性,我不希望在Job
和CronJob
资源上允许使用create
动词,因为这将允许有人创建pod(使用任何图像)并暴露敏感信息。但我还希望允许触发集群上已经创建的作业。
有没有一种方法可以允许在Kubernetes集群中触发Jobs
和CronJobs
,而无需在Role
或ClusterRole
RBAC定义中分配create
动词?
如果没有,是否有方法在群集上已存在Job
或CronJob
时仅允许create
?
我简单地尝试了下面的RBAC定义,并能够创建任何我想要的pod(危险的)。
apiGroups:
- batch
resources:
- cronjobs
- jobs
verbs:
- get
- create
字符串
1条答案
按热度按时间vmjh9lq91#
1.你不能“触发”一份工作。作业处于挂起(等待运行)、正在运行或已完成状态。如果已完成,则不能重新运行;只能删除并重新创建它。
1.手动运行CronJob的唯一方法是...使用它作为模板创建Job(
kubectl create job --from=cronjob ...
)。因此,在这两种情况下,您都需要
create
aJob
的能力。最后:
1.您不能“允许在作业或CronJob已经存在时创建”,因为在这种情况下,资源已经被创建。没有什么可创造的。