【问题标题】:Unable to install Jenkins on Minikube using Helm due to the permission on mac由于 Mac 上的许可,无法使用 Helm 在 Minikube 上安装 Jenkins
【发布时间】:2021-04-23 00:40:35
【问题描述】:

我`vw 尝试根据这篇文章在 minikube 上安装 jenkins https://www.jenkins.io/doc/book/installing/kubernetes/

当我输入kubectl logs pod/jenkins-0 init -n jenkins 我明白了

disable Setup Wizard
/var/jenkins_config/apply_config.sh: 4: /var/jenkins_config/apply_config.sh: cannot create /var/jenkins_home/jenkins.install.UpgradeWizard.state: Permission denied

我几乎可以肯定我在 mac 上的文件系统有一些问题。

我没有从文章中创建 serviceAccount,因为 helm 没有看到它并返回错误。

我在 jenkins-values.yaml 中进行了更改

serviceAccount:
  create: true
  name: jenkins
  annotations: {}

然后我尝试将下一个值设置为 0。它没有影响。

  runAsUser: 1000
  fsGroup: 1000

添加信息: kubectl get all -n jenkins

NAME            READY   STATUS                  RESTARTS   AGE
pod/jenkins-0   0/2     Init:CrashLoopBackOff   7          15m

NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)     AGE
service/jenkins         ClusterIP   10.104.114.29    <none>        8080/TCP    15m
service/jenkins-agent   ClusterIP   10.104.207.201   <none>        50000/TCP   15m

NAME                       READY   AGE
statefulset.apps/jenkins   0/1     15m

还尝试为volume live /Volumes/data使用不同的目录并为其添加777权限。

【问题讨论】:

  • 您好,我使用了文档中提到的设置,一切正常。您能详细介绍一下您的设置吗?特别是您能否包括文档中引用的jenkins-volume.yaml?你在那里改变了什么?另外,您将哪个--driver 与您的minikube 一起使用?
  • 是的,我正在使用 minikube。最后我从文档中只有一个更改 serviceAccount: create: true # 服务帐户的名称是默认自动生成的 name: jenkins annotations: {} 正如我提到的,通过从文档设置服务帐户,statefulset 无法看到它.
  • 我很难理解您的评论。你能告诉我你是否真的修复了你的设置并且它工作正常吗?另外,关于 MacOS 上 minikube 中使用的不同 --drivers,请使用 look on this documentation。
  • 没有解决。我只是在没有持久音量的情况下使用它。我想为 helm 重新制作图表。

标签: jenkins kubernetes kubernetes-helm minikube


【解决方案1】:

这里有几个潜力,但有一个解决方案无需切换到runAsUser 0(这会破坏安全评估)。

/data/jenkins-volume 文件夹默认以 root 身份创建,权限设置为 755,因此您无法使用默认的 jenkins 构建在此目录中创建持久数据。

  • 要解决此问题,请使用$ minikube ssh 输入 minikube 并运行:$ chown 1000:1000 /data/jenkins-volume

当您在基于 RHEL 的操作系统上运行 Kubernetes 时,可能会困扰您的另一件事(在修复文件夹权限之后)是 SELinux 策略。

  • 要解决这个问题:$ chcon -R -t svirt_sandbox_file_t /data/jenkins-volume

【讨论】:

  • 如果您使用的是 minikube,请务必在应用权限之前输入 minikube 上下文,先运行$ minikube ssh!
【解决方案2】:

解决了

我只是在所有地方都将 runAsUser 设置为 0。

【讨论】:

    【解决方案3】:

    runAsUser 到 0 到处都有效,但由于潜在的安全问题,这不是理想的解决方案。适合开发环境,但不适用于产品。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-24
      • 2020-01-29
      • 2017-02-25
      • 2023-03-25
      • 2021-05-05
      • 2020-02-28
      • 2018-09-10
      • 2021-07-23
      相关资源
      最近更新 更多