首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监控/v1服务队列资源名可能不是空的

监控/v1服务队列资源名可能不是空的
EN

Stack Overflow用户
提问于 2022-01-17 00:45:56
回答 1查看 447关注 0票数 2

我正试图按照这条指令来监测我的普罗米修斯。

https://logiq.ai/scraping-nginx-ingress-controller-metrics-using-helm-prometheus/

无论如何,我在尝试应用这个文件配置时遇到了一个问题。

代码语言:javascript
复制
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    app: kubernetes-ingress
    name: service-monitor
    namespace: nginx-ingress
spec:
  endpoints:
  - interval: 30s
    path: /metrics
    port: prometheus
  namespaceSelector:
    matchNames:
    - logiq
  selector:
    matchLabels:
      app: kubernetes-ingress

这是错误

代码语言:javascript
复制
error: error when retrieving current configuration of:

Resource: "monitoring.coreos.com/v1, Resource=servicemonitors", GroupVersionKind: "monitoring.coreos.com/v1, Kind=ServiceMonitor"

Name: "", Namespace: "default"

from server for: "servicemonitor.yaml": resource name may not be empty

我以为是关于CRD的,但我的monitoring.coreos.com已经安装好了。

先谢谢你

这是我的普罗米修斯-库贝集群角色

代码语言:javascript
复制
apiVersion: monitoring.coreos.com/v1

kind: Prometheus

metadata:

  annotations:

    meta.helm.sh/release-name: prometheus

    meta.helm.sh/release-namespace: ingress

  creationTimestamp: "2022-01-17T03:09:49Z"

  generation: 1

  labels:

    app: kube-prometheus-stack-prometheus

    app.kubernetes.io/managed-by: Helm

    chart: kube-prometheus-stack-10.1.3

    heritage: Helm

    release: prometheus

  name: prometheus-kube-prometheus-prometheus

  namespace: ingress

  resourceVersion: "2311107"

  uid: 48a57afb-2d9a-4f9f-9885-33ca66c59b16

spec:

  alerting:

    alertmanagers:

    - apiVersion: v2

      name: prometheus-kube-prometheus-alertmanager

      namespace: ingress

      pathPrefix: /

      port: web

  baseImage: quay.io/prometheus/prometheus

  enableAdminAPI: false

  externalUrl: http://prometheus-kube-prometheus-prometheus.ingress:9090

  listenLocal: false

  logFormat: logfmt

  logLevel: info

  paused: false

  podMonitorNamespaceSelector: {}

  podMonitorSelector:

    matchLabels:

      release: prometheus

  portName: web

  probeNamespaceSelector: {}

  probeSelector:

    matchLabels:

      release: prometheus

  replicas: 1

  retention: 10d

  routePrefix: /

  ruleNamespaceSelector: {}

  ruleSelector:

    matchLabels:

      app: kube-prometheus-stack

      release: prometheus

  securityContext:

    fsGroup: 2000

    runAsGroup: 2000

    runAsNonRoot: true

    runAsUser: 1000

  serviceAccountName: prometheus-kube-prometheus-prometheus

  serviceMonitorNamespaceSelector: {}

  serviceMonitorSelector:

    matchLabels:

      release: prometheus

  version: v2.21.0
EN

回答 1

Stack Overflow用户

发布于 2022-01-17 03:48:42

对于k8s资源,metadata.name是一个required字段。在应用之前,必须在资源YAML中提供metadata.name

对于metadata.namespace,如果不提供它,则默认为default命名空间。

我认为在namenamespace字段之前有一些不需要的前导空间。

代码语言:javascript
复制
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: service-monitor
  namespace: nginx-ingress
  labels:
    app: kubernetes-ingress
spec:
  endpoints:
  - interval: 30s
    path: /metrics
    port: prometheus
  namespaceSelector:
    matchNames:
    - logiq
  selector:
    matchLabels:
      app: kubernetes-ingress

更新:

在您的Prometheus CR中,您有serviceMonitorSelector集。

代码语言:javascript
复制
spec:
  serviceMonitorSelector:
    matchLabels:
      release: prometheus

将这些标签添加到serviceMonitor CR中。

代码语言:javascript
复制
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: service-monitor
  namespace: nginx-ingress
  labels:
    app: kubernetes-ingress
    release: prometheus

或者,您也可以从Prometheus端更新serviceMonitorSelector

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70735431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档