【问题标题】:PersistentVolume marked as bound but invisible in containersPersistentVolume 标记为已绑定但在容器中不可见
【发布时间】:2019-01-12 21:03:18
【问题描述】:

我从 GKE(以及一般的 kubernetes)开始,我想使用 gcePersistentDisk 在 pod 上挂载一个持久卷。

我首先在 Compute Engine 中创建了一个 Persistent Disk(项目数据),然后创建了一个 PersistentVolume 和一个 PersistentVolumeClaim,如下所示:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: project-data
spec:
  storageClassName: standard
  capacity:
    storage: 20G
  accessModes:
    - ReadWriteOnce
  gcePersistentDisk:
    pdName: project-data
    fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: project-data-claim
spec:
  storageClassName: standard
  volumeName: project-data
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20G
  selector:
    matchLabels:
      app: myapp

应用此配置后,我在 GKE/Storage 中看到我的 PVC 已“绑定”,但我找不到在 myapp 中访问我的卷的方法。

我尝试通过添加以下内容在控制台中编辑部署 yaml:

volumeMounts:
- mountPath: /data
  name: project-data

...但是这个修改被控制台拒绝了(好像这种编辑是被禁止的)。

如何最终将我的 PersistentVolume 视为我的应用程序中的文件系统?

【问题讨论】:

    标签: kubernetes google-cloud-platform google-kubernetes-engine persistent-volumes persistent-volume-claims


    【解决方案1】:

    首先,PVC应该在volumes部分定义:

    volumes:
    - name: project-data
      persistentVolumeClaim: 
        claimName: project-data-claim
    

    如果直接编辑pod被拒绝,可以编辑yaml文件,然后应用:

    $ kubectl apply -f your.yaml
    

    另外,由于您在 pvc 配置中定义了 selector,我认为您应该在 pv 配置中定义 label

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多