有人知道为什么restartPolicy字段是在Pod级别而不是容器级别定义的吗?似乎此设置与容器的关系更密切,而不是与Pod的关系。那么在多容器Pod中如何控制单个容器的重启策略呢?
restartPolicy
rqmkfv5c1#
我认为重启策略是POD规范的一部分。
apiVersion: v1 kind: Pod metadata: name: test spec: containers: - name: 1st image: image-1 command: ["./bash", "-test1"] - name: 2nd image: image-2 command: ["./bash", "-test2"] restartPolicy: Never
重新启动策略在POD规范级别设置,并应用于POD中的所有容器,即使init container存在。如果POD内有多个容器,我们必须将其视为紧密耦合。
官方文件是这样写的:连结
运行多个需要协同工作的容器的单元。单元可以封装由多个协同定位的容器组成的应用程序,这些容器紧密耦合并需要共享资源。这些协同定位的容器形成一个内聚的服务单元-例如,一个容器向公众提供存储在共享卷中的数据,而另一个独立的附属容器刷新或更新这些文件。单元 Package 这些容器,存储资源和短暂的网络身份一起作为单个单元。注意:将多个协同定位和协同管理的容器分组到一个Pod中是一种相对高级的用例。您应该仅在容器紧密耦合的特定示例中使用此模式。如果您想重新启动POD中的单个容器,您将无法执行此操作,您必须通过POD设计将该容器排除在POD之外。即使你会看到container restart policy它的谈论:POD规范仅限重新启动策略。
1条答案
按热度按时间rqmkfv5c1#
我认为重启策略是POD规范的一部分。
重新启动策略在POD规范级别设置,并应用于POD中的所有容器,即使init container存在。
如果POD内有多个容器,我们必须将其视为紧密耦合。
官方文件是这样写的:连结
运行多个需要协同工作的容器的单元。单元可以封装由多个协同定位的容器组成的应用程序,这些容器紧密耦合并需要共享资源。这些协同定位的容器形成一个内聚的服务单元-例如,一个容器向公众提供存储在共享卷中的数据,而另一个独立的附属容器刷新或更新这些文件。单元 Package 这些容器,存储资源和短暂的网络身份一起作为单个单元。
注意:将多个协同定位和协同管理的容器分组到一个Pod中是一种相对高级的用例。您应该仅在容器紧密耦合的特定示例中使用此模式。
如果您想重新启动POD中的单个容器,您将无法执行此操作,您必须通过POD设计将该容器排除在POD之外。
即使你会看到container restart policy它的谈论:POD规范仅限重新启动策略。