k8s部署Prometheus抓取pods的metrics
1.暴露pods给Prometheus抓取spec:replicas: __app_replicas__template:metadata:annotations:prometheus.io/scrape: 'true'prometheus.io/path: '/metrics'prometheus.io/port: '9146'2.部署Prometheus---apiVersion: rbac.
·
1.暴露pods给Prometheus抓取
spec:
replicas: __app_replicas__
template:
metadata:
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/metrics'
prometheus.io/port: '9146'
2.部署Prometheus
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: prometheus
rules:
- apiGroups: [""]
resources:
- nodes
- nodes/proxy
- services
- endpoints
- pods
verbs: ["get", "list", "watch"]
- apiGroups:
- extensions
resources:
- ingresses
verbs: ["get", "list", "watch"]
- nonResourceURLs: ["/metrics"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: prometheus
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: prometheus
subjects:
- kind: ServiceAccount
name: default
namespace: default
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: prometheus
labels:
app: prometheus
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: prometheus
spec:
serviceAccountName: default
containers:
- name: prometheus
image: image.url
command:
- "/bin/prometheus"
ports:
- containerPort: 9090
args:
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus"
- "--storage.tsdb.retention.time=24h"
volumeMounts:
- mountPath: /etc/prometheus/
name: config-volume
restartPolicy: Always
volumes:
- name: config-volume
configMap:
name: prometheus-configuration
---
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-configuration
data:
prometheus.yml: |-
global:
scrape_interval: 5s
external_labels:
monitor: 'my-monitor'
scrape_configs:
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: pod_name
- regex: '(controller_revision_hash|job)'
action: labeldrop
- source_labels: [name]
regex: '.*/(.*)$'
replacement: $1
target_label: webapp
---
apiVersion: v1
kind: Service
metadata:
name: prometheus
spec:
type: NodePort
ports:
- port: 9090
targetPort: 9090
nodePort: 31090
selector:
app: prometheus
更多推荐
已为社区贡献3条内容
所有评论(0)