温馨提示:本文翻译自stackoverflow.com,查看原文请点击:kubernetes - resetting restartCount of pods with static names
kubernetes

kubernetes - 重置带有静态名称的pod的restartCount

发布于 2020-03-27 15:55:57

出于监视目的,我希望依赖于Pod的restartCount。但是,对于某些应用程序,我似乎无法做到这一点,因为即使重新启动了计划运行Pod的整个节点,也不会重置restartCount。

通常,重新启动Pod会将其重置,除非重新启动的Pod 的Pod名称相同(例如,对于etcd,kube-controller-manager,kube-scheduler和kube-apiserver为true)。

对于这些情况,存在一个长期存在的小问题以及要使用的想法kubectl patch

总结信息,kubectl edit将不允许更改任何状态。不幸的是,例如

kubectl -n kube-system patch pod kube-controller-manager-some.node.name --type='json' -p='[{"op": "replace", "path": "/status/containerStatuses/0/restartCount", "value": 14}]'

The Pod "kube-controller-manager-some.node.name" is invalid: spec: Forbidden: pod updates may not change fields other than `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` or `spec.tolerations` (only additions to existing tolerations)

因此,我正在检查是否有人找到了解决方法?

谢谢!

罗伯特

查看更多

查看更多

提问者
valuecoach
被浏览
392
HelloWorld 2020-01-31 22:06

这似乎是一个古老的问题(2017年)。在这里看看

我相信解决方案应该是为静态Pod实现唯一的UID该问题几天前作为另一个github问题重新开放,至今尚未实现。

我找到了解决方法。您需要更改静态容器清单文件,例如,通过向容器添加一些随机注释。

让我知道是否有帮助。