Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用root用户在kubernetes吊舱中装载时权限被拒绝_Kubernetes - Fatal编程技术网

使用root用户在kubernetes吊舱中装载时权限被拒绝

使用root用户在kubernetes吊舱中装载时权限被拒绝,kubernetes,Kubernetes,当我在kubernetes v1.18 jenkins的master pod中使用此命令装载nfs文件系统时: root@jenkins-67fff76bb6-q77xf:/# mount -t nfs -o v4 192.168.31.2:/infrastructure/jenkins-share-workspaces /opt/jenkins mount: permission denied root@jenkins-67fff76bb6-q77xf:/# 为什么在我使用root用户时显

当我在kubernetes v1.18 jenkins的master pod中使用此命令装载nfs文件系统时:

root@jenkins-67fff76bb6-q77xf:/# mount -t nfs -o v4 192.168.31.2:/infrastructure/jenkins-share-workspaces /opt/jenkins
mount: permission denied
root@jenkins-67fff76bb6-q77xf:/# 
为什么在我使用root用户时显示权限被拒绝?当我在另一台机器(不是docker)中使用此命令时,它工作正常,表明服务器端工作正常。这是我在yaml中的kubernetes jenkins主吊舱安全文本配置:

securityContext:
        runAsUser: 0
        fsGroup: 0
今天我尝试了另一个kubernetes pod和mount nfs文件系统,并抛出了相同的错误。似乎从主机装载NFS工作正常,而从kubernetes吊舱装载NFS有一个Persion问题。为什么会发生这种情况?NFS在这个kubernetes吊舱中通过PVC绑定PV工作良好,为什么它从docker装载失败?我很困惑。

尝试使用

securityContext:
  privileged: true
如果您正在使用dind for jenkins,则需要使用此选项

securityContext:
  privileged: true

如果您正在使用dind for jenkins,则需要这样做。有两种方法可以将nfs卷装载到pod

首先(直接在pod规范中):

第二(创建persistens nfs卷和卷声明):

编辑:

上面的解决方案是首选方案,但如果您确实需要使用容器中的mount,则需要向pod添加功能:

spec:
  containers:
  - securityContext:
      capabilities:
        add: ["SYS_ADMIN"]

有两种方法可以将nfs卷装载到pod

首先(直接在pod规范中):

第二(创建persistens nfs卷和卷声明):

编辑:

上面的解决方案是首选方案,但如果您确实需要使用容器中的mount,则需要向pod添加功能:

spec:
  containers:
  - securityContext:
      capabilities:
        add: ["SYS_ADMIN"]

我不知道为什么,但我添加此配置失败。似乎kubernetes自动删除此
privileged:true
键值配置。@Dashrath MundkarI不知道为什么,但我添加此配置失败。似乎kubernetes自动删除此
privileged:true
键值配置。@Dashrath MundkarIt最好将其设置为库伯内特斯卷。如果pod重新启动或移动到另一个节点,您将丢失在该shell中手动进行的任何更改。通常情况下,容器进程不允许执行诸如mount(8)之类的管理任务,即使它们是以root身份运行的。我想使用nfs挂载来归档这个,但是当我配置nfs卷时,kuberntes-jenkins从机会一次又一次地重新启动。我尝试使用pvc或nfs配置kubernetes从站,但今天都失败了。@davidmazet最好将其设置为kubernetes卷。如果pod重新启动或移动到另一个节点,您将丢失在该shell中手动进行的任何更改。通常情况下,容器进程不允许执行诸如mount(8)之类的管理任务,即使它们是以root身份运行的。我想使用nfs挂载来归档这个,但是当我配置nfs卷时,kuberntes-jenkins从机会一次又一次地重新启动。我试图用pvc或nfs配置kubernetes的奴隶吊舱,但今天都失败了。@Davidmaze我想你可能不理解我的问题点,你的回答是对的,但没有回答我的问题。@HelloWorld我将配置添加到pod yaml中,但它是由kubernetes自动移动的,我不知道为什么会这样happen@HelloWorldI你可能不理解我的问题点,你的回答是对的,但没有回答我的问题。@HelloWorld我将配置添加到pod yaml中,但它是由kubernetes自动移动的,我不知道为什么会这样happen@HelloWorld