【问题标题】:Pass Security Context to Jenkins-Kubernetes Plugin将安全上下文传递给 Jenkins-Kubernetes 插件
【发布时间】:2018-07-10 01:38:01
【问题描述】:

我为 jenkins/jnlp 创建了一个 docker 映像,并在 kubernetes 集群中使用它来启动动态从站。有了这个,我可以检查我的代码并在动态从站上运行构建。

但是,当我在插件配置中提到卷(jenkins_home 即 /mycom/jenkins)作为 NAS 持久卷声明时,我观察到挂载路径权限正在更改为“nobody”而不是“jenkins”。这使我的 jenkins 构建失败,因为它无法在同一文件夹下创建工作区。

Kubernetes 文档指出,我们可以将 fsgroup 详细信息作为安全上下文的一部分传递,而安全上下文是 pod 定义的一部分。但我在 jenkins-kubernetes 插件中看不到该选项。有什么方法可以将“RunAsUser”或“fsgroup”详细信息从 jenkins 传递给 pod?

【问题讨论】:

标签: jenkins kubernetes jnlp


【解决方案1】:

我得到的解决方法是在 Kubernetes 主机的一个 pod 中授予对 JENKINS_HOME 的“777”访问权限。这也存在于所有其他创建的 pod 中。这样,每次我的容器以 jenkins user 运行时,它都能在 jenkins_home 目录中创建没有用户访问权限的工作区。

【讨论】:

    【解决方案2】:

    当您使用 helm chart 安装 jenkins 时,可以选择指定 RunAsUserFsGroup。您还可以指定您的PersistentVolumeClaim。在此处查看values.yaml - https://github.com/kubernetes/charts/tree/master/stable/jenkins

    【讨论】:

      猜你喜欢
      • 2014-06-02
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 2022-01-06
      • 2019-05-29
      • 2016-09-24
      • 1970-01-01
      相关资源
      最近更新 更多