1.首先需要部署一个redis,配置一个redis的exporter,通过redis进行暴露监控
cat redis.yaml
## Service
apiVersion: v1
kind: Service
metadata:
name: cloud-redis
labels:
app: redis
spec:
selector:
app: redis
ports:
- name: redis
port: 6379
targetPort: 6379
- name: prom
port: 9121
targetPort: 9121
---
## Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: cloud-redis
labels:
app: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9121"
labels:
app: redis
spec:
containers:
- name: redis-exporter
image: oliver006/redis_exporter:latest
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 9121
- name: redis
image: redis:5.0.8
ports:
- containerPort: 6379
resources:
limits:
cpu: 1000m
memory: 1024Mi
requests:
cpu: 100m
memory: 100Mi
kubectl apply -f redis.yaml
redis 这个 Pod 中包含了两个容器,一个就是 redis 本身的主应用,另外一个容器就是 redis_exporter
由于Redis服务的metrics接口在redis-exporter 9121上,所以我们添加了prometheus.io/port=9121这样的annotation,在prometheus就会自动发现redis了
接下来我们刷新一下Redis的Service配置
[root@root prometheus]# kubectl apply -f redis.yaml
deployment.extensions/redis unchanged
service/redis unchanged
在prometheus页面就可以看到redis的Pod信息了
在grafana导入redis的json文件Redis Cluster-1571393212519.json,监控界面如下