Docker和kubernetes privileged 开启特权模式
首先了解下什么是特权模式:特权模式是允许容器具有宿主机(几乎)所有权限,包括一些内核特性和设备访问。
如果让容器运行在 privileged 模式下,会有安全隐患。比如这篇文章[docker 利用特权模式逃逸并拿下主机](docker 利用特权模式逃逸并拿下主机 - FreeBuf网络安全行业门户)
Docker 开启 privileged 特权模式
直接在运行命令加上 --privileged,例如:
docker run -itd --privileged centos:latest
kubernetes 开启 privileged 特权模式
k8s 特权模式需要使用 SecurityContext 来进行配置:
apVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx
securityContext:
privileged: true
如果只需要单独的权限可以用以下方法:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx
securityContext:
privileged: true
capabilities:
add: ["NET_ADMIN"]
强烈建立在生产上不要使用 privileged 特权模式。