这就像是Recommended way to persistently change kube-env variables
的后续问题我正在为GKE实例定义 k8s-user-startup-script 的可能性(我想为每个节点安装其他软件)。
将 k8s-user-startup-script 添加到实例组模板"自定义元数据"但gcloud container clusters upgrade
覆盖了background-color
,它创建了一个新的实例模板而没有"继承"来自当前模板的其他 k8s-user-startup-script 元数据。
我还尝试将 k8s-user-startup-script 添加到项目元数据中(我认为我的项目的所有实例都会继承这些内容,如{{3}所述})但是没有考虑到这一点。
定义持续群集升级的 k8s-user-startup-script 的正确方法是什么? 或者,更一般地说,定制GKE节点的理想方法是什么?
答案 0 :(得分:5)
Google容器引擎不支持节点的自定义启动脚本。
正如我在Recommended way to persistently change kube-env variables中提到的,您可以使用DaemonSet来自定义节点。在特权模式下运行的DaemonSet可以完成您可以使用启动脚本执行的任何操作,但需要注意的是,它稍稍在节点启动生命周期中完成。由于DaemonSet将在群集中的所有节点上运行,因此它将自动应用于任何加入的新节点(通过群集调整大小),并且因为它是Kubernetes API对象,所以它将在操作系统升级之间保持不变。