监控k8s部署的pod启动和移除
网站的系统在 构建、部署、和启动阶段都会有 IM 消息通知, 但是 pod 的移除却没有。而且我的启动消息通知都是在应用代码里,冗余而且不优雅。
我尝试找解决方案,把这些消息通知功能集中到一个专属服务或者迁移到运维层面。
监控服务注册中心
首先想到的就是监控服务注册中心 consul 的服务注册和摘除事件。可是很遗憾,consul 本身并没有提供这个功能,如果非要实现,只能自己去 diff 服务列表的差异勉强实现,而且还存在不准确的问题。
kubernetes lifecycle
经过一番查找, 最终我把目光锁定在 kubernetes 本身。在 kubernetes 启动/移除 pod 时做一个 curl 操作可以完美实现我的需求。
在官方文档里找到 lifecycle 相关的操作文档,我所需要的就是在 postStart 和 preStop 时执行一个 curl 命令就好。
考虑到某些容器没有 curl 命令,我最终用的是 wget 。
lifecycle:
postStart:
exec:
command:
- sh
- "-c"
- wget --output-document=/dev/null "https://happysooner.com"
完美实现我想要的功能。
参考资料
赠人玫瑰, 手有余香。🌹
打赏
特别鸣谢
感谢以下用户对本文的支持与鼓励
加载打赏用户中
发表评论
文章评论
暂无任何评论,快去发表吧~