使用 Kubernetes 的钩子

Using Kubernetes' hooks

我想尝试 Kubernetes 的钩子,但我没有找到任何示例我应该如何做。据我所知,有了这个钩子,我可以在新创建的容器中 运行 bash 脚本并在终止它们之前。

我发现了一个简短的 documentation 说这是可能的,但仅此而已。

有人有示例或有用的信息吗?

提前致谢。

我没有看到任何示例 .yaml 文件,但 Kubernetes API v1 以相同的方式描述了生命周期事件。目前,仅定义了 PostStart 和 PreStop,您应该能够通过将生命周期部分添加到 Pod 定义中的容器来使用它们。

根据阅读 API 的定义,像这样的东西应该可以工作(免责声明:我自己还没有真正尝试过):

containers:
  - name: lifecycle
    image: busybox
    lifecycle:
      postStart:
        exec:
          command:
            - "touch"
            - "/var/log/lifecycle/post-start"
      preStop:
        httpGet:
          path: "/abort"
          port: 8080

有了上面的答案,我可以尝试 postStart 钩子,我发现了一个错误,该错误已在去年年底解决,但尚未在 rawhide 存储库中的 Fedora 测试存储库中发布。

回购应该在接下来的几天内更新。

更多详情: https://github.com/kubernetes/kubernetes/issues/3930