prometheus如何实现对kube-scheduler/kube-controller-manager的监控(两种方式)

本文介绍了两种使用Prometheus监控kube-scheduler和kube-controller-manager的方法。方法一是通过修改yaml文件,确保Prometheus能正确抓取数据;方法二是通过Java代码直接获取监控信息。针对方法一,需注意kube-scheduler的监听地址需设置为0.0.0.0以允许外部访问。完成配置后,监控目标会在Prometheus的endpoint中显示。
摘要由CSDN通过智能技术生成

方法一:通过prometheus监控

对kube-scheduler的监控

yaml文件

apiVersion: v1
kind: Service
metadata:
  namespace: kube-system
  name: kube-scheduler-prometheus-discovery
  labels:
    k8s-app: kube-scheduler
  annotations:
    prometheus.io/scrape: 'true'
spec:
  selector:
    component: kube-scheduler
  type: ClusterIP
  clusterIP: None
  ports:
  - name: http-metrics
    port: 10251
    targetPort: 10251
    protocol: TCP

执行命令

kubectl create -f prometheus-KubeSchedulerService.yaml

创建成功后,在endpoint中已经可以找到这个target了,但是抓取数据出错了(down状态)。
这是因为kube-scheduler组件默认绑定在127.0.0.1上,这里想通过节点ip去访问,所以访问被拒绝了,只要把kube-scheduler绑定地址修改为0.0.0.0即可满足要求。
由于kube-scheduler是以静态Pod运行在集群中的,所以只要修改静态Pod目录

监控 Kubernetes 中的所有资源,可以使用 Prometheus Operator 来创建和管理 Prometheus 和相关的资源。下面是一个示例 Prometheus Operator 配置文件,用于监控 Kubernetes 中的所有资源: ```yaml apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: prometheus spec: replicas: 2 serviceAccountName: prometheus serviceMonitorSelector: matchLabels: app: kube-prometheus-stack ruleSelector: matchLabels: app: kube-prometheus-stack alerting: alertmanagers: - namespace: monitoring name: alertmanager port: web resources: requests: memory: 400Mi storage: volumeClaimTemplate: spec: storageClassName: standard accessModes: ["ReadWriteOnce"] resources: requests: storage: 5Gi --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kube-controller-manager namespace: monitoring labels: app: kube-prometheus-stack spec: selector: matchLabels: component: kube-controller-manager endpoints: - port: https-metrics scheme: https tlsConfig: insecureSkipVerify: true - port: http-metrics --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kube-scheduler namespace: monitoring labels: app: kube-prometheus-stack spec: selector: matchLabels: component: kube-scheduler endpoints: - port: http-metrics --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kube-etcd namespace: monitoring labels: app: kube-prometheus-stack spec: selector: matchLabels: component: etcd endpoints: - port: metrics scheme: https tlsConfig: insecureSkipVerify: true --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kube-apiserver namespace: monitoring labels: app: kube-prometheus-stack spec: selector: matchLabels: component: kube-apiserver endpoints: - port: https-metrics scheme: https tlsConfig: insecureSkipVerify: true - port: http-metrics --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kube-state-metrics namespace: monitoring labels: app: kube-prometheus-stack spec: selector: matchLabels: app.kubernetes.io/name: kube-state-metrics endpoints: - port: http-metrics --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: node-exporter namespace: monitoring labels: app: kube-prometheus-stack spec: selector: matchLabels: app.kubernetes.io/name: node-exporter endpoints: - port: metrics --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kubelet namespace: monitoring labels: app: kube-prometheus-stack spec: selector: matchLabels: component: kubelet endpoints: - port: https-metrics scheme: https tlsConfig: insecureSkipVerify: true - port: cadvisor --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kube-proxy namespace: monitoring labels: app: kube-prometheus-stack spec: selector: matchLabels: app.kubernetes.io/name: kube-proxy endpoints: - port: metrics ``` 这个配置文件会创建一个 Prometheus 实例和一些 ServiceMonitor 资源,用于监控 Kubernetes 中的所有组件和节点。你可以使用 kubectl apply 命令来应用这个配置文件: ``` kubectl apply -f prometheus.yaml ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值