运行 Kubernetes 集群上的启动脚本

Running startup-scripts on Kubernetes Clusters

如何 运行 在 Kubernetes 集群上启动脚本?我看到有一些方法可以 运行 在计算实例上启动脚本,但找不到关于 kubernetes 集群的任何文档。

您可以使用init containers在实际容器启动之前执行脚本。

Init 容器是 运行 在 Pod 中的应用程序容器之前的专用容器。 Init 容器可以包含应用映像中不存在的实用程序或设置脚本。

因为init容器和app容器的镜像是分开的,所以对于启动相关的代码有一些优势:

  • Init 容器可以包含用于设置的实用程序或自定义代码 不存在于应用程序图像中。例如,没有必要 从另一个图像制作图像只是为了使用像 sed,awk 这样的工具, python,或在设置期间挖掘。
  • 应用程序映像生成器和部署器角色可以工作 无需共同构建单个应用程序映像即可独立运行。
  • Init 容器可以 运行 使用与文件系统不同的视图 同一个 Pod 中的应用程序容器。因此,他们可以给 访问应用程序容器无法访问的 Secret。
  • 因为初始化容器 运行 在任何应用程序容器之前完成 启动,init 容器提供了一种机制来阻止或延迟应用程序 容器启动,直到满足一组先决条件。一次 满足前提条件,Pod 中的所有应用程序容器都可以启动 并行。
  • Init 容器可以安全地 运行 实用程序或自定义代码 否则会使应用程序容器映像的安全性降低。通过保持 将不必要的工具分开,您可以限制您的攻击面 应用程序容器图像。