kubernetes 如何更改configmap数据的用户?

idfiyjo8  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(2)|浏览(153)

我创建的映像运行与非根用户,但当我使用configmap的卷,文件来与卷是根用户。我想更改用户,但我不知道如何更改用户。
我从谷歌和stackoverflow搜索,但我找不到任何关于它。

volumeMounts:
      - name: test
        mountPath: /opt/KOBIL/SSMS/home/configutil
  volumes:
    - name: test
      configMap:
        name: slaveconfig



Actual:
lrwxrwxrwx. 1 root root 17 May 21 12:53 config.xml -> ..data/config.xml
lrwxrwxrwx. 1 root root 18 May 21 12:53 modules.xml -> ..data/modules.xml

Expected:
lrwxrwxrwx. 1 xxuser xxuser 17 May 21 12:53 config.xml -> ..data/config.xml
lrwxrwxrwx. 1 xxuser xxuser 18 May 21 12:53 modules.xml -> ..data/modules.xml

字符串

57hvy0tb

57hvy0tb1#

这是Kubernetes部署/statefulsets面临的挑战之一,当你必须以非root用户的身份在容器内运行进程时。但是,当您将卷挂载到pod时,它总是使用root:root的权限挂载。因此,非root用户必须有权访问要读写数据的文件夹。
请按照以下步骤进行相同操作。
在Dockerfile中创建用户组并分配groudID。使用userid创建用户并添加到Dockerfile中的组。递归地改变用户进程想要读/写的文件夹的所有权。在pod spec上下文中的deployment/Statefulset中添加以下行。

spec: 
  securityContext: 
    runAsUser: 1099 
    runAsGroup: 1099 
    fsGroup: 1099

字符串
runAsUser:指定Pod中的所有容器,所有进程都以用户ID 1099运行
runAsGroup:为Pod中任意容器内的所有进程指定主组ID为1099。(如果省略此字段,则容器的主组ID为root(0),当指定runAsGroup时,创建的任何文件也将归用户1099和组1099所有)
fsGroup:指定任何附加卷的所有者将是GroupId 1099的所有者,并且在其下创建的任何文件将具有nonrootgroup:nonrootgroup的权限。

bkhjykvo

bkhjykvo2#

为了防止在root用户下创建configMap指定的文件(无论容器用户ID如何,使用securityContext.runAsUser指定,configMap在创建文件时忽略并默认为root用户),您可以使用configMap.defaultMode将运行时配置文件的默认权限设置更改为a+rwx(0777):

volumeMounts:
        - name: test
          mountPath: /data/config.xml
          subPath: config.xml
      - name: test
        configMap:
          name: test
          defaultMode: 0777

字符串

  • 更多信息 *

不幸的是,ConfigMaps上的k8s文档忽略了这个关键的细节,从这篇Github帖子中可以看出,这个设置必须从Secrets转移过来(参见文档)。
该文件仍将由root用户创建(securityContext.runAsUser仍将被忽略),但所有用户的权限将更改为rwx,例如jupyter_notebook_config.py文件的OpenEBS Hostpath(其中Jupyter Notebook需要具有写入权限):

drwxrwsrwx 7    0 100 4096 Jul  3 20:49 ..
drwxrwsr-x 3    0 100 4096 Jul  3 20:08 .
-rw-r--r-- 1 1000 100  360 Jul  3 20:08 jupyter_nbconvert_config.json
drwxr-sr-x 2 1000 100 4096 Jul  3 20:08 nbconfig
-rw-r--r-- 1 1000 100  109 Jul  3 20:08 jupyter_notebook_config.json
-rwxrwxrwx 1    0 100   35 Jul  3 20:08 jupyter_notebook_config.py

相关问题