11.6. 监控 Red Hat OpenShift 的 External Secrets Operator


默认情况下,Red Hat OpenShift 的 External Secrets Operator 会公开 Operator 和操作对象的指标。您可以使用 Prometheus Operator 格式将 OpenShift Monitoring 配置为收集这些指标。

11.6.1. 启用用户工作负载监控

您可以通过在集群中配置用户工作负载监控来启用对用户定义的项目的监控。如需更多信息,请参阅"为用户定义的项目设置指标集合"。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 创建 cluster-monitoring-config.yaml YAML 文件:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml: |
        enableUserWorkload: true
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令来应用 ConfigMap

    $ oc apply -f cluster-monitoring-config.yaml
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令,验证用户工作负载的监控组件是否在 openshift-user-workload-monitoring 命名空间中运行:

    $ oc -n openshift-user-workload-monitoring get pod
    Copy to Clipboard Toggle word wrap

    输出示例

    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          25h
    Copy to Clipboard Toggle word wrap

    prometheus-operatorprometheus-user-workloadthanos-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。
  • 您已启用了用户工作负载监控。

流程

  1. 将 Operator 配置为将 HTTP 用于 metrics 服务器。HTTPS 默认启用。

    1. 运行以下命令,为 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"}]}}}'
      Copy to Clipboard Toggle word wrap
    2. 要验证 External Secrets Operator pod 是否已重新部署,并且为 METRICS_BIND_ADDRESSMETRICS_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
      Copy to Clipboard Toggle word wrap

      以下示例显示 METRICS_BIND_ADDRESSMETRICS_SECURE 已更新:

      # deployments/external-secrets-operator-controller-manager, container manager
      METRICS_BIND_ADDRESS=:8080
      METRICS_SECURE=false
      Copy to Clipboard Toggle word wrap
  2. 使用 kubernetes.io/service-account.name 注解创建 Secret 资源,以注入与指标服务器进行身份验证所需的令牌。

    1. 创建 secret-external-secrets-operator.yaml YAML 文件:

      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
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令来创建 Secret 资源:

      $ oc apply -f secret-external-secrets-operator.yaml
      Copy to Clipboard Toggle word wrap
  3. 创建授予访问指标权限所需的 ClusterRoleBinding 资源:

    1. 创建 clusterrolebinding-external-secrets.yaml YAML 文件:

      以下示例显示了 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
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令来创建 ClusterRoldeBinding 自定义资源:

      $ oc apply -f clusterrolebinding-external-secrets.yaml
      Copy to Clipboard Toggle word wrap
  4. 如果使用默认 HTTPS,请创建 ServiceMonitor CR:

    1. 创建 servicemonitor-external-secrets-operator-https.yaml YAML 文件:

      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
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令来创建 ServiceMonitor CR:

      $ oc apply -f servicemonitor-external-secrets-operator-https.yaml
      Copy to Clipboard Toggle word wrap
  5. 如果配置为使用 HTTP,请创建 ServiceMonitor CR:

    1. 创建 servicemonitor-external-secrets-operator-http.yaml YAML 文件:

      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
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令来创建 ServiceMonitor CR:

      $ oc apply -f servicemonitor-external-secrets-operator-http.yaml
      Copy to Clipboard Toggle word wrap

      创建 ServiceMonitor CR 后,用户工作负载 Prometheus 实例从 Operator 开始指标集合。收集的指标使用 job="external-secrets-operator-controller-manager-metrics-service" 标记。

验证

  1. 在 OpenShift Container Platform web 控制台中进入到 Observe Targets
  2. 在 Label 过滤字段中,输入以下标签来过滤每个操作对象的指标目标:

    $ service=external-secrets-operator-controller-manager-metrics-service
    Copy to Clipboard Toggle word wrap
  3. 确认 Status 列显示 external-secrets-operatorUp

作为集群管理员,或者作为具有查看所有命名空间权限的用户,您可以使用 OpenShift Container Platform Web 控制台或命令行界面(CLI)查询 Operator 指标。如需更多信息,请参阅"访问指标"。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 您已为 Red Hat OpenShift 安装了 External Secrets Operator。
  • 您已通过创建一个 ServiceMonitor 对象来启用监控和指标集合。

流程

  1. 在 OpenShift Container Platform web 控制台中进入到 Observe Metrics
  2. 在查询字段中,输入以下 PromQL 表达式来查询 Red Hat OpenShift 指标的外部 Secrets Operator:

    {job="external-secrets-operator-controller-manager-metrics-service"}
    Copy to Clipboard Toggle word wrap

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。
  • 您已启用了用户工作负载监控。

流程

  1. 创建授予访问指标权限所需的 ClusterRoleBinding 资源:

    1. 创建 clusterrolebinding-external-secrets.yaml YAML 文件:

      以下示例显示了 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
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令来创建 ClusterRoldeBinding 自定义资源:

      $ oc apply -f clusterrolebinding-external-secrets.yaml
      Copy to Clipboard Toggle word wrap
  2. 创建 ServiceMonitor CR:

    1. 创建 servicemonitor-external-secrets.yaml YAML 文件:

      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
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令来创建 ServiceMonitor CR:

      $ oc apply -f servicemonitor-external-secrets.yaml
      Copy to Clipboard Toggle word wrap

      创建 ServiceMonitor CR 后,用户工作负载 Prometheus 实例从 Red Hat OpenShift 操作对象的 External Secrets Operator 开始指标集合。收集的指标使用 job="external-secrets"job="external-secrets-cainjector"job="external-secrets-webhook" 标记。

验证

  1. 在 OpenShift Container Platform web 控制台中进入到 Observe Targets
  2. 在 Label 过滤字段中,输入以下标签来过滤每个操作对象的指标目标:

    $ service=external-secrets
    Copy to Clipboard Toggle word wrap
    $ service=external-secrets-cert-controller-metrics
    Copy to Clipboard Toggle word wrap
    $ service=external-secrets-webhook
    Copy to Clipboard Toggle word wrap
  3. 确认 Status 列为 external-secrets, external-secrets-cert-controllerexternal-secrets-webhook 显示 Up

11.6.5. 查询 external-secrets 操作对象的指标

作为集群管理员,或者具有查看所有命名空间权限的用户,您可以使用 OpenShift Container Platform Web 控制台或命令行界面(CLI)查询 external-secrets 操作对象指标。如需更多信息,请参阅"访问指标"。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 您已为 Red Hat OpenShift 安装了 External Secrets Operator。
  • 您已通过创建一个 ServiceMonitor 对象来启用监控和指标集合。

流程

  1. 在 OpenShift Container Platform web 控制台中进入到 Observe Metrics
  2. 在查询字段中,输入以下 PromQL 表达式来为每个操作对象查询 Red Hat OpenShift operands 指标的外部 Secret Operator:

    {job="external-secrets"}
    Copy to Clipboard Toggle word wrap
    {job="external-secrets-webhook"}
    Copy to Clipboard Toggle word wrap
    {job="external-secrets-cert-controller-metrics"}
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat