k8s fsgroup
k8s的配置中又fsgroup这个概念,请看下面这个配置:
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
restartPolicy: Never
securityContext:
runAsUser: 1001
fsGroup: 999
containers:
- name: mounttest-container
image: ubuntu
volumeMounts:
- name: emptydir-volume
mountPath: /test-volume
volumes:
- name: emptydir-volume
emptyDir: {}
在这个配置中fsgroup会在两个地方起作用,一是容器进程会被加入999用户组,二是mount path的用户组为999.这样进程在mountpath下新建的文件都会加入999用户组。
如果用docker去模拟这个行为相当于在起容器时加上参数--group-add,这样容器进程就会加入该用户组。但是该行为只是模拟上述第一个行为。volume还需额外的操作。
添加用户组在底层是通过setgroup这个系统调用来完成的。