【问题标题】:interacting with redis-client pod on kubernetes与 kubernetes 上的 redis-client pod 交互
【发布时间】:2019-08-15 15:08:15
【问题描述】:

我在 Kubernetes 上有一个 Redis 集群。

我需要与其中一个 redis-client 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

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

谢谢

【问题讨论】:

    标签: python-2.7 kubernetes redis-cluster redis-cli


    【解决方案1】:

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

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

    就是这样

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 2019-04-24
      • 2016-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多