我是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应该使用系统值作为默认值。
套 /etc/security/limits.con
f带 * - nofile 65536
重新启动
执行 ulimit -Hn && ulimit -Sn
返回65536两次
执行 docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn'
(应返回65536两次,但不是,返回4096和1024)
方式2
添加 --default-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)
方式3
添加
“default ulimit”:{“nofile”:{“name”:“nofile”,“hard”:“65536”,“soft”:“65536”}
至 /var/snap/microk8s/354/args/docker-daemon.json
执行 systemctl restart snap.microk8s.daemon-docker.service
执行 journalctl -u snap.microk8s.daemon-docker.service -f
会回来的 unable to configure the Docker daemon with file /var/snap/microk8s/354/args/docker-daemon.json: the following directives don't match any configuration option: nofile
我找到的唯一办法就是通过考试 --ulimit nofile=65536:65536
到docker run命令。但我不能在我的kubernetes statesfullset配置中这样做。
你知道我怎么解决这个问题吗?我没做错什么?
提前谢谢你的帮助
ps:我在ubuntu 18.0.1上安装了Docker18.06.1-ce,microk8s上安装了snap
1条答案
按热度按时间83qze16e1#
有点晚,但如果有人也有这个问题,你可以添加这一行到
/var/snap/microk8s/current/args/containerd-env
:然后停止/启动microk8s以启用此修复。如果你执行命令
docker run --rm centos:7 /bin/bash -c 'ulimit -Hn && ulimit -Sn'
你可以看到65536两次有关microk8s github问题的更多信息#253。microk8s已经对此进行了修复,可能很快就会发布。