定义 k8s-user-startup-script 的正确方法

Correct way to define k8s-user-startup-script

这就像以下问题的后续问题:

我正在尝试为 GKE 实例定义 k8s-user-startup-script 的可能性(我想为每个节点安装额外的软件)。

k8s-user-startup-script 添加到实例组模板 "Custom Metadata" 有效,但会被创建新实例的 gcloud container clusters upgrade 覆盖没有 "inheriting" 来自当前模板的附加 k8s-user-startup-script 元数据的模板。

我还尝试将 k8s-user-startup-script 添加到项目元数据中(我认为这将被我项目的所有实例继承,如所述here) 但没有考虑到这一点。

定义持续集群升级的 k8s-user-startup-script 的正确方法是什么? 或者,更一般地说,自定义 GKE 节点的理想方式是什么?

Google容器引擎不支持节点的自定义启动脚本。

正如我在 中提到的,您可以使用 DaemonSet 来自定义您的节点。特权模式下的 DaemonSet 运行ning 几乎可以执行启动脚本可以执行的任何操作,但需要注意的是,它在节点启动生命周期的稍后时间完成。由于 DaemonSet 将 运行 在集群中的所有节点上,它将自动应用于加入的任何新节点(通过集群调整大小)并且因为它是 Kubernetes API 对象,它将在整个节点上持久化OS 升级。