взаимодействие с модулем redis-client на кубернетах

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

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

То, как я сейчас это делаю:

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

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

  3. Бег: redis-cli -h redis-master -a mypassword

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

Я хочу иметь возможность делать это из локального скрипта 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)

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

Спасибо


person Noam    schedule 25.03.2019    source источник


Ответы (1)


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

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

и это все

person Noam    schedule 25.03.2019