在 kubernetes 部署中设置 securityContext
Setup securityContext inside kubernetes deployment
我在部署中使用了 nfs 挂载卷。
我需要像下面这样给它 fsGroup:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
有没有办法在部署清单上做到这一点?
正如我在文档中看到的那样,我只能在 pod yaml 中设置安全上下文。
您可以在 Deployment
中使用 securityContext
,就像在 Pod
中使用它一样。
就像已经建议的那样,将它放在 template.spec
下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-deployment
labels:
app: test
spec:
replicas: 3
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
securityContext:
runAsUser: 2000
runAsGroup: 3000
fsGroup: 2000
containers:
- name: test
image: busybox
ports:
- containerPort: 80
command: [ "sh", "-c", "sleep 1h" ]
你可以测试一下:
$ kubectl exec -it test-deployment-54d954d7f-2b582 sh
/ $ ps
PID USER TIME COMMAND
1 2000 0:00 sleep 1h
6 2000 0:00 sh
11 2000 0:00 ps
/ $ whoami
whoami: unknown uid 200
我在部署中使用了 nfs 挂载卷。 我需要像下面这样给它 fsGroup:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
有没有办法在部署清单上做到这一点? 正如我在文档中看到的那样,我只能在 pod yaml 中设置安全上下文。
您可以在 Deployment
中使用 securityContext
,就像在 Pod
中使用它一样。
就像已经建议的那样,将它放在 template.spec
下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-deployment
labels:
app: test
spec:
replicas: 3
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
securityContext:
runAsUser: 2000
runAsGroup: 3000
fsGroup: 2000
containers:
- name: test
image: busybox
ports:
- containerPort: 80
command: [ "sh", "-c", "sleep 1h" ]
你可以测试一下:
$ kubectl exec -it test-deployment-54d954d7f-2b582 sh
/ $ ps
PID USER TIME COMMAND
1 2000 0:00 sleep 1h
6 2000 0:00 sh
11 2000 0:00 ps
/ $ whoami
whoami: unknown uid 200