某些东西在自定义 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

【问题讨论】:

有错误信息吗?如果有,请将它们包括在问题中。 不,只是configureddeleted。完全没有错误。 对于那些忘记 PrometheusRule CRD 的人,就像我一样:编辑那些 PrometheusRule 自定义资源,而不是 ConfigMap。解决了。​​ 请不要在标题中添加“已解决”。如果您有一个真正有用的答案,请将其作为答案发布在下面的大友好框中,并接受它。如果没有,也许你应该简单地删除这个问题。 【参考方案1】:

Prometheus Operator 作用于CRDs。这些对象会被持续监视,任何漂移配置都会触发配置重新加载。

操作员旨在完全控制 ConfigMap;如果您直接对其进行编辑,config-reloader 最终将还原您的更改以匹配 CRD 配置。

编辑规则的正确方法是更改​​PrometheusRule 对象。您的更改将被操作员捕获,这将更新 ConfigMap 并触发配置重新加载。

【讨论】:

以上是关于某些东西在自定义 k8s 命名空间中重新创建了 ConfigMap的主要内容,如果未能解决你的问题,请参考以下文章

C ++在boost python中使用带有命名空间的自定义智能指针

在 Spring Boot 应用程序中获取 k8s 命名空间?

在 k8s PersistentVolume 清单文件下定义 claimRef 时命名空间是强制性的吗?

VS调试运行出错,某些类库项目中引用的命名空间提示不存在

C++空间命名

kubernetes pod重新调度,部署到不同的命名空间后会在不同的节点上运行。