Используйте модуль Kubernetes для запуска скрипта на хост-узле

У меня есть Daemonset, который размещает модуль на всех узлах моего кластера. Этот модуль ищет набор условий. При их обнаружении предполагается выполнение bash-скрипта на своем узле.

В настоящее время мой модуль, который я применяю в качестве набора демонов, монтирует каталог с помощью сценария bash. Я могу обнаружить условия, которые я ищу. Когда условия обнаружены, я запускаю скрипт bash, но в итоге он работает в моем альпийском контейнере внутри моего модуля, а не на хост-узле.

В качестве простого примера того, что у меня не работает (в спецификации):

command: ["/bin/sh"]
args: ["-c", "source /mounted_dir/my_node_script.sh"]

Я хочу выполнить скрипт bash на узле, на котором работает модуль, а не внутри контейнера/модуля. Как это можно сделать?


person Striar    schedule 19.07.2019    source источник
comment
удалить исходное слово из 2-го аргумента. Это должно сработать. Также передайте аргументы этому сценарию, если это необходимо.   -  person Shudipta Sharma    schedule 19.07.2019
comment
Эй, я проверю это, когда вернусь к своему столу. Если это сработает, я дам вам знать, чтобы вы могли опубликовать ответ, и я отмечу его правильно.   -  person Striar    schedule 19.07.2019


Ответы (1)


На самом деле команда, выполняемая внутри модуля, запускается на хосте. Это контейнер (Docker), а не виртуальная машина.

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

person Ajinkya Betwar    schedule 07.11.2019