11.6.4. ServiceMonitor を使用した External Secrets Operator for Red Hat OpenShift オペランドのメトリクス収集の設定
External Secrets Operator for Red Hat OpenShift オペランドは、3 つのコンポーネントすべて (external-secrets、external-secrets-cert-controll、external-secrets-webhook) の /metrics サービスエンドポイントのポート 8080 で、デフォルトでメトリクスを公開します。Prometheus Operator によるカスタムメトリクスの収集を可能にする ServiceMonitor カスタムリソース (CR) を作成することで、external-secrets オペランドのメトリクス収集を設定できます。詳細は、「ユーザーワークロードモニタリングの設定」を参照してください。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - External Secrets Operator for Red Hat OpenShift がインストールされている。
- ユーザーワークロードモニタリングが有効になっている。
手順
メトリクスにアクセスするための権限を付与するために必要な
ClusterRoleBindingリソースを作成します。clusterrolebinding-external-secrets.yamlYAML ファイルを作成します。以下の例は
、clusterrolebinding-external-secrets.yamlファイルを示しています。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: app: external-secrets name: external-secrets-allow-metrics-access roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: external-secrets-operator-metrics-reader subjects: - kind: ServiceAccount name: external-secrets namespace: external-secrets - kind: ServiceAccount name: external-secrets-cert-controller namespace: external-secrets - kind: ServiceAccount name: external-secrets-webhook namespace: external-secrets次のコマンドを実行して、
ClusterRoldeBindingカスタムリソースを作成します。$ oc apply -f clusterrolebinding-external-secrets.yaml
ServiceMonitorCR を作成します。servicemonitor-external-secrets.yamlYAML ファイルを作成します。apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app: external-secrets name: external-secrets-metrics-monitor namespace: external-secrets spec: endpoints: - interval: 60s path: /metrics port: metrics scheme: http scrapeTimeout: 30s namespaceSelector: matchNames: - external-secrets selector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - external-secrets - external-secrets-cert-controller - external-secrets-webhook - key: app.kubernetes.io/instance operator: In values: - external-secrets - key: app.kubernetes.io/managed-by operator: In values: - external-secrets-operator次のコマンドを実行して
ServiceMonitorCR を作成します。$ oc apply -f servicemonitor-external-secrets.yamlServiceMonitorCR が作成されると、ユーザーワークロードの Prometheus インスタンスが、External Secrets Operator for Red Hat OpenShift オペランドからのメトリクス収集を開始します。収集されたメトリクスには、job="external-secrets"、job="external-secrets-cainjector"、およびjob="external-secrets-webhook"というラベルが付けられます。
検証
-
OpenShift Container Platform Web コンソールで、Observe
Targets に移動します。 Label フィルターフィールドに次のラベルを入力して、各オペランドのメトリクスターゲットをフィルタリングします。
$ service=external-secrets$ service=external-secrets-cert-controller-metrics$ service=external-secrets-webhook-
external-secrets、external-secrets-cert-controller、およびexternal-secrets-webhookの Status 列にUpが表示されていることを確認します。