CoreOS Kubernetes如何监控Node进程?

我们的一些Kubernetes节点上的flanneld进程已知会崩溃,造成奇怪的行为。 我想设置监视/警报,以确保我们收到通知时,如果flanneld崩溃。 我们运行CoreOS作为我们的基本操作系统来运行Kubernetes。

CoreOS的devise决策之一是(据我了解),应该是基本操作系统上安装最less的软件,一切都应该在Pod /容器中运行。

所以,考虑到这一点,我想运行一个Pod /容器来监视主机进程列表,以确保始终有一个名为“flanneld”的进程在运行,并在未运行时发送警报。

但是,由于任何Pod /容器都有自己的进程名称空间,我似乎无法运行有权访问主进程列表/树的容器。 我试图运行一个容器“特权:真”,但没有运气。

有没有办法在Kubernetes上运行一个可以访问主进程列表/树的容器?

或者,有没有更好的方式做我想做的事情? 最好不要直接在CoreOS系统上安装软件,而要使用容器/ Pod。

我发现这样做的一种方法是将主机上的/ proc挂载在容器上,例如“-v / proc:/ hostproc”,然后定期检查/ hostproc下列出的所有进程号码,并validation例如)一个“flanneld”那里。

为什么不利用systemd它自己,并确保当法兰绒进程(服务)死亡/重新启动,你会得到电子邮件,webhook触发或其他事件?

您可以像使用默认的flannelconfiguration那样为您的云configuration中的systemd单元轻松创build加载项,从而按照您认为合适的方式扩充默认服务文件。

- name: flanneld.service command: start drop-ins: - name: 01-somedropin.conf content: | [Service] ExecStartPre=-/usr/bin/somecommand