如何更改kubernetes映射卷的许可/泊坞
问题描述:
我刚创建的图像使用泊坞窗文件和改变我只是用用户:如何更改kubernetes映射卷的许可/泊坞
USER myuser
我们正在使用一个目录来存储数据,我们改变目录权限使用:
chown -R myuser:myuser /data-dir
此Docker文件用于etcd,我们希望/ data-dir使用etcd来存储数据。现在,我们使用kubernetes yml文件将/ data-dir映射到efs卷。
随着下面的代码:
volumeMounts:
- name: etcdefs
mountPath: /data-dir
volumes:
- name: etcdefs
persistentVolumeClaim:
claimName: efs-etcd
在此之后,我想到,这映射目录/ data-dir来应该有权限为myuser的:myuser的,但它使目录根:根
灿有人建议我在这里做错了吗?
答
这是因为码头工人。它仅以root权限安装卷,您可以使用chmod
进行更改,但只能在容器启动后进行更改。
您可以在这里阅读更多关于https://github.com/moby/moby/issues/2259 这个问题在这里很长一段时间。
您可以在kubernetes中执行的操作是使用fsGroup
和force该卷可通过指定的GID进行写入。这是工作的解决方案,并记录在案。这里更多信息https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
下面是一个例子部署:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: alpine
spec:
replicas: 1
template:
metadata:
labels:
app: alpine
spec:
securityContext:
fsGroup: 1000
containers:
- name: alpine
image: alpine
volumeMounts:
- mountPath: /var/alpine
name: alpine
volumes:
- name: alpine
awsElasticBlockStore:
volumeID: vol-1234567890
fsType: ext4
嘿,你能不能给我举例如何编写利用kubernetes与fsGroup。在我的例子给出以上 –
@SaganPariyar我修改了我的答案,现在它有例子部署使用'fsGroup' – 3h4x
嘿,谢谢你的答案,其实错误是别的。之前我们使用root用root创建docker镜像,并使用root用它映射创建的目录,下次我使用myuser作为映射卷时,已经拥有使用root用户创建的目录,所以它提供了权限问题。我只是删除目录,并用myuser重新创建它,它工作正常。 –