知识点:
Redis 数据保存在内存里,如果死机,数据就丢了,需要做主从复制,电商用的多,适用流量大,512G内存,服务器全部插满;Orlace,mysql保存在硬盘里
面试时可以说:20台物理服务器,100个pod,3个主节点,(k8s可以在物理服务器上,也可以部署在虚拟机上,如果公司大优选物理服务器,速度更快)
一、实验环境:
master1\node1\node2还原至Prometheus+grafana配置完成
二、在node1\node2(7.183\184机器上的\root)



[root@node1 ~]# ctr -n k8s.io images import redis_exporter.tar 【node1/2节点导入redis工具的镜像】
unpacking docker.io/oliver006/redis_exporter:v1 (sha256:0285202ba9f180de1db3395198e813a210e9e1e02d700f6033a0fd053f89a01d)...done
[root@node1 ~]#
[root@node2 ~]# ctr -n k8s.io images import redis_exporter.tar 【node1/2节点导入redis工具的镜像】
unpacking docker.io/oliver006/redis_exporter:v1 (sha256:0285202ba9f180de1db3395198e813a210e9e1e02d700f6033a0fd053f89a01d)...done
[root@node2 ~]#
[root@node1 ~]# ctr -n k8s.io images import redis.tar 【node1/2节点导入redis工具的镜像】
unpacking docker.io/library/redis:4 (sha256:6e3831269af56c1eb0db48c49bdb111484c5183527c8f99782146af96f8f2293)...done
[root@node1 ~]# ctr -n k8s.io images import redis_exporter.tar
unpacking docker.io/oliver006/redis_exporter:v1 (sha256:0285202ba9f180de1db3395198e813a210e9e1e02d700f6033a0fd053f89a01d)...done
[root@node1 ~]#
[root@node2 ~]# ctr -n k8s.io images import redis.tar 【node1/2节点导入redis工具的镜像】
unpacking docker.io/library/redis:4 (sha256:6e3831269af56c1eb0db48c49bdb111484c5183527c8f99782146af96f8f2293)...done
[root@node2 ~]# ctr -n k8s.io images import redis_exporter.tar
unpacking docker.io/oliver006/redis_exporter:v1 (sha256:0285202ba9f180de1db3395198e813a210e9e1e02d700f6033a0fd053f89a01d)...done
[root@node2 ~]#
三、master1节点上导入redis镜像

[root@master1 ~]# mkdir redis
[root@master1 ~]# cd redis/
[root@master1 redis]# ls
redis.yaml
[root@master1 redis]# cat redis.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: docker.io/library/redis:4
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
- name: redis-exporter
image: oliver006/redis_exporter:v1
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 9121
---
kind: Service
apiVersion: v1
metadata:
name: redis
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9121" # Prometheus抓取redis-exporter端口
spec:
selector:
app: redis
ports:
- name: redis
port: 6379
targetPort: 6379 # Redis服务端口
- name: prom
port: 9121
targetPort: 9121 # Prometheus抓取Redis Exporter数据的端口
[root@master1 redis]#
[root@master1 redis]# kubectl apply -f redis.yaml
deployment.apps/redis created
service/redis created
[root@master1 redis]#
四、测试Prometheus监控redis是否搭建成功,网页上访问Prometheus
