使用 su 时无法打开会话

Cannot open session when using su

我正在尝试启动一个容器,该容器通过 运行以另一个用户身份执行多个命令来启动其进程。使用 su 执行命令。我首先认为这是存储后端的问题,因为容器是在 devicemapper 上构建的,但是 运行 在 aufs 上构建的,但是当我使用 docker 运行 时容器正确启动。我还认为这是特权容器的问题,但我已经采取了在我的集群上 运行 特权容器所需的步骤,并在我的 ReplicationController 定义中添加了 privileged: true 标志.感谢任何帮助。

Kube v1

Docker 1.7.0

金币 0.23.0

编辑:所以在一些故障排除之后,我的问题似乎是 Kubernetes 没有正确地将容器设置为特权。尽管我为我的 apiserver 设置了 --allow-privileged=true,并且下面的代码片段来自我的 ReplicationController:

spec:
  containers:
    - name: oracledb
      image: bradams/devops:oracle-test
      privileged: true

不知道我还应该在这里做什么。

正确的语法是:

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 ... 创建 pod,那么我认为这个问题会被捕获,并显示一条错误消息。