commentTweetPocketクラスター構築・更新が一通り実装できてきて、Productionを見据えたあれこれを進めるのだが、まずはモニタリング、特にメトリクスまわりからやっていく。以前調べたりもしたが、再度基本的な所を調べておく。Resourcesを見ると、アプリケーションのメトリクスはリソースメトリクスパイプラインとフルメトリクスパイプラインに分かれている。topやHorizontalPodAutoscalerで使われるもので、kubeletに内蔵されているcAdvisorが取得するメトリクスをmetrics-serverに集約、KubernetesのAPIから利用できるようにするのが一般的なようだ。以前だとheapsterがクラスターレベルで分析・監視をするためのソフトウェアとして使われていたと思うが、現在EOLであった。基本的なCPUやメモリ、HPAメトリクスはmetrics-server、汎用的なモニタリングはPrometheusベース、イベントトランスファー(これは調べていない)はeventrouterという風に、用途別に後継ソフトウェアがあるようだ。それならば、ということでまずはmetrics-serverを試す。kube-apiserverのオプション・metrics-server双方にオプションの追加が必要で手こずったが、NodeとPodのtopが見えることを確認した。手元でパッと見るのによさそう。8MiHPAはkube-controllermanagerにオプションを追加し、HorizontalPodAutoscalerリソースを作成すれば動く。反応が鈍いと感じるが、ここは設定で変わるのだろうか?Prometheusとの連携も気になるところ。metrics-serverに触れたので、次はPrometheusとGrafanaを見る。入れるだけならyamlでシュッと入れられる。Labsというところからインポートすることができることがわかった。Grafanaが結構いいかんじぽい。Grafanaというプラグインがあり、Kubernetesをデータソースとして扱い、Cluster・Node・Podなどのダッシュボードがすぐ使えるようになることがわかった。Grafana自体にアラート機能もあるようで、可視化とアラートをGrafanaに集約するのがいいのかな、とも思ったりした。PrometheusのAlertManagerとどちらがいいんだろう。Pluginですぐにメトリクスが見える状態になっているとかなり便利そうじゃないかなあ。迷ったら「スティール・ボール・ラン」を読め。