我是 K8S 的新手。我有一个 yaml 文件,它生成安装在投影卷上的 kubernetes secret 。执行后,我发现 secret 文件(与 secret 一起打包)将“root”显示为文件所有者和组所有者。我想将文件所有者和组所有者更改为同一特定用户(比如 450)。
我曾尝试使用 init 容器中的“chown”(尝试过但失败),但出现“只读文件系统”错误并且无法修改文件和组所有者。
我不想在安全上下文下使用“fsGroup”。我观察到,当使用 fsGroup 时,“items”下的“mode:”选项以不可预测的方式运行。
有没有办法修改通过投影卷挂载的 kubernetes secret 文件的默认文件和组所有者?
我提供了下面的示例代码。假设我想在下面的示例中更改“密码”文件(在“mysecret2”下)的文件和组所有者。如何实现呢?
apiVersion: v1
kind: Pod
metadata:
name: volume-test
spec:
containers:
- name: container-test
image: busybox
volumeMounts:
- name: all-in-one
mountPath: "/projected-volume"
readOnly: true
volumes:
- name: all-in-one
projected:
sources:
- secret:
name: mysecret
items:
- key: username
path: username
- secret:
name: mysecret2
items:
- key: password
path: password
mode: 511
最佳答案
据我所知,无法更改 secret 的所有者 UID。
解决方法是将 secret 复制到普通文件,然后更改其所有权和模式,如下所示:
apiVersion: v1
kind: Pod
metadata:
name: volume-test
spec:
containers:
- name: container-test
image: busybox
command: |
- "/bin/bash"
- "-exc"
cp /etc/secrets-mount/*_pgpass /etc/secrets
chown my-user /etc/*_pgpass
chmod 600 /etc/*_pgpass
exec su-exec my-user /entrypoint.sh
volumeMounts:
- name: secrets
mountPath: /etc/secrets-mount/
....
关于kubernetes - 更改安装在投影卷上的 kubernetes secret 文件的默认文件所有者和组所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49945437/