【问题标题】:Jenkins-slave "Cannot write to volume error" on kuberneteskubernetes上的Jenkins-slave“无法写入卷错误”
【发布时间】:2018-03-13 07:22:41
【问题描述】:

我正在通过 helm 在 kubernetes 上设置我的 jenkins 来运行我的 java 部署,

这会为每个构建生成新的 pod -> 足够公平

然后我发现我需要存储一些将被其他构建使用的 maven jar,

所以我想出了 NFS 安装并通过 jenkins configure(Web 控制台)将它安装到 /home/jenkins/.m2

然后我继续得到

error org.apache.maven.repository.LocalRepositoryNotAccessibleException: Could not create local repository at /home/jenkins/.m2/repository

我什至尝试过

securityContext: runAsUser: 1000 fsGroup: 1000 在 deployment.yaml 中

我尝试添加

USER root RUN chown -R root /home/jenkins

在从容器中

它只是没有 .m2 ,slave 无法在这个 pvc 上写任何东西。

在这一点上,我很困惑问题可能出在哪里。 有人可以帮忙吗?

【问题讨论】:

  • 你是不是 jenkins slave 上的空间用完了?
  • @herm 不,这是一个错误,表示无法写入已安装的卷,但同样可以从 master 写入
  • 你在slave上安装nfs-commons了吗?你能从 docker 外部挂载 nfs 并访问文件吗?
  • 您是如何共享您的 nfs 文件系统的?默认情况下,nfs 客户端安装为nobody 用户。首先您需要验证 nfs 共享选项。

标签: jenkins kubernetes kubernetes-helm


【解决方案1】:

我有类似的问题。我是这样解决的:

  • 制作自己的 jnlp 镜像,修改,安装 maven
  • 我通过 maven 配置将 m2 从 jenkins 主目录移到 /opt/m2
  • 创建了永久性磁盘,并与它绑定了 pv 和 pvc 并安装在 pod 内的 /opt/m2 上
  • 最后,我在 Dockerfile 中为 jnlp 设置了用户运行映像为 ROOT,因为 kubernetes 上的每个挂载都以 root 身份挂载。不是很优雅但可行的解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-24
    • 2020-07-30
    • 1970-01-01
    • 2023-03-11
    • 2022-12-05
    • 2021-04-26
    • 1970-01-01
    • 2020-08-18
    相关资源
    最近更新 更多