【问题标题】:Writing a startup script to google container engine向谷歌容器引擎编写启动脚本
【发布时间】:2017-09-25 23:40:10
【问题描述】:

我发现可以使用 控制台cli(gcloud) 将 启动脚本 添加到 Google 计算实例。 我想将 启动脚本 添加到 google 容器引擎。

目标是在 google 容器引擎将其状态更改为 Running通知我。我认为一种有效的方法是在容器引擎中使用启动脚本,因为这些脚本只会在容器状态更改为运行时执行。

知道如何将启动脚本添加到容器引擎或任何其他通知容器状态何时变为运行的方式。

【问题讨论】:

    标签: kubernetes google-cloud-platform google-compute-engine google-kubernetes-engine gcp


    【解决方案1】:

    首先,您的问题相当复杂。启动脚本的概念不属于容器世界。 据我所知,您无法在 Google Container Engine 中添加启动脚本。这是因为 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-event/

    【讨论】:

    • 啊!!说得通!!然后轮询 List API 并找到状态将是解决方案。谢谢大佬!!
    【解决方案2】:

    您可以使用 DaemonSet 和以特权模式运行的简单 pod 来近似启动脚本的行为。示例代码见https://github.com/kubernetes/contrib/tree/master/startup-script

    【讨论】:

      【解决方案3】:

      项目元数据适用于此,这是一个 terraform 示例:

      resource "google_compute_project_metadata_item" "main" {
          project = abcdefg # this is optional
          key = "startup-script"
          value = "#! /bin/sh\necho hello > /tmp/world"
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-10
        • 1970-01-01
        • 2013-04-01
        • 1970-01-01
        • 2015-08-05
        相关资源
        最近更新 更多