背景
Kubernetesを用いる場合にはPodは割とカジュアルに再作成されるため、Podの死活を監視したくなる場合がある。
特に開発の途上や小さいチームにおいては、きっちりとした監視を運用していくハードルの観点や、技術習得観点を考慮し、簡素な監視が必要になるタイミングがある。
そうした場合に、Prometheusなどのデファクトな監視基盤ではなく、一時的なつなぎとして使用できる簡易的な監視ツールが欲しくなった。
それと、純粋にGoでプログラムを書いたことがなかったため、簡素なツールを作る目的でPodの監視ツールを作成した。
PodMonitoringToolの概要
PodMonitoringToolは正常でないPodを見つけたときにTeamsにアラートメッセージを送ってくれるツールである。
Teamsに通知されたメッセージを確認することで、休日でも夜中でも運用者がすぐにKubernetesの元に駆けつけることができる。
Podの正常性については、例えば下記のようにPod内コンテナがReadyになっていない場合や、PodのステータスがRunningでない場合などが想定される。
こうした場合に、Teamsにて異常のあるPodについて通知を受け取ることができる。
上記にまとめていないが、監視間隔の設定やPod正常時にも一報をくれるHeartbeat設定なども実装した。
詳細は、Githubリポジトリ側に記載した。
まとめ
- Prometheusなどのデファクトなツールがある一方で、簡素なツールが役立つケースがあることについて説明した。
- Kubernetes上のPodの正常性を簡易的に監視するツールを作成し、Podの障害時にTeamsにてアラートを受け取れることを確認した。