为容器设置安全上下文
Set the security context for a Container
要为容器指定安全设置,需要在容器清单中添加securityContext
字段。
securityContext
字段是一个securityContext 对象
为容器指定的安全设置仅应用于单个容器,当存在重叠时,它们将覆盖在Pod
级别进行的设置。容器设置不影响Pod
的卷。
下面是具有一个容器的Pod
的配置文件。Pod
和容器都有一个securityContext
字段:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo-2
spec:
securityContext:
runAsUser: 1000
containers:
- name: sec-ctx-demo-2
image: gcr.io/google-samples/node-hello:1.0
securityContext:
runAsUser: 2000
allowPrivilegeEscalation: false
创建这个Pod
:
kubectl apply -f https://k8s.io/examples/pods/security/security-context-2.yaml
验证Pod
的容器正在运行:
$ kubectl get pod security-context-demo-2
在运行的容器中获取一个shell
:
$ kubectl exec -it security-context-demo-2 -- sh
在你的shell
中,列出正在运行的进程:
$ ps aux
输出显示进程以用户2000
的身份运行。这是为容器指定的runAsUser
的值。它覆盖为Pod
指定的值1000
。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
2000 1 0.0 0.0 4336 764 ? Ss 20:36 0:00 /bin/sh -c node server.js
2000 8 0.1 0.5 772124 22604 ? Sl 20:36 0:00 node server.js
...