我试图启动一个通过以另一个用户身份运行多个命令来启动其进程的容器。这些命令使用su
执行。我首先想到这是存储后端的一个问题,因为容器是在devicemapper上构建的,但是在aufs上运行,但是当我使用docker run时容器正确启动。我也认为这是容器有特权的问题,但我已经采取了在群集上运行特权容器所需的步骤,并且将privileged: true
标志添加到了我的ReplicationController定义中。任何帮助表示赞赏。使用su时无法打开会话
库贝V1
泊坞1.7.0
Mesos 0.23.0
编辑:所以一些故障排除后,看来我的问题是,Kubernetes不正确的容器设置特权。即使我有--allow特权=真我的API服务器组,并从我ReplicationController下面的代码片段:
spec:
containers:
- name: oracledb
image: bradams/devops:oracle-test
privileged: true
不知道还有什么我应该在这里做。
有些事情可以帮助回答你的问题:如果直接在你的某个节点上使用docker启动,容器是否按预期运行?如果你用这个命令交互地启动一个Pod:kubectl run -i --tty - sh;那么你能够输入su命令并让它们工作吗? –
第一点,我已经试过了,是的,它按预期工作。第二点,我会给出一个答案并报告回来。 – bradams
所以第二个选项不起作用。环顾四周,我认为这可能是一个文件限制问题,但改变它并没有任何效果。我想也许Kubernetes没有正确地将容器设置为特权。在这一点上,我想不出任何其他答案。 – bradams