взаимодействовать с модулем Redis-клиента на Kubernetes - PullRequest
0 голосов
/ 25 марта 2019

У меня есть кластер Redis в Kubernetes.

Мне нужно взаимодействовать с одним из модулей Redis-клиента, главным образом, чтобы время от времени удалять ключи.

В настоящее время я делаю это так:

  1. Туннель Kubernetes dashobard к localhost: 8081

  2. Из панели инструментов выполните exec в модуле клиента redis

  3. Работа: redis-cli -h redis-master -a mypassword

  4. Удаление необходимого ключа, del "*my_key_name*"

Iхочу быть в состоянии сделать это из локального сценария Python.Используя kubernetes для python, я могу выполнять команды на модуле redis-client:

    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)

Есть ли способ сделать то, что я хочу?

Спасибо

1 Ответ

0 голосов
/ 25 марта 2019

Хорошо, так что, очевидно, решение довольно простое, я могу передать параметры в инструмент redis-cli, чтобы выполнить то, что я хочу, и все это в одной команде. так я и сделал:

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

и это все

...