kubernetes redis-cluster pod 通过 pod 登录使用 shell 脚本?

问题描述

目前,我正在尝试为在特定命名空间中运行的每个 pod 的 redis-cluster 备份准备一个 shell 脚本。

我想通过执行两个操作来实现它:

  1. 一一登录每个pod,然后连接redis-cli,执行BGSAVE命令。
  2. 从每个 pod 中复制一份 dump.rdb 文件并将其放在备份文件夹中。

对于第一部分,我准备了以下代码片段:

#!/bin/bash
NS=$1
for i in `cat "$NS"_POD_LIST`;
do
  echo "POD: $i";
  kubectl exec -it $i -n $NS -- bash -c "redis-cli -c BGSAVE"
  ##After BGSAVE wanted to get out of redis-cli,but it get stuck here,unable to switch to other pod
done

现在在第二部分想要将 dump.rdb 文件从每个 pod 复制到目标文件夹,但是这个执行将在 pod 之外..

SOURCE_DIR="/redis/data"
BACKUP_DIR="/pod/backup"
for i in `cat "$NS"_POD_LIST`;
do
  echo "POD: $i";
  kubectl cp $NS/$i:$SOURCE_DIR $BACKUP_DIR
done 

请让我知道这个代码片段如何实现这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)