2016-09-23 3 views
0

いくつかのKubernetes Nodesのflanneldプロセスがクラッシュして、異常な動作を引き起こすことが知られています。私は、モニタリング/警告をセットアップして、いつflanneldがクラッシュするかを通知するようにしたいと思います。私たちは、Kubernetesを実行するための基本OSとしてCoreOSを実行しています。CoreOS Kubernetesノードプロセスを監視する方法は?

CoreOSの設計上の決定事項の1つは、基本OSに最低限のソフトウェアをインストールし、すべてをPod /コンテナで実行する必要があることです。

これを念頭に置いて、私はホストプロセスリストを監視し、常に "flanneld"という名前のプロセスが実行されていることを確認し、警告があればそれを送信したい走っていない。

しかし、独自のプロセス名前空間を持つPod/containerのため、ホストプロセスリスト/ツリーにアクセスできるコンテナを実行できないようです。私は "特権:true"を持つコンテナを実行しようとしましたが、運はありません。

ホストプロセスリスト/ツリーにアクセスできるコンテナをKubernetesで実行する方法はありますか?

また、私がやろうとしていることを実行する良い方法がありますか?好ましくは、CoreOSシステムに直接ソフトウェアをインストールするのではなく、コンテナ/ポッドを使用する。

答えて

1

これは、ホストの/ procをコンテナにマウントすることです。 "-v/proc:/ hostproc"を実行し、定期的に/ hostprocの下にリストされているすべてのプロセス番号を調べ、そこに(例えば) "flanneld"があることを確認します。

+0

これはかなり一般的なアプローチであるように思われる(例えばhttps://github.com/bhuisgen/docker-zabbix-coreos、https://stackoverflow.com/questions/29281350/how-do-i- enable-snmp-on-coreos) – srkiNZ84

1

なぜシステムを利用しないのでしょうか?フランネルプロセス(サービス)が死んだり再開したときに電子メール、Webhookが起動したり、他のイベントが発生した場合はどうしたらいいですか?

デフォルトのflannel configを使用してよく見られるように、デフォルトのサービスファイルを補強するように、クラウド構成でsystemdユニット用のドロップインを簡単に作成できます。

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

はい、それは理にかなっています。私は、ホストOS(CoreOS)の変更を避けようとしていたと思います。なぜなら、CoreOSのアップグレードで変更が "ワイプ"され、一般的にメンテナンスやバージョン管理などが必要になるからです。 ホストの上にあるポッド/コンテナでソリューションを実行して、バージョン管理/保守について心配する必要があるすべてをDockerイメージにすることが本当に必要でした。 – srkiNZ84

+0

システムを何らかの方法で消去したり、最初から再プロビジョニングしても、クラウド設定が再実行されます(CoreOSは各システムの開始時にcloud-configを再実行します)。あなたがそれをcloud-configを使って追加している限り。私は、あなたがバージョン管理でとにかく保つべきcloud-configを使用すると仮定します。だからここで問題はありません。 –

+0

ありがとうございました! CoreOSの "cloud-config"機能を認識していなかったのは、私たちの後ろにあるものかもしれません:-) – srkiNZ84

関連する問題