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
port6379
targetPort6379
name prom
port9121
targetPort9121
---
## Deployment
apiVersion apps/v1
kind Deployment
metadata
name cloud-redis
labels
app redis
spec
replicas1
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
containerPort9121
name redis
image redis5.0.8
ports
containerPort6379
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,监控界面如下