我正在尝试通过以另一个用户身份运行多个命令来启动一个启动其进程的容器。命令使用su
执行。我首先想到这是存储后端的一个问题,因为容器是在devicemapper上构建的,但是在aufs上运行,但是当我使用docker run时容器正确启动。我还认为这是容器具有特权的问题,但我已经采取了必要的步骤来在我的集群上运行特权容器,并将privileged: true
标志添加到我的ReplicationController定义中。任何帮助表示赞赏。
Kube v1
Docker 1.7.0
Mesos 0.23.0
编辑:因此经过一些故障排除后,我的问题似乎是Kubernetes没有正确地将容器设置为特权。即使我为我的apiserver设置了 - allow-privileged = true ,也为我的ReplicationController设置了以下代码段:
spec:
containers:
- name: oracledb
image: bradams/devops:oracle-test
privileged: true
不确定我还应该在这做什么。
答案 0 :(得分:2)
正确的语法是:
spec:
containers:
- name: oracledb
image: bradams/devops:oracle-test
securityContext:
privileged: true
您在securityContext:
下缺少嵌套。这在v1beta3和v1之间发生了变化,并在此处记录:http://kubernetes.io/v1.0/docs/api.html#v1-conversion-tips-from-v1beta3
如果您尝试使用kubectl create --validate=true ...
创建广告连播,那么我认为会发现此问题,并显示错误消息。