Kubernetes (1.10) mountPropagation:双向不起作用。

Kubernetes (1.10) mountPropagation: Bidirectional not working.

我正在创建一个 volumeMount 设置为 mountPropagation: Bidirectional 的 pod。创建后,容器将使用 "Propagation": "rprivate" 安装卷。

从 k8s docs 我预计 mountPropagation: Bidirectional 会导致 rshared

的卷挂载传播

如果我直接用 docker 启动容器,这是可行的。

一些信息:

部署 Yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test
spec:
  selector:
    matchLabels:
      app: test
  strategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - image: gcr.io/google_containers/busybox:1.24
        command:
          - sleep
          - "36000"
        name: test
        volumeMounts:
        - mountPath: /tmp/test
          mountPropagation: Bidirectional
          name: test-vol
      volumes:
      - name: test-vol
        hostPath:
          path: /tmp/test

来自 docker inspect

的结果挂载部分
"Mounts": [
            {
                "Type": "bind",
                "Source": "/tmp/test",
                "Destination": "/tmp/test",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }…..

相当于Docker运行

docker run --restart=always --name test -d --net=host --privileged=true -v /tmp/test:/tmp/test:shared gcr.io/google_containers/busybox:1.24

使用 docker run

创建时 docker inspect 的结果安装部分
"Mounts": [
            {
                "Type": "bind",
                "Source": "/tmp/test",
                "Destination": "/tmp/test",
                "Mode": "shared",
                "RW": true,
                "Propagation": "shared"
            }...

kubectl版本的输出

Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.1", GitCommit:"d4ab47518836c750f9949b9e0d387f20fb92260b", GitTreeState:"clean", BuildDate:"2018-04-13T22:29:03Z", GoVersion:"go1.9.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.1", GitCommit:"d4ab47518836c750f9949b9e0d387f20fb92260b", GitTreeState:"clean", BuildDate:"2018-04-12T14:14:26Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

使用rke version v0.1.6

这是 https://github.com/kubernetes/kubernetes/pull/62633

1.10.3 中修复的回归