与 kubernetes 上的 redis-client pod 交互
interacting with redis-client pod on kubernetes
我在 Kubernetes 上有一个 Redis 集群。
我需要与其中一个 redis-client pods 进行交互,主要是为了不时删除密钥。
我目前的做法是:
将 Kubernetes dashobard 隧道连接到 localhost:8081
从仪表板执行 exec 到 redis 客户端 pod
运行: redis-cli -h redis-master -a mypassword
正在删除所需的密钥,del "*my_key_name*"
我希望能够从本地 python 脚本执行此操作。
将 kubernetes 用于 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*']
就是这样
我在 Kubernetes 上有一个 Redis 集群。
我需要与其中一个 redis-client pods 进行交互,主要是为了不时删除密钥。
我目前的做法是:
将 Kubernetes dashobard 隧道连接到 localhost:8081
从仪表板执行 exec 到 redis 客户端 pod
运行:
redis-cli -h redis-master -a mypassword
正在删除所需的密钥,
del "*my_key_name*"
我希望能够从本地 python 脚本执行此操作。 将 kubernetes 用于 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*']
就是这样