我计划在一些容器可以发出一些REST请求之后运行 .sh 脚本。
创建了一个作业来等待这些初始容器,并在 .yaml 中填充initContainers
标签。
首先,我想使用Linux发行版作为基本映像来创建一个容器。然后,似乎不太正确。
那不是浪费资源吗?在这种情况下,最佳做法是什么?
谢谢。
答案 0 :(得分:2)
您可以使用任何类型的图像作为基本图像。您正在消耗(而不是浪费)的唯一资源是磁盘空间。
Kubernetes将提取映像,这将消耗节点上的磁盘空间。初始化容器完成工作后,它将停止运行,不再使用任何RAM或CPU,它们是云或裸机上真正宝贵的资源。
如果您担心图像的大小,也可以尝试使用与用户容器(主容器)相同的图像,但从中使用不同的命令。
这将使节点仅加载图像,而不会占用脚本中的额外空间。
另一种选择是使用像alpine这样的很小的发行版。
如果您可以用go编写初始化例程,则还可以将go二进制文件用作图像,像描述为here一样。