远浅
理解他人,内省自己。

监控k8s部署的pod启动和移除

远浅发表于: 2020-10-14 12:41分类: 记录

网站的系统在 构建、部署、和启动阶段都会有 IM 消息通知, 但是 pod 的移除却没有。而且我的启动消息通知都是在应用代码里,冗余而且不优雅。

我尝试找解决方案,把这些消息通知功能集中到一个专属服务或者迁移到运维层面。

监控服务注册中心

首先想到的就是监控服务注册中心 consul 的服务注册和摘除事件。可是很遗憾,consul 本身并没有提供这个功能,如果非要实现,只能自己去 diff 服务列表的差异勉强实现,而且还存在不准确的问题。

kubernetes lifecycle

经过一番查找, 最终我把目光锁定在 kubernetes 本身。在 kubernetes 启动/移除 pod 时做一个 curl 操作可以完美实现我的需求。

在官方文档里找到 lifecycle 相关的操作文档,我所需要的就是在 postStartpreStop 时执行一个 curl 命令就好。

考虑到某些容器没有 curl 命令,我最终用的是 wget 。

lifecycle:
     postStart:
           exec:
              command:
              - sh
              - "-c"
              - wget --output-document=/dev/null "https://happysooner.com"
          

完美实现我想要的功能。 image.png

参考资料

kubernetes lifecycle doc

赠人玫瑰, 手有余香。🌹
打赏
特别鸣谢
感谢以下用户对本文的支持与鼓励
加载打赏用户中
发表评论
评论列表
评论努力加载中