以下两个场景中,容器获得的特权授权有何区别?
- sudo docker run -d --privileged --pid=host alpine:3.8 tail -f /dev/null
- 使用 Kubernetes
apiVersion: v1
kind: Pod
metadata:
name: nsenter-alpine
spec:
hostPID: true
containers:
- name: nsenter-alpine
image: alpine:3.8
resources:
limits:
cpu: "500m"
memory: "200Mi"
requests:
cpu: "100m"
memory: "100Mi"
command: ["tail"]
args: ["-f", "/dev/null"]
securityContext:
privilege: true
情形1)
/ # ps -ef | wc -l
604
在第二种情况下,
[root@localhost /]# ps -ef | wc -l
266
显然,当直接使用Docker实例化特权容器时,它能够查看主机的进程,但是当使用Kubernetes启动时,它只能查看少量的进程。这背后的原因是什么?