一、问题
我需要在容器里面把最大文件句柄数设置为204800,但发现被拒绝。这是Docker自身安全机制导致的
浅谈Docker安全性支持
二、解决方法
方法一:简单粗暴
设置容器为特权模式即可,但安全性不高
在yaml文件添加如下两行
securityContext:
privileged: true
kubectl apply -f pod-01.yaml #发现有如下报错
需要把之前的Pod删除,再执行kubectl apply
kubectl delete -f pod-01.yaml
kubectl apply -f pod-01.yaml
这次不报错了,进入到容器里面
kubectl exec -it pod-01 bash
ulimit -n 204800
设置成功
方法二:温柔可佳
为容器添加capabilities中的CAP_SYS_RESOURCE
能力,安全性高
securityContext:
capabilities:
add: ["SYS_RESOURCE"]
三、参考文章
Capability能力介绍点这里
Linux capability详解