prometheus-operator
提供了一個自定了ServiceMonitor
的CRD,讓我們更加便捷的在pod中加入prometheus
監控項
ServiceMonitor
主要是通過配置namespaceSelector
、selector
找到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
提供了集羣級別的狀況信息。