Я пытаюсь запустить контейнер, запускающий его процесс, запустив несколько команд в качестве другого пользователя. Команды выполняются с использованием su
. Сначала я подумал, что это проблема в бэкэнде хранилища, поскольку контейнер был создан на devicemapper, но работает на aufs, но контейнер запускается правильно, когда я использую запуск докеров. Я также подумал, что это проблема с привилегией контейнера, но я уже предпринял шаги, необходимые для запуска привилегированных контейнеров в моем кластере, а также добавил флаг privileged: true
в мое определение ReplicationController. Любая помощь приветствуется.Не удается открыть сеанс при использовании su
Кубэ v1
Docker 1.7.0
Mesos 0.23.0
Edit: Таким образом, после некоторого поиска неисправностей, кажется, что моя проблема в том, что Kubernetes не устанавливает контейнер привилегированный правильно. Даже если у меня есть --allow привилегированного = истинный набор для моего apiserver и ниже фрагмент кода из моего ReplicationController:
spec:
containers:
- name: oracledb
image: bradams/devops:oracle-test
privileged: true
Не уверен, что еще я должен делать здесь.
Некоторые вопросы, которые могут помочь ответить на ваш вопрос: работает ли контейнер, как ожидается, если его начать напрямую с помощью докеров на одном из ваших узлов? Что делать, если вы запускаете Pod в интерактивном режиме с помощью этой команды: kubectl run -i -tty - sh; то можете ли вы ввести команды su и заставить их работать? –
К первому пункту я пробовал это и да, он работает так, как ожидалось. Во-вторых, я дам это выстрел и отчитаюсь. – bradams
Итак, второй вариант не работает. Оглядевшись, я подумал, что это может быть проблема с файловыми ограничениями, но изменение этого не повлияло. Я думаю, что, возможно, Kubernetes неправильно устанавливает контейнер как привилегированный. На данный момент я не могу придумать никакого другого ответа. – bradams