我发现可以使用控制台或cli(gcloud)将启动脚本添加到Google 计算实例中。我想将启动脚本添加到谷歌容器引擎。
目标是在google 容器引擎将其状态更改为Running时通知我。我认为一种有效的方法是在容器引擎中使用启动脚本,因为这些脚本只会在容器状态更改为运行时执行。
知道如何将启动脚本添加到容器引擎或在容器状态更改为运行时通知的任何其他方式。
我发现可以使用控制台或cli(gcloud)将启动脚本添加到Google 计算实例中。我想将启动脚本添加到谷歌容器引擎。
目标是在google 容器引擎将其状态更改为Running时通知我。我认为一种有效的方法是在容器引擎中使用启动脚本,因为这些脚本只会在容器状态更改为运行时执行。
知道如何将启动脚本添加到容器引擎或在容器状态更改为运行时通知的任何其他方式。
首先,您的问题相当复杂。启动脚本的概念不属于容器世界。据我所知,您无法在 Google Container Engine 中添加启动脚本。这是因为容器引擎实例是不可变的(例如,您不能或不应该修改操作系统,您应该只运行容器)。
如果您尝试在容器启动/停止时运行脚本,您需要忘记 Compute Engine 世界中的启动脚本概念。您可以在 Kubernetes(容器引擎中运行的编排器)中使用容器生命周期挂钩。
这是有关它的文档和教程: https ://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/ https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle -事件/
您可以使用 DaemonSet 和以特权模式运行的简单 pod 来近似启动脚本的行为。示例代码见https://github.com/kubernetes/contrib/tree/master/startup-script。
项目元数据适用于此,这是一个 terraform 示例:
resource "google_compute_project_metadata_item" "main" {
project = abcdefg # this is optional
key = "startup-script"
value = "#! /bin/sh\necho hello > /tmp/world"
}