kubernetes - 使用 OpenShift 进行卷挂载的写入权限
问题描述
使用 OpenShift 3.11,我安装了一个 nfs 持久卷,但应用程序无法复制到新卷中,说:
oc logs my-project-77858bc694-6kbm6
cp: cannot create regular file '/config/dbdata/resdb.lock.db': Permission denied
...
我试图通过在 InitContainers 中执行 chown 来更改文件夹的所有权,但它告诉我该操作不允许。
initContainers:
- name: chowner
image: alpine:latest
command: ["/bin/sh", "-c"]
args:
- ls -alt /config/dbdata; chown 1001:1001 /config/dbdata;
volumeMounts:
- name: my-volume
mountPath: /config/dbdata/
oc logs my-project-77858bc694-6kbm6 -c chowner
total 12
drwxr-xr-x 3 root root 4096 Nov 7 03:06 ..
drwxr-xr-x 2 99 99 4096 Nov 7 02:26 .
chown: /config/dbdata: Operation not permitted
我希望能够写入已安装的卷。
解决方案
fsGroup: GROUP_ID
您可以通过在安全上下文中使用来授予 Pod 写入卷的权限。fsGroup
使您的卷可按 GROUP_ID 写入,并使容器内的所有进程成为该组的一部分。
例如:
apiVersion: v1
kind: Pod
metadata:
name: POD_NAME
spec:
securityContext:
fsGroup: GROUP_ID
...
推荐阅读
- sql - 两个表中的数据之间的差异
- ruby-on-rails - ActiveRecord 包括不包括所有父记录?
- java - 多个线程从 ConcurrentLinkedQueue 读取,并进入 DB。并非所有条目都在写入
- javascript - 使用 Select2 和其他表单控制元素或 input-group-btn 响应式修复输入组
- javascript - 函数和变量提升的意外结果
- maven - Travis CI 没有为 Maven Surefire 插件链接库
- c# - 在 DataGridView 控件中展开/折叠行
- c# - C# 为标签获取良好的颜色
- c++ - 从头文件传递 cpp 选项
- javascript - 标签中的双重事件