k8s prometheus operator監控

prometheus-operator提供了一個自定了ServiceMonitor的CRD,讓我們更加便捷的在pod中加入prometheus監控項

ServiceMonitor主要是通過配置namespaceSelectorselector找到service,從而找到對應的metrics地址。

安裝

官方yaml 文件地址/文檔:

https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus

修改版:

SVN:\013k8s平臺安裝包\監控組件\prometheus-operator

說明

  • 更新鏡像文件爲paic路徑,本地化
  • 其中的grafana service的訪問方式 爲ClusterIP,便於訪問我們修改NodePort,後續可採用Ingress方式
  • 增加pv存儲

安裝前必看

  • 需要修改pv目錄下的nfs路徑
  • 修改ingress地址
  • node-exporter 指定node selector

自定義監控

以下是一個kubelet 的ServiceMonitor監控的例子,主要定義了prometheus抓取規則,以及selector。

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    k8s-app: kubelet
  name: kubelet
  namespace: monitoring
spec:
  endpoints:
  - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
    interval: 30s
    port: https-metrics
    scheme: https
    tlsConfig:
      insecureSkipVerify: true
  - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
    honorLabels: true
    interval: 30s
    path: /metrics/cadvisor
    port: https-metrics
    scheme: https
    tlsConfig:
      insecureSkipVerify: true
  jobLabel: k8s-app
  namespaceSelector:
    matchNames:
    - kube-system
  selector:
    matchLabels:
      k8s-app: kubelet

外部服務

比如etcd,controller-manager,kube-scheduler

  • 配置Headless Service
  • 定義外部服務的endpoint
  • 配置ServiceMonitor

容器化組件

比如kube-dns , tiller這些

  • 配置service
  • 配置ServiceMonitor

參看 安裝目錄下的k8s-component-service下文件

k8s各組件監控接口

組件 可訪問性 metrics(記錄詳細調用信息,prometheus展示)
etcd https://127.0.0.1:2379/health https://127.0.0.1:2379/metrics
apiserver http://IP:8080/healthz 可配
kube-scheduler http://IP:10251/healthz http://IP:10251/metrics
controller-manager http://127.0.0.1:10252/healthz http://127.0.0.1:10252/metrics
kubelet http://127.0.0.1:10248/healthz http://127.0.0.1:10250/metrics (10255爲read-only-port)
kube-proxy http://127.0.0.1:10256/healthz
flanneld 現有環境不支持,可配 healthz-ip/healthz-port參數
kube-dns 【容器】 分別配置dnsmasq,skydns 分別配置: dnsmasq:10254/metrics, skydns: 10255/metrics
helm-tiller 【容器】 tiller-pod-ip:44135/liveness 可配 tiller-pod-ip:44135/metrics
registry hub.cloud.pub:443 (有侷限性驗證docker pull)
docker

其中組件kube-state-metrics提供了集羣級別的狀況信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章