【问题标题】:Run cron as background process in Kubernetes pod running as non root user在以非 root 用户身份运行的 Kubernetes pod 中将 cron 作为后台进程运行
【发布时间】:2022-01-21 05:00:28
【问题描述】:

我有一个现有的 kubernetes 部署,它用于数据处理。我们以非 root 用户身份运行它(出于安全原因,我们组强制要求这样做)。

现在,我们有一个新要求,我们希望在后台运行 cron 作业,我知道我们不应该在单个 pod 中使用多个进程,但这是我们需要快速发布的东西,我们不这样做'没有足够的时间和资源来重新构建事物。 我在我的 docker 映像中安装了 cron,我的麻烦在于启动这个 cron 进程,在启动 pod 后我无法启动它,因为我的用户没有启动服务的 root 权限。我尝试了几种方法将其添加到启动进程列表中,例如update-rc.d cron defaults,但到目前为止没有任何效果。 如果有办法让它工作,请指导我。

我们使用的是 ubuntu-minimal 20 基础镜像。

【问题讨论】:

    标签: ubuntu kubernetes cron ubuntu-20.04


    【解决方案1】:

    您可以针对给定用户运行特定的 cron。您是否尝试过将您的用户登录名添加到:/etc/cron.allow?在此评论中有描述:https://stackoverflow.com/a/53524203/12508141

    cron.allow机制有更详细的说明:https://docs.oracle.com/cd/E19253-01/817-0403/sysrescron-23/index.html

    【讨论】:

    • 是的,我尝试过类似的方法,但得到了crontabs/nonrootuser/: fdopen: Permission denied,让我在将我的用户添加到cron.allow 后尝试
    • 我在 cron.allow 中添加了我的用户,但仍然出现同样的错误当我尝试启动我自己的 cron 时,它会抛出 cron: can't open or create /var/run/crond.pid: Permission denied
    • 尝试在 cron 上设置 SUID 位
    猜你喜欢
    • 2020-07-14
    • 1970-01-01
    • 2021-06-22
    • 2013-08-10
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    相关资源
    最近更新 更多