OpenShift 3.11のPrometheusを眺める

Red HatでOpenShiftのサポートをしているid:nekopです。OpenShift 全部俺 Advent Calendar 2018 - Qiitaの7日目のエントリです。12/7は保育園の保育参観で有給休暇だったので後追いで書いていきます。

OpenShift 3.11では今までのHawkular Metricsというメトリクススタックが非推奨となり、Prometheusに変わっています。

f:id:nekop:20181210124451p:plain:w160

https://docs.openshift.com/container-platform/3.11/install_config/prometheus_cluster_monitoring.html

ドキュメントに構成が図解されていますが、もう少し詳しく見ていきましょう。

f:id:nekop:20181210124650p:plain

PrometheusはOperatorを利用したセットアップとなっていますが、OpenShift Container Platform Cluster Monitoring Operator (CMO)という親玉のOperatorが居て、このCMOがPrometheus Operator (PO)も管理する、という少し特徴的な多段Operator構成となっています。

とりあえずoc get deploy,deploymentconfig,statefulset,daemonset,podしてみましょう。

$ oc get deploy,deploymentconfig,statefulset,daemonset,pod
NAME                                                DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/cluster-monitoring-operator   1         1         1            1           43d
deployment.extensions/grafana                       1         1         1            1           43d
deployment.extensions/kube-state-metrics            1         1         1            1           43d
deployment.extensions/prometheus-operator           1         1         1            1           43d

NAME                                 DESIRED   CURRENT   AGE
statefulset.apps/alertmanager-main   3         3         5d
statefulset.apps/prometheus-k8s      2         2         5d

NAME                                 DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
daemonset.extensions/node-exporter   7         7         7         7            7           beta.kubernetes.io/os=linux   43d

NAME                                               READY     STATUS    RESTARTS   AGE
pod/alertmanager-main-0                            3/3       Running   0          5d
pod/alertmanager-main-1                            3/3       Running   0          5d
pod/alertmanager-main-2                            3/3       Running   0          5d
pod/cluster-monitoring-operator-7ccd78b775-2rwg8   1/1       Running   0          5d
pod/grafana-55f5c54769-qrhtm                       2/2       Running   0          5d
pod/kube-state-metrics-58669f7d5-x926v             3/3       Running   0          5d
pod/node-exporter-58sc2                            2/2       Running   0          5d
pod/node-exporter-bc4qv                            2/2       Running   0          5d
pod/node-exporter-dwqz7                            2/2       Running   0          5d
pod/node-exporter-jp6bn                            2/2       Running   0          5d
pod/node-exporter-pf6v2                            2/2       Running   0          5d
pod/node-exporter-pf7qx                            2/2       Running   0          5d
pod/node-exporter-rvxfx                            2/2       Running   0          5d
pod/prometheus-k8s-0                               4/4       Running   0          5d
pod/prometheus-k8s-1                               4/4       Running   0          5d
pod/prometheus-operator-5b789585d7-7676n           1/1       Running   0          5d

deployが4種、PrometheusのStatefulSetが2 pods, AlertManagerのStatefulSetが3 pods、node-exporterのDaemonSetという構成です。

ちなみにこういった初見でネームスペースのデプロイメントを調べる際にCRDなどを含むネームスペース内の全リソースをリストして眺めるには以下のコマンドが利用できますが、出力がとても長い、かつその中にさらっと重要な情報が一行、という感じになるので読むのにちょっと慣れが必要です。

oc api-resources --namespaced --no-headers | awk '{print $1}' | paste -sd, | xargs oc get 2>/dev/null

明日はOperatorの設定や動作ついてもう少し詳しく見ていきましょう。

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