出于监视的目的,我希望依赖于pod的restartCount。然而,对于某些应用程序,我似乎无法做到这一点,因为即使在重新启动计划运行的整个节点之后,restartCount也不会被重置。
通常,重新启动一个吊舱会重置这个,除非重新启动的的荚名是相同的(例如,etcd、kube-控制器-管理器、kube-调度程序和kube)。
对于这些情况,有一个旷日持久的小问题以及使用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)所以,我在检查是否有人找到了解决办法?
谢谢!
罗伯特
发布于 2020-01-31 14:06:18
这似乎是个老问题(2017年)。看看这里。
我相信解决这个问题的方法应该是实现静态荚的唯一UID。这个问题在几天前作为另一个github问题重新开始,直到今天还没有实现。
我已经找到了解决办法。您需要更改静态的pod清单文件,例如,向pod添加一些随机注释。
如果有用的话请告诉我。
https://stackoverflow.com/questions/60000370
复制相似问题