init容器为“常规”容器准备数据。它需要相当多的临时空间来下载/预处理数据,在init容器完成后不再需要这些空间。
目前,为pod装载的卷有足够的空间用于init进程,并且在pod的大部分生命周期中,这些空间都不会被使用。有没有一种方法可以让Volume
只存在于init容器的生命周期中,并且在完成之后被销毁?pod(即主容器)的寿命较长(天),而init容器及其暂存空间的寿命较短(分钟)。
init容器为“常规”容器准备数据。它需要相当多的临时空间来下载/预处理数据,在init容器完成后不再需要这些空间。
目前,为pod装载的卷有足够的空间用于init进程,并且在pod的大部分生命周期中,这些空间都不会被使用。有没有一种方法可以让Volume
只存在于init容器的生命周期中,并且在完成之后被销毁?pod(即主容器)的寿命较长(天),而init容器及其暂存空间的寿命较短(分钟)。
1条答案
按热度按时间oymdgrw71#
卷绑定到Pod,而不是特定的容器。如果您在Pod中配置了卷,则该卷将在Pod的生命周期内存在。
也许你可以研究其中一个选择。
1.使用对象存储(类似S3的存储),因为它不会“挂载”到文件系统上,并且可以有一个独立于Pod的生命周期。
这是否是一个选项取决于对象存储服务的可用性以及您正在使用的特定工具/应用程序。
1.在一个单独的、短暂的Pod中执行初始化--也就是Job。在应用程序Pod中包含逻辑,该逻辑将阻塞,直到初始化完成。
Helm和ArgoCD等工具能够在更新部署时自动提交作业。