同一部署的 2 个 Pod 同时重启
2 pod of same deployment restarting at same time
我在 kubernetes GKE 集群上有一个部署的 2 个 pod 运行。我已将此无状态部署副本扩展到 2 个。
两个副本几乎同时启动,都在重新启动,错误代码为 137 ERROR。为了更改重启时间,我手动删除了一个 pod,以便 RS(复制集)创建新的 pod。
现在 pods 再次同时重新启动。他们之间有什么联系吗?两者都必须独立工作。
我没有设置资源限制。在群集中可用 space 高达 3 GB,部署不占用太多内存仍然得到 137 并在 pods 中重新启动。
为什么两个 pod 同时重启是个问题?其他所有 15 个微服务 运行 完美。
尝试获取更多描述 pod 的日志
kubectl describe po
通常 137 代码表示内存不足
您是否为您分配了正确的内存pods?
https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/
这是定义 pods 时的常见错误。如果不设置 CPU 和内存限制,则没有上限,pod 可能会占用所有资源、崩溃并重新启动。这些在此处讨论 [2][3]。您还会看到用户“ciokan”[1] 通过设置限制解决了他的问题。
[1]https://github.com/kubernetes/kubernetes/issues/19825
[2]内存:https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/
[3]CPU:https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/
错误代码 137 是 the result 的 kill -9
(137 = 128 + 9)。可能有几个原因:
正如其他人在他们的回答中也指出的那样,这可能是由于内存不足造成的。请注意,即使未设置 resources.limits.memory
,也可能是 运行 内存不足的应用程序或进程。例如,Java 应用程序的 JVM 运行 堆内存不足。
另一个原因可能是 application/process 没有处理 SIGTERM
(kill -15
),然后是 SIGKILL
(kill -9
) 保证关机。
两个 pods 很可能几乎同时重新启动,因为几乎同时满足错误条件。例如:
两者 pods 同时启动并获得大致相同的流量 and/or 完成相同数量和类型的工作,因此,它们 运行几乎同时内存不足。
pods 两个 pods 同时未能通过活性探测,因为部署中的探测设置对于两个 pods.
[=38 是相同的=]
查看事件(例如 kubectl get events --sort-by=.metadata.creationTimestamp
)——它们可以显示一些内容来帮助确定终止容器的原因/pods。
我在 kubernetes GKE 集群上有一个部署的 2 个 pod 运行。我已将此无状态部署副本扩展到 2 个。
两个副本几乎同时启动,都在重新启动,错误代码为 137 ERROR。为了更改重启时间,我手动删除了一个 pod,以便 RS(复制集)创建新的 pod。
现在 pods 再次同时重新启动。他们之间有什么联系吗?两者都必须独立工作。
我没有设置资源限制。在群集中可用 space 高达 3 GB,部署不占用太多内存仍然得到 137 并在 pods 中重新启动。
为什么两个 pod 同时重启是个问题?其他所有 15 个微服务 运行 完美。
尝试获取更多描述 pod 的日志
kubectl describe po
通常 137 代码表示内存不足
您是否为您分配了正确的内存pods? https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/
这是定义 pods 时的常见错误。如果不设置 CPU 和内存限制,则没有上限,pod 可能会占用所有资源、崩溃并重新启动。这些在此处讨论 [2][3]。您还会看到用户“ciokan”[1] 通过设置限制解决了他的问题。
[1]https://github.com/kubernetes/kubernetes/issues/19825 [2]内存:https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/ [3]CPU:https://kubernetes.io/docs/tasks/configure-pod-container/assign-cpu-resource/
错误代码 137 是 the result 的 kill -9
(137 = 128 + 9)。可能有几个原因:
正如其他人在他们的回答中也指出的那样,这可能是由于内存不足造成的。请注意,即使未设置
resources.limits.memory
,也可能是 运行 内存不足的应用程序或进程。例如,Java 应用程序的 JVM 运行 堆内存不足。另一个原因可能是 application/process 没有处理
SIGTERM
(kill -15
),然后是SIGKILL
(kill -9
) 保证关机。
两个 pods 很可能几乎同时重新启动,因为几乎同时满足错误条件。例如:
两者 pods 同时启动并获得大致相同的流量 and/or 完成相同数量和类型的工作,因此,它们 运行几乎同时内存不足。
pods 两个 pods 同时未能通过活性探测,因为部署中的探测设置对于两个 pods.
[=38 是相同的=]
查看事件(例如 kubectl get events --sort-by=.metadata.creationTimestamp
)——它们可以显示一些内容来帮助确定终止容器的原因/pods。