【问题标题】:Pod unable to mount same path in two volumesPod 无法在两个卷中挂载相同的路径
【发布时间】:2021-09-09 08:37:02
【问题描述】:

我是这里的新手,但是我有一个用例,我需要将相同的路径安装到两个不同的 PV,当我尝试提供相同的路径时,我的 pod 不会出现,请检查下面的安装路径

  - name : xxx
    mountPath : "/home/{username}"
    readOnly : false
static:
  pvcName:
  subPath: '{username}'
capacity: 10Gi
homeMountPath: '/home/{username}'
dynamic:
  storageClass: nfs-client
  pvcNameTemplate: claim-{username}{servername}
  volumeNameTemplate: volume-{username}{servername}
  storageAccessModes: [ReadWriteOnce]

但是在更改挂载路径后,pod 会出现没有任何问题的示例

mountPath : "/home/test/{username}"

我有什么遗漏的吗

【问题讨论】:

  • PV 是全局间隔的,所以一旦一个 pod 使用 PVC 使用该卷,它就不允许其他卷使用相同的卷,因为不允许覆盖
  • 我使用不同的 PVC 来声明不同的 PV
  • 您能否提供一个更完整的示例,以及您收到的实际错误消息(可能来自kubectl describe pod)?该 YAML 片段看起来不像 Kubernetes pod 规范的一部分。

标签: kubernetes mounted-volumes


【解决方案1】:

如果你想用多个 PVC 安装 Single POD,除非你使用 ReadWiteMany,否则这是不可能的。

但是,如果您想将多个路径挂载到 POD,可以使用单个 PVC 或多个 PVC,具体取决于用例。

单PVC单POD

apiVersion: v1
kind: Pod
metadata:
  name: my-test-pod
spec:
    containers:
    - name: mysql
      image: mysql
      env:
      - name: MYSQL_HOST
        value: "IP"
      volumeMounts:
      - mountPath: /var/lib/mysql
        name: data
        subPath: path1
    - name: nginx
      image: nginx
      volumeMounts:
      - mountPath: /var/www/html
        name: data
        subPath: path2
    volumes:
    - name: data
      persistentVolumeClaim:
        claimName: my-site-data

到单个 POD 的多个 PVC 和卷路径

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  volumes:
    # List of volumes
    - name: volume1
      < volume details, see below >
    - name: volume2
      < volume details, see below >

  containers:
    - name: mycontainer
      volumeMounts:
        # Path
        # will mount 'volume1' into /var/www/html
        - name: volume1
          mountPath: /var/www/html
        # will mount 'volume2' into /var/log
        - name: volume2
          mountPath: /var/log/

参考:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_atomic_host/7/html/getting_started_with_kubernetes/get_started_provisioning_storage_in_kubernetes#example

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2020-09-30
    • 1970-01-01
    • 2021-11-22
    • 2017-07-21
    • 1970-01-01
    相关资源
    最近更新 更多