OpenShift 3.10までのHawkular Metrics

Red HatでOpenShiftのサポートをしているid:nekopです。OpenShift 全部俺 Advent Calendar 2018 - Qiitaの10日目のエントリです。いろいろばたばたしており後追いになっています。

OpenShift 3.11のPrometheusについて書いたので、3.10までのHawkular Metricsスタックを振り返ってみましょう。

Hawkular

OpenShiftのHawkular Metricsスタックでは、heapsterとhawkular-metrics, hawkular-cassandraという3つのコンポーネントから成り立っていました。

heapsterが全ノードのメトリクスをpullし、hawkular-metricsというメトリクスサーバに転送します。hawkular-metricsはJBoss EAP上で稼働するJavaのWebアプリケーションです。hawkular-metricsはメトリクスデータをCassandraへ保存しています。

heapster -> hawkular-metrics -> hawkular-cassandra

OpenShift 3.10では、これらのPodに加えてhawkular-metrics-schemaというcassandraの初期設定のためのjobが実行されます。

OpenShiftのWebコンソールにはhawkular-metrics連携機能があり、Webコンソールから各Podのメトリクスが参照できるようになっています。メトリクスのデフォルトの保存期間は7 days、つまり一週間となっています。

f:id:nekop:20181217163832p:plain

古いバージョンではmetrics-deployerという初期設定を行うPodでセットアップを行っていましたが、OpenShift 3.6でAnsibleに変更されました。今でいうOperatorのような設定作業をAnsibleを使って行っています。Hawkular Metricsは初期のKubernetesでもそのまま動作するように作られているので、ReplicationControllerを生成するようになっています。OpenShiftのDeploymentConfigやKubernetesのDeploymentを作成しないので、今となってはちょっと扱いづらいデプロイメントになってしまっています。もちろんStatefulSetもなかったので、Cassandraを複数インスタンスにするセットアップでは、以下のようにPVCがそれぞれ設定されている複数のCassandraのRCが生成されるというStatefulSetの構成に似せたマニュアルセットアップ構成になっています。もちろんそれぞれ1 pod固定です。

rc/hawkular-cassandra-1
rc/hawkular-cassandra-2
rc/hawkular-cassandra-3

Hawkular Agentというアプリケーションのメトリクスを収集するためのコンポーネントや、Hawkular Alertingというアラートのコンポーネントも開発されていましたが、OpenShiftでは3.11でメインストリームとなったPrometheusを中心としたメトリクススタックが採用されることになりHawkular Metricsは非推奨となりました。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。