11.6. 监控 Red Hat OpenShift 的 External Secrets Operator
默认情况下,Red Hat OpenShift 的 External Secrets Operator 会公开 Operator 和操作对象的指标。您可以使用 Prometheus Operator 格式将 OpenShift Monitoring 配置为收集这些指标。
11.6.1. 启用用户工作负载监控 复制链接链接已复制到粘贴板!
您可以通过在集群中配置用户工作负载监控来启用对用户定义的项目的监控。如需更多信息,请参阅"为用户定义的项目设置指标集合"。
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。
流程
创建
cluster-monitoring-config.yamlYAML 文件:apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | enableUserWorkload: true运行以下命令来应用
ConfigMap:$ oc apply -f cluster-monitoring-config.yaml
验证
运行以下命令,验证用户工作负载的监控组件是否在
openshift-user-workload-monitoring命名空间中运行:$ oc -n openshift-user-workload-monitoring get pod输出示例
NAME READY STATUS RESTARTS AGE prometheus-operator-5f79cff9c9-67pjb 2/2 Running 0 25h prometheus-user-workload-0 6/6 Running 0 25h thanos-ruler-user-workload-0 4/4 Running 0 25hprometheus-operator、prometheus-user-workload和thanos-ruler-user-workload等 Pod 的状态必须是Running。
Red Hat OpenShift 的 External Secrets Operator 默认在 /metrics 服务端点上的端口 8443 上公开指标。您可以通过创建一个 ServiceMonitor 自定义资源 (CR) 来配置 Operator 的指标集合,以便 Prometheus Operator 收集自定义指标。如需更多信息,请参阅"配置用户工作负载监控"。
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。 - 您已为 Red Hat OpenShift 安装了 External Secrets Operator。
- 您已启用了用户工作负载监控。
流程
将 Operator 配置为将
HTTP用于 metrics 服务器。HTTPS默认启用。运行以下命令,为 Red Hat OpenShift 更新外部 Secret Operator 的订阅对象来配置
HTTP协议:$ oc -n external-secrets-operator patch subscription openshift-external-secrets-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"METRICS_BIND_ADDRESS","value":":8080"}, {"name": "METRICS_SECURE", "value": "false"}]}}}'要验证 External Secrets Operator pod 是否已重新部署,并且为
METRICS_BIND_ADDRESS和METRICS_SECURE配置的值是否已更新,请运行以下命令:$ oc set env --list deployment/external-secrets-operator-controller-manager -n external-secrets-operator | grep -e METRICS_BIND_ADDRESS -e METRICS_SECURE -e container以下示例显示
METRICS_BIND_ADDRESS和METRICS_SECURE已更新:# deployments/external-secrets-operator-controller-manager, container manager METRICS_BIND_ADDRESS=:8080 METRICS_SECURE=false
使用
kubernetes.io/service-account.name注解创建Secret资源,以注入与指标服务器进行身份验证所需的令牌。创建
secret-external-secrets-operator.yamlYAML 文件:apiVersion: v1 kind: Secret metadata: labels: app: external-secrets-operator name: external-secrets-operator-metrics-auth namespace: external-secrets-operator annotations: kubernetes.io/service-account.name: external-secrets-operator-controller-manager type: kubernetes.io/service-account-token运行以下命令来创建
Secret资源:$ oc apply -f secret-external-secrets-operator.yaml
创建授予访问指标权限所需的
ClusterRoleBinding资源:创建
clusterrolebinding-external-secrets.yamlYAML 文件:以下示例显示了
cluserrolebinding-external-secrets.yaml文件。apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: app: external-secrets-operator 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-operator-controller-manager namespace: external-secrets-operator运行以下命令来创建
ClusterRoldeBinding自定义资源:$ oc apply -f clusterrolebinding-external-secrets.yaml
如果使用默认
HTTPS,请创建ServiceMonitorCR:创建
servicemonitor-external-secrets-operator-https.yamlYAML 文件:apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app: external-secrets-operator name: external-secrets-operator-metrics-monitor namespace: external-secrets-operator spec: endpoints: - authorization: credentials: name: external-secrets-operator-metrics-auth key: token type: Bearer interval: 60s path: /metrics port: metrics-https scheme: https scrapeTimeout: 30s tlsConfig: ca: configMap: name: openshift-service-ca.crt key: service-ca.crt serverName: external-secrets-operator-controller-manager-metrics-service.external-secrets-operator.svc.cluster.local namespaceSelector: matchNames: - external-secrets-operator selector: matchLabels: app: external-secrets-operator svc: external-secrets-operator-controller-manager-metrics-service运行以下命令来创建
ServiceMonitorCR:$ oc apply -f servicemonitor-external-secrets-operator-https.yaml
如果配置为使用
HTTP,请创建ServiceMonitorCR:创建
servicemonitor-external-secrets-operator-http.yamlYAML 文件:apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: app: external-secrets-operator name: external-secrets-operator-metrics-monitor namespace: external-secrets-operator spec: endpoints: - authorization: credentials: name: external-secrets-operator-metrics-auth key: token type: Bearer interval: 60s path: /metrics port: metrics-http scheme: http scrapeTimeout: 30s namespaceSelector: matchNames: - external-secrets-operator selector: matchLabels: app: external-secrets-operator svc: external-secrets-operator-controller-manager-metrics-service运行以下命令来创建
ServiceMonitorCR:$ oc apply -f servicemonitor-external-secrets-operator-http.yaml创建
ServiceMonitorCR 后,用户工作负载 Prometheus 实例从 Operator 开始指标集合。收集的指标使用job="external-secrets-operator-controller-manager-metrics-service"标记。
验证
-
在 OpenShift Container Platform web 控制台中进入到 Observe
Targets。 在 Label 过滤字段中,输入以下标签来过滤每个操作对象的指标目标:
$ service=external-secrets-operator-controller-manager-metrics-service-
确认 Status 列显示
external-secrets-operator的Up。
11.6.3. 为 Red Hat OpenShift 查询外部 Secret Operator 的指标 复制链接链接已复制到粘贴板!
作为集群管理员,或者作为具有查看所有命名空间权限的用户,您可以使用 OpenShift Container Platform Web 控制台或命令行界面(CLI)查询 Operator 指标。如需更多信息,请参阅"访问指标"。
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。 - 您已为 Red Hat OpenShift 安装了 External Secrets Operator。
-
您已通过创建一个
ServiceMonitor对象来启用监控和指标集合。
流程
-
在 OpenShift Container Platform web 控制台中进入到 Observe
Metrics。 在查询字段中,输入以下 PromQL 表达式来查询 Red Hat OpenShift 指标的外部 Secrets Operator:
{job="external-secrets-operator-controller-manager-metrics-service"}
External Secrets Operator for Red Hat OpenShift 云算数(operands)默认在 /metrics 服务端点的端口 8080 上为所有三个组件 (external-secrets, external-secrets-cert-controll, 和 external-secrets-webhook) 公开。您可以通过创建一个 ServiceMonitor 自定义资源(CR)来为 external-secrets 操作对象配置指标集合,以便 Prometheus Operator 收集自定义指标。如需更多信息,请参阅"配置用户工作负载监控"。
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。 - 您已为 Red Hat OpenShift 安装了 External Secrets Operator。
- 您已启用了用户工作负载监控。
流程
创建授予访问指标权限所需的
ClusterRoleBinding资源:创建
clusterrolebinding-external-secrets.yamlYAML 文件:以下示例显示了
cluserrolebinding-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.yaml创建
ServiceMonitorCR 后,用户工作负载 Prometheus 实例从 Red Hat OpenShift 操作对象的 External Secrets Operator 开始指标集合。收集的指标使用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-
确认 Status 列为
external-secrets,external-secrets-cert-controller和external-secrets-webhook显示Up。
11.6.5. 查询 external-secrets 操作对象的指标 复制链接链接已复制到粘贴板!
作为集群管理员,或者具有查看所有命名空间权限的用户,您可以使用 OpenShift Container Platform Web 控制台或命令行界面(CLI)查询 external-secrets 操作对象指标。如需更多信息,请参阅"访问指标"。
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。 - 您已为 Red Hat OpenShift 安装了 External Secrets Operator。
-
您已通过创建一个
ServiceMonitor对象来启用监控和指标集合。
流程
-
在 OpenShift Container Platform web 控制台中进入到 Observe
Metrics。 在查询字段中,输入以下 PromQL 表达式来为每个操作对象查询 Red Hat OpenShift operands 指标的外部 Secret Operator:
{job="external-secrets"}{job="external-secrets-webhook"}{job="external-secrets-cert-controller-metrics"}