10.3. OpenShift 3.11 での Heketi メトリクスの有効化
OCP 3.11 では、Prometheus はサービスモニターを使用します。これは、Prometheus Operator によって導入される新規リソースです。サービスモニターは、すべてのストレージ namespace に対して作成する必要があり、監視するターゲットのセットを記述します。
OCP 3.11 の Prometheus で Heketi メトリクスを表示するには、以下のコマンドを実行します。
heketi-storage
サービスにアノテーションを追加します。# oc project app-storage # oc annotate svc heketi-storage prometheus.io/scheme=http # oc annotate svc heketi-storage prometheus.io/scrape=true
以下のテンプレートを使用して、openshift-monitoring namespace に
heketi-app
サービスモニターを作成します。# cat heketi-app-sm.yml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: heketi-app labels: k8s-app: heketi-app namespace: openshift-monitoring spec: endpoints: - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token interval: 30s port: heketi scheme: http targetPort: 0 namespaceSelector: matchNames: - app-storage selector: matchLabels: heketi: storage-service
ここで、namespaceSelector およびラベルは heketi-storage サービスの値と一致する必要があります。
# oc describe svc heketi-storage -n app-storage Name: heketi-storage Namespace: app-storage Labels: glusterfs=heketi-storage-service heketi=storage-service Annotations: description=Exposes Heketi service prometheus.io/scheme=http prometheus.io/scrape=true Selector: glusterfs=heketi-storage-pod Type: ClusterIP IP: 172.30.3.92 Port: heketi 8080/TCP TargetPort: 8080/TCP Endpoints: 10.128.4.12:8080 Session Affinity: None Events: <none>
正しいセレクターセットで、正しいセレクターセットを使用してサービスモニターを openshift-monitoring namespace に作成します。
# oc create -f heketi-app-sm.yml -n openshift-monitoring servicemonitor.monitoring.coreos.com "heketi-app" created
# oc get servicemonitor -n openshift-monitoring NAME AGE alertmanager 20d cluster-monitoring-operator 20d heketi-app 1m kube-apiserver 20d kube-controllers 20d kube-state-metrics 20d kubelet 20d node-exporter 20d prometheus 20d prometheus-operator 20d
- 複数の OCS クラスターがある場合、上記の手順を使用して OCS クラスターごとに 1 つのサービスモニターを作成する必要があります。
以下のコマンドを実行して、cluster-reader 権限を Prometheus に追加します。
# oc adm policy add-cluster-role-to-user cluster-reader \ system:serviceaccount:openshift-monitoring:prometheus-k8s -n \ openshift-monitoring cluster role "cluster-reader" added: "system:serviceaccount:openshift-monitoring:prometheus-k8s"
- 数分後に、Prometheus は新規サービスモニターを読み込みます。