Docker 把乌利米特交给多克德
我是kubernetes的新手,我正在尝试在其上部署elasticsearch。 目前,我对elasticsearch和allow by docker所需的文件描述符的数量存在问题Docker 把乌利米特交给多克德,docker,
elasticsearch,kubernetes,ulimit,Docker,
elasticsearch,Kubernetes,Ulimit,我是kubernetes的新手,我正在尝试在其上部署elasticsearch。 目前,我对elasticsearch和allow by docker所需的文件描述符的数量存在问题 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 为了解决这个问题,我尝试了3种不同的方法: 方式1 根据docker文档,dockerd应使用系统值作为默认值 使用
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
为了解决这个问题,我尝试了3种不同的方法:
方式1
根据docker文档,dockerd应使用系统值作为默认值
*-nofile 65536
ulimit-Hn&&ulimit-Sn
return65536两次docker run--rm centos:7/bin/bash-c'ulimit-Hn&&ulimit-Sn'
(应返回65536两次,但不返回4096和1024)--默认ulimit nofile=65536:65536
添加到/var/snap/microk8s/current/args/dockerd
docker run--rm centos:7/bin/bash-c'ulimit-Hn&&ulimit-Sn'
(应返回65536两次,但不返回4096和1024)/var/snap/microk8s/354/args/docker daemon.json
systemctl restart snap.microk8s.daemon docker.service
journalctl-u snap.microk8s.daemon-docker.service-f
将返回无法使用文件/var/snap/microk8s/354/args/docker-daemon.json配置docker守护程序:以下指令与任何配置选项都不匹配:nofile
--ulimit nofile=65536:65536
传递给docker run命令。但我不能在我的kubernetes statesfullset配置中这样做
你知道我怎么解决这个问题吗?
我没做错什么
提前谢谢你的帮助
ps:我在ubuntu 18.0.1上安装了docker 18.06.1-ce和microk8s,安装了snap后有点晚了,但是如果有人也有这个问题,你可以将这一行添加到
/var/snap/microk8s/current/args/containerd env
:
ulimit -n 65536
然后停止/启动microk8s以启用此修复。如果您执行命令dockerrun--rmcentos:7/bin/bash-c'ulimit-Hn&&ulimit-Sn'
您可以看到65536两次
有关Microk8s Github问题的更多信息。Microk8s已经对此进行了修复,可能很快就会发布。您不是在使用麋鹿图像吗?我认为他们有正确的ulimit-alreadyYes,我试过使用
docker.elastic.co/elasticsearch/elasticsearch-oss:6.5.4
,以及来自和的helm chart。和他们一样,我也有同样的问题。。。。