2016-05-11 66 views
4

這就好比一個後續問題:Recommended way to persistently change kube-env variables正確的方式來定義K8S-用戶啓動腳本

我被玩弄的可能性來定義K8S-用戶啓動腳本的GKE實例(我想爲每個節點安裝附加軟件)。

添加K8S-用戶啓動腳本一個實例組模板「自定義元數據」的作品,而是由gcloud container clusters upgrade這將創建一個新的實例模板沒有「繼承」額外K8S-用戶startup-覆蓋腳本來自當前模板的元數據。

我也試着到K8S-用戶啓動腳本添加到項目中的元數據(我認爲這會通過類似描述here我的項目的所有實例繼承),但沒有考慮到。

定義保持集羣升級的k8s-user-startup-script的正確方法是什麼? 或者更一般的,定製GKE節點的理想方式是什麼?

回答

5

Google容器引擎不支持節點的自定義啓動腳本。

正如我在Recommended way to persistently change kube-env variables中提到的那樣,您可以使用DaemonSet來定製您的節點。以特權模式運行的DaemonSet可以完成對啓動腳本所做的任何操作,但要注意的是稍後會在節點啓動生命週期中完成。由於DaemonSet將在羣集中的所有節點上運行,它將自動應用於任何加入的新節點(通過羣集大小調整),並且由於它是Kubernetes API對象,因此它將在OS升級期間持續存在。

+0

感謝您的輸入!將進入特權/主機網絡守護進程比。 – jayme

+0

有關如何使用DaemonSet執行此操作的示例,請參閱https://github.com/kubernetes/contrib/tree/master/startup-script。 – Rush

+0

但是如何在應用程序啓動之前使用它來配置內核參數?像: ''' echo 1024>/proc/sys/net/core/somaxconn echo never>/sys/kernel/mm/transparent_hugepage/enabled ''' – Robinho

相關問題