我们的一些Kubernetes节点上的flanneld进程已经崩溃,导致奇怪的行为。我想设置监控/警报,以确保在/如果flanneld崩溃时我们会收到通知。我们正在运行CoreOS作为运行Kubernetes的基本操作系统。
CoreOS的一个设计决策(据我所知)是基本操作系统上应该安装最少的软件,所有内容都应该在Pod /容器中运行。
因此,考虑到这一点,我想运行一个Pod /容器来监控主机进程列表,以确保总是有一个名为" flanneld"如果没有运行,则运行并发送警报。
但是,由于任何Pod /容器都有自己的进程名称空间,我似乎无法运行可以访问主机进程列表/树的容器。我试图用#34;特权来运行一个容器:true"但没有运气。
有没有办法在Kubernetes上运行有权访问主机进程列表/树的容器?
或者,是否有更好的方法来做我想做的事情?最好不要直接在CoreOS系统上安装软件,而是使用容器/ Pod。
答案 0 :(得分:1)
我发现这样做的一种方法是安装主机' / proc在容器上,例如" -v / proc:/ hostproc"然后定期浏览/ hostproc下列出的所有进程号并验证(例如)" flanneld"那里有一个。
答案 1 :(得分:1)
为什么不自己使用systemd并确保当法兰绒处理(服务)死亡/重启时你会收到电子邮件,webhook触发或其他一些事件?
您可以轻松地在cloud-config中为systemd单元创建drop-ins,就像您经常使用默认的flannel配置一样,根据需要增加默认服务文件。
- name: flanneld.service
command: start
drop-ins:
- name: 01-somedropin.conf
content: |
[Service]
ExecStartPre=-/usr/bin/somecommand