环境准备
首先你需要一个Kubernetes环境,可参考我写的文章:https://blog.csdn.net/m0_51510236/article/details/130842122
创建命名空间
我们可以选择以下两种方式创建命名空间,我此次创建的命名空间名字是deploy-test,可以更改,这里只做演示:
- 命令直接创建
kubectl create namespace deploy-test
- yaml创建(推荐)
apiVersion: v1 kind: Namespace metadata: name: deploy-test spec: {} status: {} • 1 • 2 • 3 • 4 • 5 • 6
准备PV和PVC
在我之前的一篇文章单中讲解了啥是PV和PVC:https://blog.csdn.net/m0_51510236/article/details/132482351
安装nfs
这篇文章直接使用,这次准备的和上次的一样是nfs来做存储,所以三台服务器都需要安装 nfs-utils:
yum install -y nfs-utils
如图三台服务器都以完成安装:
然后我们在主服务器或nfs服务器上执行这两行命令:
mkdir -p /data/nfs/redis cat >> /etc/exports << EOF /data/nfs/redis *(rw,sync,no_root_squash) EOF
这行命令是暴露 /data/nfs/redis 给nfs客户端访问的目录,用于redis数据和日志的存放目录,结下来我们需要开启nfs服务端,执行以下这行命令:
systemctl enable --now nfs-server
暴露后来查看暴露结果:
showmount -e nfs服务端地址
测试如图:
好的,接下来nfs就安装好了
准备PV
直接上yaml,可以根据提示内容修改:
apiVersion: v1 kind: PersistentVolume metadata: name: deploy-redis-nfs-pv # PV的名字 namespace: deploy-test # 命名空间 spec: capacity: storage: 1Gi # 申请的大小 accessModes: - ReadWriteMany # 访问模式为多节点读写 nfs: server: 192.168.1.160 # nfs服务器地址,注意修改为你自己的 path: /data/nfs/redis # nfs的远程目录 storageClassName: "nfs" # 存储类名字为nfs
创建结果显示:
准备PVC
直接上yaml,除了改一下名字其他的没啥好修改的:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: deploy-redis-nfs-pvc # pvc名字 namespace: deploy-test # 命名空间 spec: accessModes: - ReadWriteMany # 多节点读写 storageClassName: "nfs" # 存储类类型为nfs resources: requests: storage: 1Gi # 申请存储空间的大小 volumeName: deploy-redis-nfs-pv # 对应上面的pv名字
查看pvc的创建:
查看它两的状态(kubectl get pv,pvc -o wide -n deploy-test):
部署redis
创建redis的配置文件
首先我们先规定好配置文件内容(注意修改你的密码):
# 关闭保护模式 protected-mode no # redis链接密码 requirepass redis # 日志级别 loglevel warning # 日志存放目录 logfile "/data/redis.log" # 数据文件目录 dir /data dbfilename dump.rdb # 数据库数量 databases 16 # 保存数据库到数据文件 save 900 1 save 300 10 save 60 10000
注意将这个配置文件上传到服务器:
然后我们为这个文件创建一个configmap:
kubectl create configmap deploy-redis-config -n deploy-test --from-file=redis.conf --dry-run=client -o yaml
上面这行命令会根据 redis.conf 生成一个yaml文件:
所以创建这个configmap的yaml文件为:
apiVersion: v1 data: redis.conf: | # 关闭保护模式 protected-mode no # redis链接密码 requirepass redis # 日志级别 loglevel warning # 日志存放目录 logfile "/data/redis.log" # 数据文件目录 dir /data dbfilename dump.rdb # 数据库数量 databases 16 # 保存数据库到数据文件 save 900 1 save 300 10 save 60 10000 kind: ConfigMap metadata: name: deploy-redis-config namespace: deploy-test
创建configmap如图: