如何在部署pod后在Kubernetes中保存pod上的更改



我有一个带有pod的Jenkins部署,我想对pod进行更改,例如,我想安装并设置maven。我装音量做吊舱。但当我重新启动pod时,用kubectl exec所做的更改就消失了。但是,当我在Jenkins GUI中进行更改时,更改是持久的。这背后的原因是什么?在部署pod后,有没有办法保存更改?

kubernetes pod(通常是docker容器(默认为无状态,为了使其有状态,您需要将状态存储在某个地方(数据库、云存储或持久磁盘等(。

在您的情况下,您使用将卷装载到pod,并且在使用Jenkins时状态会恢复,因此需要检查以下几点:

  • 是每次部署/重新启动后的卷装载吗
  • 您是否手动执行相同的命令并在Jenkins GUI中执行
  • 手动执行命令时,是否使用正确的装载路径

。。。我装卷做吊舱。。。当我在Jenkins GUI中进行更改时,更改是持久的。

默认情况下,使用Jenkins GUI所做的更改将保存到Jenkins主页;大概是用持久卷装载的位置。

背后的原因是什么

当pod离开时,持久卷仍保留在系统中。当您的pod重新联机并安装相同的音量时,您可以取回更改。这意味着任何未在装入的卷中持续存在的更改将不会被保留。这也意味着,如果您的新pod由于任何原因无法装载回相同的持久卷;您也丢失了以前的所有更改。

。。。部署pod后,有没有办法保存更改?

GUI或kubectl exec;您希望在Pod生命周期中持续的任何更改;您确保此类更改始终保存到已装入的卷中;并且相同的卷总是可用于安装新的pod。

最新更新