k8s fsgroup

发布时间 2023-12-02 10:28:02作者: 半山随笔

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这个系统调用来完成的。