各位大佬,想问问,在 k8s 集群里面如何监听一个 pod 的镜像变更。然后发送一个通知到群里,这个有组件可以做到么,感谢🙏

260 天前
 BrandonXcc
2096 次点击
所在节点    Kubernetes
19 条回复
defunct9
260 天前
发版的时候通知一下不就行了。监听这个干嘛
qoo2019
260 天前
你的需求呢,k8s-event 就像,但是没明白这是啥场景会有这种需求?
263
260 天前
Prometheus + kube-state-metrics
BrandonXcc
260 天前
@defunct9 需求是在做私有化部署测试,然后开发会单独更新镜像,我们有镜像已经构建完成的通知。但是是否部署到机器上面了开发不知道,得上机器看,比较浪费时间。 所以就想能不能监听到这变更,然后发送通知给开发,让他们知道镜像更新完成了。
nieqibest
260 天前
需求不错,蹲一个
BrandonXcc
260 天前
@qoo2019 需求在上面。k8s+event 可以满足这个场景么
BrandonXcc
260 天前
@263 这个我们有采集,但是只采集了 pod 是否有重启,没有监听镜像变更
defunct9
260 天前
event 监听的是变动,改镜像是变动、tag 也是变动、重启也是变动。通知太多了
anubu
260 天前
keel.sh 可以看看,我用这个在 Kubernetes 集群自动更新镜像,有审批和通知功能。
zhoudaiyu
260 天前
写个程序:监听 Pod 的父对象的 Update 事件,然后对比当前的镜像和上次生效配置中的镜像是否一样,不一样就发消息
litchinn
260 天前
我这都是开发盯着 k9s 看部署好没,哈哈
csys
260 天前
k8s event 啊,此外如果你用 deployment ,镜像变更也会产生历史副本,diff 一下就能拿到了
zhaoyeye
259 天前
你们是怎么发布的?发布平台上应该都可以看到 deployment 的状态啊
vkillwucy
259 天前
Name:服务更新提醒
Labels:
alertname:服务更新提醒
deployment:data-ingest
namespace:uat
severity:info
Annotations:
summary:产线 k8s 集群有服务在更新版本,服务名称:data-ingest ,namespace:uat
基于 prometheus altermange 告警通知到企业微信群
BrandonXcc
256 天前
@zhaoyeye 发布系统上只有自动更新的信息,是否更新成功没有展示。
windcode
254 天前
Karpor 会做个功能,欢迎关注: https://github.com/KusionStack/karpor/issues/698
BrandonXcc
254 天前
最终还是采用了 alertmanager 的方案, 增加了一个 kube_status_metrics 的 export , 里面有 kube_pod_container_info 这个指标,含有了 image 的信息。 使用 changes(kube_pod_container_info)然后进行告警推送。 但是有一个弊端就是如果有多个 pod 的话,会告警多次,这个还在想办法怎么去重,只要相同的 sts 中,只推送一个信息
BrandonXcc
254 天前
@anubu 嗯嗯,也调研过这个开源的控制台,但是我只想要单纯的镜像变更推送。 这个控制台好像只有监听了镜像仓库变更的 trigger ,然后更新了 k8s 的镜像之后才会推送信息,我们已经接入了自动部署平台,现在只想要一个推送方式
Frankcox
249 天前
是要在 Deployment Pod 的 image 触发 update ,有 image 变化刚刚开始时发通知,还是 Deployment Pod 的 image 更新完毕后发通知?

如果是前者那比较简单,可以自己写个 Admission Controller ,有 Deployment update 操作时,查找当前集群的对应的 Deployment ,比较前后 Image ,有变化就通知。

如果是后者那比较麻烦,我之前写过一个 Deployment 滚动更新自动暂停控制器,其中就是需要 watch Deployment 的滚动更新情况。你可以先 watch Deployment 的 Update 事件,然后每次 watch 的时候根据 Deployment 去找对应的 replicaSet ,在通过比较新老 replicaSet 判断是否触发滚动更新,然后再 watch ReplicaSet ,当其 Status 的 Replicas 和 Spec 的 Replicas 相等时,认为滚动更新结束。这个时候发通知。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1100776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX