在 Kubernetes (k8s) 上进行实战部署,首先我们从单机 Redis 开始。Redis 是一款基于内存存储的键值数据库,适用于多种场景,如会话共享、消息队列、计数器和缓存等。在k8s中,通过 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 确保数据持久性,即使 Redis Pod 挂掉,数据也不会丢失,因为会自动重建 Pod 并挂载数据。为了部署 Redis,首先需要构建 Redis 镜像,并验证其运行正常。接着,创建 PV 和 PVC,将数据存储在 NFS 服务器上。在部署 Redis 服务时,可能会遇到端口范围限制,需要修改kube-apiserver服务的配置。验证数据读写和Pod重建后的数据一致性,确保数据不丢失。接下来转向 Redis 集群部署,Redis Cluster 使用 StatefulSet 和 PV/PVC 管理数据。通过 CRC16 计算和模运算,保证数据分布在多个节点上,实现高可用。在集群初始化时,通过创建临时容器安装工具,并将master节点指定给slave节点。验证集群状态,确认数据读写和高可用性。为了测试高可用性,可以将 Redis 镜像更改为本地存储,并模拟 master 节点故障。当 master 被删除时,对应的 slave 自动提升为 master,显示集群的健壮性。最后,恢复服务后,确认新的 master 节点加入并恢复原有的从属关系。