inj*_*joy 3 kubernetes persistent-volumes persistent-volume-claims
我刚才看到Postgres的YAML文件与PersistentVolumeClaim及volumeMounts和volumes与persistentVolumeClaim在postgres容器中。我找不到任何PersistentVolume定义。
但是,当postgres容器 pod 被启动时,我可以看到与 yaml 文件中定义的
PersistentVolume绑定persistentVolumeClaim。
那么PersistentVolume如果我们只定义 ,k8s 会创建PersistentVolumeClaim吗?
fgu*_*gul 12
事实上,它已经由
PersistentVolume 的动态配置。
PersistentVolumes和PersistentVolumeClaims使开发人员可以轻松获取持久存储,而无需处理底层使用的实际存储技术。但这仍然需要集群管理员预先配置 实际存储。您认为,必须创建PersistentVolume,但不必一直这样。幸运的是,Kubernetes 还可以通过动态配置持久卷来自动执行这项工作。
集群管理员可以部署 PersistedVolume配置程序并定义一个或多个StorageClass对象,以让用户选择他们想要的PersistedVolume类型,而不是创建 PersistentVolume。用户可以在其 PersistentVolumeClaims中引用 StorageClass , 配置者在配置持久存储时会考虑到这一点。
kubernetes 通过包含默认的StoregeClass定义使其变得更加简单。您不必在 yaml 清单中指向 StorageClass,如下所示:
PVC yaml 文件:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgresdb-pvc
spec:
resources:
requests:
storage: 1Gi
accessModes:
- ReadWriteOnce
Run Code Online (Sandbox Code Playgroud)
该 PVC 定义仅包括存储大小请求和所需的访问模式,但不包括存储类别。创建 PVC 时,将使用标记为默认的任何存储类。
$ kubectl get pvc postgresdb-pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS
postgresdb-pvc Bound pvc-95a5ec12 1Gi RWO standard
$ kubectl get pv pvc-95a5ec12
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS STORAGECLASS
pvc-95a5ec12 1Gi RWO Delete Bound standard
Run Code Online (Sandbox Code Playgroud)
这张图片来自《Kubernetes In Action》一书,完美地总结了所有步骤。
是的,这是正确的,所以当您的集群具有存储类的动态配置时, 您只需要提供PVC,配置器将从 PVC 和 storageClass 获取相关信息,然后根据这些信息创建 PV。
当管理员创建的静态 PV 都与用户的 PersistentVolumeClaim 不匹配时,集群可能会尝试专门为 PVC 动态配置卷。此供应基于 StorageClasses:PVC 必须请求存储类,并且管理员必须已创建并配置该类才能进行动态供应。 动态供应
例如,在这里您提供以下 PVC 信息
存储类名
请求的存储大小
访问模式
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: task-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
Run Code Online (Sandbox Code Playgroud)
在 StorageClass 中,您提供以下信息
供应商
其他信息
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: manual
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
reclaimPolicy: Retain
volumeBindingMode: Immediate
Run Code Online (Sandbox Code Playgroud)
kubectl get sc,pvc,pv 将提供相关信息
| 归档时间: |
|
| 查看次数: |
2100 次 |
| 最近记录: |