GKE使用GCE Persistent Disk的两类技术问题咨询
解答你的GKE与GCE永久磁盘相关问题
问题1:是否需要自行格式化磁盘?
不需要你手动格式化。当你在Pod的volumes配置里指定了fsType: ext4,并且这个GCE磁盘是全新未格式化的,Kubernetes的kubelet组件会在挂载磁盘到Pod之前自动完成格式化操作。
不过要注意两点:
- 如果磁盘之前已经被格式化过(比如曾经挂载到GCE虚拟机或其他Pod),kubelet不会重新格式化它,会直接挂载使用。
- 要是后续修改
fsType,已格式化的磁盘也不会被重新处理,所以第一次指定的文件系统类型一定要符合你的需求。
问题2:为什么kubectl get persistentvolumes返回“No Resources Found”?
这是正常情况,因为你通过gcloud创建的GCE磁盘是GCP层面的资源,Kubernetes不会自动为它生成PersistentVolume(PV)对象。
你当前的Pod配置是直接通过gcePersistentDisk字段引用GCE磁盘,这种方式属于直接使用卷,没有经过PV/PVC的抽象层,所以kubectl get pv自然看不到对应的资源。
如果想要通过Kubernetes的PV/PVC体系管理这个磁盘,你需要手动创建PV对象来关联你的GCE磁盘。示例PV配置如下:
apiVersion: v1 kind: PersistentVolume metadata: name: gke-disk-pv spec: capacity: storage: 50Gi accessModes: - ReadWriteOnce gcePersistentDisk: pdName: DISKNAME fsType: ext4
创建这个PV后,再执行kubectl get pv就能看到它了。之后你还可以创建对应的PersistentVolumeClaim(PVC),让Pod通过PVC挂载磁盘,这也是Kubernetes推荐的持久化卷管理方式。
内容的提问来源于stack exchange,提问作者user7438808
相关产品推荐
相关产品推荐

