gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 07:23:05 31 4
gpt4 key购买 nike

我创建了使用非 root 用户运行的镜像,但是当我对卷使用 configmap 时,卷附带的文件是 root 用户。我想更改用户,但我不知道如何更改用户。

我通过 google 和 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

最佳答案

这是 Kubernetes 部署/状态集面临的挑战之一,当您必须以非根用户身份在容器内运行进程时。但是,当您将卷挂载到 pod 时,它总是在 root:root 的许可下挂载。因此,非 root 用户必须有权访问要读取和写入数据的文件夹。

请按照以下步骤进行操作。

在 Dockerfile 中创建用户组并分配 groudID。使用 userid 创建用户并添加到 Dockerfile 中的组。递归更改用户进程想要读/写的文件夹的所有权。在 pod 规范上下文中的 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 的权限。

关于kubernetes - 如何更改 configmap 数据的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56239932/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com