Kubernetes 在k8s中退出时重新创建容器

Kubernetes 在k8s中退出时重新创建容器,kubernetes,Kubernetes,我在k8s中有一个部署,它包含一个容器,当它完成工作时会退出。默认情况下,k8s然后重新启动容器 我想在出口处重新创建容器(或整个吊舱)。这项工作涉及容器中的许多临时文件和其他更改,这些文件和更改在容器退出时应被丢弃,并从图像创建一个新的容器 如何配置部署(或其他工作负载),以便重新创建已退出的容器,或使整个pod退出并重新创建 有一个restartPolicy设置,但对于部署,它必须始终。似乎存在maxRetries设置,但我找不到相关文档或任何示例。我不确定还要搜索什么。使用API对象可能会

我在k8s中有一个部署,它包含一个容器,当它完成工作时会退出。默认情况下,k8s然后重新启动容器

我想在出口处重新创建容器(或整个吊舱)。这项工作涉及容器中的许多临时文件和其他更改,这些文件和更改在容器退出时应被丢弃,并从图像创建一个新的容器

如何配置部署(或其他工作负载),以便重新创建已退出的容器,或使整个pod退出并重新创建

有一个
restartPolicy
设置,但对于部署,它必须
始终
。似乎存在
maxRetries
设置,但我找不到相关文档或任何示例。我不确定还要搜索什么。

使用API对象可能会有所帮助。如果在
作业
中使用
restartPolicy=Never
,则由
作业
管理的
Pod
将在
Pod
容器中运行的进程每次退出时重新启动,并显示错误代码。使用
restartPolicy=Always
只会重新启动/重新创建容器,而不会重新创建
pod

此外,当容器在Kubernetes中重新启动时,意味着它将被重新创建。注意:容器中创建的所有文件都将被删除,但在连接的持久性存储(例如PersistenceVolume)上创建的文件除外。Kubernetes中没有与docker start/stop等价的东西。

使用API对象可能会有所帮助。如果在
作业
中使用
restartPolicy=Never
,则由
作业
管理的
Pod
将在
Pod
容器中运行的进程每次退出时重新启动,并显示错误代码。使用
restartPolicy=Always
只会重新启动/重新创建容器,而不会重新创建
pod



此外,当容器在Kubernetes中重新启动时,意味着它将被重新创建。注意:容器中创建的所有文件都将被删除,但在连接的持久性存储(例如PersistenceVolume)上创建的文件除外。Kubernetes中没有等效于
docker start/stop

更新新映像时是否要重新创建pod?请解释重新启动和重新创建容器之间的区别?重新启动容器的意思是,我们只重新启动现有容器,容器的映像不会更改,重新创建容器,应该更改容器的映像,终止所有pod并创建一个新的pod当容器重新启动时,它创建的所有文件仍然存在。我希望删除contenner,并在其位置上启动一个新的contenner(在同一个pod或新的pod中);容器中运行的进程完成外部队列中的一个项目,然后终止。是否要在更新新映像时重新创建pod?请解释重新启动和重新创建容器之间的区别?重新启动容器意味着,我们只重新启动现有容器,容器的映像不会更改,重新创建容器,应该更改容器的映像,终止所有pod并创建一个新的pod当容器重新启动时,它创建的所有文件仍然存在。我希望删除contenner,并在其位置上启动一个新的contenner(在同一个pod或新的pod中);容器中运行的进程完成外部队列中的一个项目,然后终止。我如何设置作业无限期重新启动?是否存在表示“无限完成”的值?否则,我需要使用一些技巧,比如将completions设置为999999,或者确保容器从未成功退出?如果容器从未成功退出,它应该可以工作。然而,这是一个黑客行为,我不建议在生产平台上使用它,这会使维护变得困难。在这一点上,将completions设置为999999将是较小的黑客行为,但仍然是一个黑客行为……看起来没有人比“Job with completions=99999999”有更好的答案所以我想我会同意,我该如何设置一个无限期重启的作业?是否存在表示“无限完成”的值?否则,我需要使用一些技巧,比如将completions设置为999999,或者确保容器从未成功退出?如果容器从未成功退出,它应该可以工作。然而,这是一个黑客行为,我不建议在生产平台上使用它,这会使维护变得困难。在这一点上,将completions设置为999999将是一个较小的黑客行为,但仍然是一个黑客行为…看起来没有人有比“Job with completions=99999999”更好的答案,所以我想我会这么做