编写yaml文件


[root@holymaster1 redis_yaml]# cat redis.yaml  

apiVersion: apps/v1

kind: Deployment

metadata:

 name: redis

 namespace: kube-system

spec:

 replicas: 1

 selector:

   matchLabels:

     app: redis

 template:

   metadata:

     labels:

       app: redis

   spec:

     containers:

     - name: redis

       image: redis:4

       resources:

         requests:

           cpu: 100m

           memory: 100Mi

       ports:

       - containerPort: 6379

     - name: redis-exporter

       image: oliver006/redis_exporter:latest

       resources:

         requests:

           cpu: 100m

           memory: 100Mi

       ports:

       - containerPort: 9121

---

kind: Service

apiVersion: v1

metadata:

 name: redis

 namespace: kube-system

 annotations:

   prometheus.io/scrape: "true"

   prometheus.io/port: "9121"

spec:

 selector:

   app: redis

 ports:

 - name: redis

   port: 6379

   targetPort: 6379

 - name: prom

   port: 9121

   targetPort: 9121



执行以上yaml文件

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@holymaster1 redis_yaml]# kubectl apply -f redis.yaml  

deployment.apps/redis unchanged

service/redis created

Prometheus监控redis数据库_Redis