【K8s教程】使用 Prometheus 和 Grafana 來抓取 NGINX Ingress 控制器的指標
阿新 • • 發佈:2021-08-12
參考:https://kubernetes.github.io/ingress-nginx/user-guide/monitoring/
前提條件
控制器應配置為匯出指標
helm upgrade ingress-controller ingress-nginx/ingress-nginx \ --namespace ingress-nginx \ --set controller.metrics.enabled=true \ --set-string controller.podAnnotations."prometheus\.io/scrape"="true" \ --set-string controller.podAnnotations."prometheus\.io/port"="10254"
或者:
..
controller:
metrics:
enabled: true
service:
annotations:
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
..
如果您不使用 helm ,則必須像這樣編輯清單:
服務清單:
apiVersion: v1 kind: Service metadata: annotations: prometheus.io/scrape: "true" prometheus.io/port: "10254" .. spec: ports: - name: prometheus port: 10254 targetPort: prometheus ..
DaemonSet 清單:
..
ports:
- name: prometheus
containerPort: 10254
..
部署和配置 Prometheus 伺服器說明
參考:https://github.com/kubernetes/ingress-nginx/tree/main/deploy/prometheus
部署和配置 Grafana 說明
參考:https://github.com/kubernetes/ingress-nginx/tree/main/deploy/grafana
注意事項
萬用字元入口
預設情況下,請求指標標有主機名。 當您有萬用字元域入口時,該入口將沒有指標(以防止指標在基數上爆炸)。 要在這種情況下獲取指標,您需要使用以下命令執行入口控制器 --metrics-per-host=false(您將失去主機名的標籤,但仍然有入口的標籤)。