Ank*_*nde 2 google-compute-engine kubernetes gce-persistent-disk
方法 1(kubernetes 卷附加到 google 永久磁盘,kubernetes 卷声明附加到 kubernetes 卷)
apiVersion: v1
kind: PersistentVolume
metadata:
name: volume-1
spec:
storageClassName: ""
capacity:
storage: 50Gi
accessModes:
- ReadWriteOnce
gcePersistentDisk:
pdName: pd-test-1
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pv-claim-1
spec:
storageClassName: ""
volumeName: volume-1
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Run Code Online (Sandbox Code Playgroud)
方法 2(Kubernetes 卷声明直接附加到 google 永久磁盘)
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pv-claim-1
spec:
volumeName: pd-test-1
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Run Code Online (Sandbox Code Playgroud)
方法3(pod直接使用google持久磁盘文档)
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /test-pd
name: test-volume
volumes:
- name: test-volume
# This GCE PD must already exist.
gcePersistentDisk:
pdName: my-data-disk
fsType: ext4
Run Code Online (Sandbox Code Playgroud)
我不确定在哪些场景下应该使用哪种方法。
三种方法之间有什么区别?如果我想在 google 永久磁盘上存储数据,我应该使用哪一种?
按照从最好到最差方法的顺序:
PersistentVolumeClaimPersistentVolumeClaim方法 3 是最糟糕的,因为你失去了可移植性。如果将 pod 移动到 GCE PD 不可用的 Kubernetes 集群,则必须使用新集群上可用的任何类型的存储来修改 pod。您不应该使用这种方法。
使用方法 1 和方法 2,您的Pod对象PersistentVolumeClaim保持可移植性,并且其中不包含特定于集群的详细信息。
如果您已有想要与 Kubernetes 一起使用的现有磁盘,请使用方法 1(手动创建PersistentVolumeClaim和)。PersistentVolume首先,您创建一个PersistentVolume对象来表示 Kubernetes 中的磁盘,然后创建一个对象PersistentVolumeClaim来绑定到它并充当可在 Pod 中使用的指针。您必须小心确保对象彼此指向,有关如何执行此操作的详细信息,请参阅/sf/answers/2402658401/ 。这是您应该对现有GCE PD使用的方法。
方式二(手动创建PersistentVolumeClaim,让系统自动创建PersistentVolume)。如果您的存储系统支持 Kubernetes 动态卷配置,您只需创建一个PersistentVolumeClaim对象,您的存储系统就会自动创建一个新卷。GCE 和 GKE 上的 Kubernetes 为 GCE PD 安装了默认的 StorageClass,因此这应该是开箱即用的,这就是您应该用来创建和使用新GCE PD 的方法。
有关所有这些的详细信息,请参阅https://www.youtube.com/watch?v=uSxlgK1bCuA 。
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |