某些东西在自定义 k8s 命名空间中重新创建了 ConfigMap
Posted
技术标签:
【中文标题】某些东西在自定义 k8s 命名空间中重新创建了 ConfigMap【英文标题】:Something re-creates ConfigMap in custom k8s namespace 【发布时间】:2020-02-20 14:15:36 【问题描述】:在 GKE 上有一个 Prometheus 运算符和一些由我创建的带有 Prometheus 规则的 ConfigMap。今天我发现,我不能再更改/删除那个 ConfigMap。每次它在以前的状态下重新创建。在过去,它不是一成不变的。
这可能是什么原因?
K8S 主控:1.13.7-gke.24 K8S 节点:1.13.6-gke.13 普罗米修斯:v2.4.3 普罗米修斯运营商:v0.24.0 Configmap-重新加载:v0.0.1 Prometheus-config-reloader:v0.24.0【问题讨论】:
有错误信息吗?如果有,请将它们包括在问题中。 不,只是configured
或deleted
。完全没有错误。
对于那些忘记 PrometheusRule
CRD 的人,就像我一样:编辑那些 PrometheusRule
自定义资源,而不是 ConfigMap。解决了。
请不要在标题中添加“已解决”。如果您有一个真正有用的答案,请将其作为答案发布在下面的大友好框中,并接受它。如果没有,也许你应该简单地删除这个问题。
【参考方案1】:
Prometheus Operator 作用于CRDs。这些对象会被持续监视,任何漂移配置都会触发配置重新加载。
操作员旨在完全控制 ConfigMap;如果您直接对其进行编辑,config-reloader 最终将还原您的更改以匹配 CRD 配置。
编辑规则的正确方法是更改PrometheusRule
对象。您的更改将被操作员捕获,这将更新 ConfigMap 并触发配置重新加载。
【讨论】:
以上是关于某些东西在自定义 k8s 命名空间中重新创建了 ConfigMap的主要内容,如果未能解决你的问题,请参考以下文章
C ++在boost python中使用带有命名空间的自定义智能指针
在 Spring Boot 应用程序中获取 k8s 命名空间?