与 Kubernetes 上的 Redis-Client Pod 交互



我在 Kubernetes 上有一个 Redis 集群。

我需要与其中一个 redis 客户端 pod 进行交互,主要是为了不时删除密钥。

我目前的做法是:

  1. 隧道 Kubernetes dashobard 到 localhost:8081

  2. 从仪表板中,执行 exec 到 redis 客户端 pod

  3. 跑步:redis-cli -h redis-master -a mypassword

  4. 删除所需的密钥,del "*my_key_name*"

我希望能够从本地 python 脚本执行此操作。使用 kubernetes for python 我可以在 redis-client pod 上执行命令:

    v1=client.CoreV1Api()
    exec_command = [
    '/bin/sh',
    '-c',
    'redis-cli -h redis-master -a mypassword']
    resp = stream(v1.connect_get_namespaced_pod_exec,"redis-client2-5889976c9b-nv99v", 'default',
              command=exec_command,
              stderr=True, stdin=False,
              stdout=True, tty=False)

我的问题是,我无法在 redis-cli 的上下文中执行命令,即我可以连接到 redis-cli 但无法向其发送命令(仅向 /bin/sh 发送命令(

有没有办法做我想做的事?

谢谢

好的,所以显然解决方案非常简单,我可以将参数传递给 redis-cli 工具以执行我想要的内容,所有这些都在一个命令中完成。 所以我做了:

exec_command = [
'/bin/sh',
'-c',
'redis-cli -h redis-master -a mypassword del *my_key_name*']

就是这样

最新更新