k8s设置pod特权privileged的方法

k8s部署es的时候需要初始化很多linux的内核参数。 但是文件系统挂载到pod容器中就会变成read-only,难以进行操作实现需求。

所以需要给POD privileged权限,然后在容器的初始化脚本或代码中去修改sysctl参数。

创建POD/deployment/daemonset等对象时,

给容器的spec指定securityContext.privileged=true即可

设置到containers同级即可

    securityContext:
      privileged: true

如果是docker设置特权的话比较简单,只是需要在起docker容器的时候加一个--privileged参数

docker run -it --privileged centos:latest bash

那么docker和k8s都使用privileged起的容器内部是有差别的

k8s privileged 起的容器里

mount|grep sys
sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime,seclabel)

/sys是ro只读的

docker privileged 起的容器里

mount|grep sys
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)

/sys是rw可读可写


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/887.html