2017-04-04 135 views
1

我在Docker容器(容器操作系統是Red Hat Linux)上運行NGINX和Tomcat,並通過Kubernetes豆莢進行部署。主機操作系統是Red Hat Linux。Kubernetes Docker操作系統參數vs主機操作系統參數

我的查詢是哪個OS參數有效 - 主機操作系統或容器操作系統?在性能調整期間,我是否需要調整OS或主機OS參數纔有效。 我參考的一些參數的例子是ulimit -n(打開文件),net.ipv4.tcp。*,fs.file-max等。

+0

http://stackoverflow.com/questions/24318543/how-to-set-ulimit-file-descriptor-on-docker-container-the-image-tag-is-phusion – Creek

回答

1

正如Crazykev已經提到的那樣,您可以使用各自的docker run標誌設置ulimits。

net.ipv4.tcp.*這樣的參數是核參數。 Docker容器與主機系統在同一個Linux內核中運行;由於這個原因,在主機上設置的參數在容器中也是有效的。

通常,您將無法從容器內設置這些參數。你可以(不是說你應該)用--privileged標誌啓動一個容器,這個標誌可能(未經測試)允許你從容器內設置內核參數。 Kubernetes文檔也描述了how to start privileged containers

+0

感謝helmbert ..對ulimits參數,如果容器內沒有設置ulimit,它會從主機操作系統中取出嗎? –

1

在Docker容器中,我不確定它是否會可以稱爲操作系統...

順便說一下,您的一些推薦示例可能不支持在Docker容器中直接設置安全或其他問題。您可能需要在Docker文檔中找到更多手冊(例如,ulimit,docker run --ulimit nofile=262144:262144

0

Kubernetes現在不支持添加ulimit在kubernetes中有一個issue

關於設置ulimit詢問的類似的問題回答了here