我尝试按照这篇文章在minikube上安装jenkinshttps://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权限。
这里有几个潜力,但有一个解决方案不切换到runAsUser 0
(破坏安全评估)。
文件夹/data/jenkins-volume
是在默认情况下以root身份创建的,权限设置为755,所以你不能在这个目录下创建持久数据。
- 要解决这个问题,使用
$ minikube ssh
进入minikube并运行:$ chown 1000:1000 /data/jenkins-volume
当你在基于RHEL的操作系统上运行Kubernetes时,另一件可能会让你感到困扰的事情(在修复文件夹权限之后)是SELinux策略。
- 修改
$ chcon -R -t svirt_sandbox_file_t /data/jenkins-volume
已解析
我只是把runAsUser设置为0。
runAsUser to 0在任何地方都可以工作,但由于潜在的安全问题,这不是理想的解决方案。