以下两种情况下授予容器的权限有什么区别
- 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
在情况 2)
[root@localhost /]# ps -ef | wc -l
266
显然,当特权容器直接使用 docker 实例化时,它能够看到主机的进程,但是当它使用 kubernetes 启动时,它只能看到少数进程。背后的原因是什么?