我已将PagerBot https://github.com/stripe-contrib/pagerbot部署到我们的内部k8s群集作为学习机会。我很乐意为它写一个掌舵图!
机器人似乎在未知时间与松弛断开连接,从不重新连接。我终止了pod,部署重新创建它并再次连接(我们使用的是Slack RTM选项)。
pod在断开连接时会记录以下条目:
2018-02-24 02:31:14.382590 I [9:34765020] PagerBot::SlackRTMAdapter -- Closed connection to chat. --
我想学习一种监控此日志条目并采取措施的方法。最初我认为Liveness探测将是使用在记录此条目时返回非零的命令的方法。但是日志不会内部存储到容器中(我可以看到)。
如何根据使用kubectl logs pod-name
?
我可以在Prometheus测试部署中实现这一目标吗?我应该使用已知的k8s功能吗?
答案 0 :(得分:0)
我认为最佳行动方案是将pagerbot扩展到表面而不仅仅是/ping endpoint中的字符串文字pong
,然后将其用作{{3}} { 1}},紧接着教会重新连接的东西,因为这几乎肯定比拆除Pod更便宜
话虽如此,您可以考虑的一种方法是使用Pod的服务帐户凭据监控兄弟容器(类似于livelinessProbe
类型交易)的边车容器。这有点尴尬,但我不能立即想到为什么它不起作用
答案 1 :(得分:0)
我最终登陆了"活动探测"解决我的问题。我已将以下内容添加到pageyBot部署的部署中:
livenessProbe:
exec:
command:
- bash
- -c
- "ss -an | grep -q 'EST.*:443 *$'"
initialDelaySeconds: 120
periodSeconds: 60
基本上测试看看是否为443建立了连接,我们注意到它在僵尸程序断开时消失了。