Kubernetes 数据持久化与后台任务处理实践
1. Kubernetes 中 Redis 配置与数据迁移恢复
在 Kubernetes 环境中,容器运行的 bash 命令会依据 Pod 的序号,将主配置或副本配置从挂载在 /mnt/redis-configmap
的 ConfigMap 卷复制到挂载在 /redis/conf
的共享 emptyDir 卷。具体而言,若 Pod 为 “redis - 0”,则复制 master.conf
文件;其余情况复制 replica.conf
文件。随后,主容器会将相同的 “redis - config - voulme” 挂载到 /redis/conf
,并启动 Redis 进程,使其使用 /redis/conf/redis.conf
中的配置。
在数据安全与恢复方面,很多人会担忧能否信任 Kubernetes 来保存重要数据。为了增强信心,我们可以进行以下操作:
1. 设置存储类回收策略 :默认情况下,Kubernetes 创建的卷在删除关联的持久卷声明(PVC)时会被删除,因为存储类的回收策略(reclaimPolicy)通常设为 Delete。为了保留数据,需将存储类的回收策略设置为 Retain。可以按照特定步骤将默认存储类配置为 Retain,注意此更改仅适用于更改后创建的磁盘,对于现有持久卷(PV),需手动更新。
2. 部署 Redis 并添加数据 :
- 部署