在Kubernetes MountPath定义中定义`Mode:rw`属性容器

时间:2019-08-31 10:25:49

标签: docker kubernetes

目前,我正在对某些问题进行故障排除,并且发现使用docker run命令运行带有以下参数的容器时,会发现该问题:

-v /var/run:/var/run:rw

当我检查容器时,我会看到以下内容:

{
    "Type": "bind",
    "Source": "/var/run",
    "Destination": "/var/run",
    "Mode": "rw",
    "RW": true,
    "Propagation": "rprivate"
}

我无法在Pod的MountPaths / Volume定义中找到设置“ Mode”:“ rw” 的方法。

我正在使用:

    volumeMounts:
    - mountPath: /var/run
      name: var-run-mount

  volumes:
  - name: var-run-mount
    hostPath:
      path: /var/run

当我检查容器时,我得到了:

        {
            "Type": "bind",
            "Source": "/var/run",
            "Destination": "/var/run",
            "Mode": "",
            "RW": true,
            "Propagation": "rprivate"
        },

我尝试了不同的组合和MountPropragation,但是没有人帮助实现我想要的功能,也没有人能够定义“ Mode”属性。

https://kubernetes.io/docs/concepts/storage/volumes/#hostpath

有人知道是否可以定义吗?

3 个答案:

答案 0 :(得分:1)

检出access modes个kubernetes永久卷。

您可以为accessModes: ReadWriteOnce卷设置hostPath

注意: 不幸的是,hostPath卷仅支持ReadWriteOnce accessMode,其他模式如ReadOnlyMany,{{1 }},如表中的here所述。

您需要:

  • 首先创建here所提到的ReadWriteMany
  • 然后按照here所述创建hostPath PersistentVolume
  • 最后根据提及的here创建指向该hostPath卷资源的Pod。

希望这会有所帮助。

答案 1 :(得分:0)

在此Kub Documentation链接中查看“持久卷的访问模式”属性。

它将定义如何访问外部存储环境。

答案 2 :(得分:0)

非常感谢,我已经尝试过了,但是没有按预期工作。我得到了相同的结果。

根据文档HostPath听起来,我想知道在这种情况下是否有更好的存储插件可以使用。

但是,当在 volumeMounts 级别指定 readOnly 标志时,例如,我发现了一些有趣的地方。 :

        volumeMounts:
        - mountPath: /var/run
          name: var-run-mount
          readOnly: false

我可以看到 Mode 设置为“ ro”。

{
  "Type": "bind",
  "Source": "/var/run",
  "Destination": "/var/run",
  "Mode": "ro",
  "RW": true,
  "Propagation": "rprivate"
}

但是尝试相反的结果( readOnly:true )并没有得出相反的结果。 (模式:rw)