K8S部署Redis Exporter
myluzh 发布于 阅读:878 Kubernetes
1、部署redis exporter
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-exporter
namespace: base
labels:
app: redis-exporter
spec:
replicas: 1
selector:
matchLabels:
app: redis-exporter
template:
metadata:
labels:
app: redis-exporter
spec:
containers:
- name: redis-exporter
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/oliver006/redis_exporter:v1.72.1
args:
- -redis.addr=redis://redis.base.svc.cluster.local:6379 # redis地址
- -redis.password=w7dYHcf72s1j138XsG # redis密码
ports:
- containerPort: 9121
name: metrics
resources:
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 50m
memory: 50Mi
imagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:
name: redis-exporter
namespace: base
labels:
app: redis-exporter
spec:
selector:
app: redis-exporter
ports:
- protocol: TCP
port: 9121
targetPort: 9121
name: metrics
2、配置servermonitor
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: redis-monitor
namespace: monitoring
labels:
app: redis-exporter
spec:
jobLabel: redis
endpoints:
- port: metrics # 对应 Service 中定义的端口名称
interval: 15s
scrapeTimeout: 10s
selector:
matchLabels:
app: redis-exporter
namespaceSelector:
any: false
matchNames:
3、配置prometheus权限,确保能访问到其他命名空间
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: prometheus-k8s-readonly
subjects:
- kind: ServiceAccount
name: prometheus-k8s
namespace: monitoring # 指定命名空间为 monitoring
roleRef:
kind: ClusterRole
name: prometheus-k8s-readonly # 绑定的角色
apiGroup: rbac.authorization.k8s.io
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: prometheus-k8s-readonly
rules:
# 允许访问所有的 API Group 和资源
- apiGroups: ["*"]
resources: ["*"]
verbs: ["get", "list", "watch"]
4、grafana面板
https://github.com/oliver006/redis_exporter/blob/master/contrib/redis-mixin/dashboards/redis-overview.json
参考链接:https://github.com/oliver006/redis_exporter/