K8s/Openshift - 复制控制器是否关心 pod/容器的退出状态?

问题描述

K8S/Openshift 中复制控制器的职责是确保实际状态与期望状态相同。因此,如果所需的状态是 2 个 Pod,那么它可以确保正好创建/运行 2 个 Pod。如果 Pod 由于某种原因失败,那么复制控制器会确保它会重新启动一个新的 Pod 以补偿失败的 Pod。

我想确认的一件事,如果 Pod/Container 存在错误 - 那么复制控制器会关心错误代码并发现 Pod 由于错误而失败,因此决定不再启动 Pod . ??请回答。

解决方法

我想确认的一件事,如果 Pod/Container 存在错误 - 那么复制控制器会关心错误代码并发现 Pod 由于错误而失败,因此决定不再启动 Pod . ??

错误可以通过多种不同的方式显示:

  • 应用程序日志中的错误代码
  • 消息负载中的错误代码
  • 响应中的 http 状态代码中的错误代码
  • 进程退出代码

只有 last - 进程退出代码对 ReplicationController(或在较新的 Kubernetes 中,ReplicaSet 控制器)有用。如果进程退出,Pod 将终止,控制器将创建一个新的。

此外,为了缓解其他情况,您可以实现 LivenessProbe,以便在出现另一种错误时杀死 Pod。