searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

PVC挂载

2024-05-22 03:16:20
38
0

以下是PVC挂载到Pod的大致流程::

一. ​创建PersistentVolume(PV):

  • 管理员或通过自动化工具在Kubernetes集群中创建PV。PV是集群中的一段预定义存储资源,可以是物理磁盘、网络存储等,并且指定了存储的大小、访问模式(如ReadWriteOnce、ReadOnlyMany、ReadWriteMany)和其他特性。
  • PV可以配置为静态的(预先创建好并定义在Kubernetes集群中)或者动态的(基于StorageClass自动创建)。

二. ​创建PersistentVolumeClaim(PVC):

  • 用户(开发者或应用管理员)在需要存储的Pod定义中或独立地创建PVC。PVC声明了用户需要的存储资源类型,包括请求的存储量、访问模式等,但不直接指定特定的PV。
  • PVC可以指定一个storageClassName,该名称与某个StorageClass匹配,用于动态分配PV。

三. ​PV与PVC的绑定​:

  • Kubernetes的控制器负责匹配PVC和可用的PV。如果PV的特性和容量满足PVC的要求,并且两者的访问模式兼容,控制器将执行绑定操作,将PVC与PV关联起来。
  • 对于动态PV,Kubernetes会根据PVC的请求和指定的StorageClass自动创建PV。

四. ​Pod定义中引用PVC​:

  • 在Pod的定义(YAML文件)中,通过volumes部分引用PVC。这通常涉及到两个字段:volume的名称和volumeMounts,其中volumeMounts定义了容器内部的挂载点。
apiVersion: v1
kind: Pod 
metadata:   name: my-pod 
spec:   
  containers:   
  - name: my-container   
     image: some-image     
     volumeMounts:     
         - mountPath: /data       
           name: my-volume   
    volumes:   
       - name: my-volume     
         persistentVolumeClaim:       
            claimName: my-pvc

五. ​Pod调度与挂载​:

  • 当Pod被调度到某个Node上时,Kubernetes确保对应的PV已经准备就绪,并将其挂载到该Node上的一个目录。
  • 然后,这个Node上的目录会被挂载到Pod的容器内部,具体位置由容器的volumeMounts指定。
  • Pod启动后,就可以通过挂载点访问到持久化存储,实现数据的持久保存。

六. ​Pod生命周期结束​:

  • 当Pod被删除或重建时,PVC不会被删除,因此存储的数据得以保留。
  • 如果不再需要PVC,手动删除PVC将触发PV的回收过程,具体回收策略由PV的persistentVolumeReclaimPolicy决定(如Delete、Retain或Recycle)。

整个流程确保了Pod能够安全、灵活地访问持久化存储资源,满足了应用对数据持久性的需求。

0条评论
作者已关闭评论
李****琪
1文章数
0粉丝数
李****琪
1 文章 | 0 粉丝
Ta的热门文章查看更多
李****琪
1文章数
0粉丝数
李****琪
1 文章 | 0 粉丝
原创

PVC挂载

2024-05-22 03:16:20
38
0

以下是PVC挂载到Pod的大致流程::

一. ​创建PersistentVolume(PV):

  • 管理员或通过自动化工具在Kubernetes集群中创建PV。PV是集群中的一段预定义存储资源,可以是物理磁盘、网络存储等,并且指定了存储的大小、访问模式(如ReadWriteOnce、ReadOnlyMany、ReadWriteMany)和其他特性。
  • PV可以配置为静态的(预先创建好并定义在Kubernetes集群中)或者动态的(基于StorageClass自动创建)。

二. ​创建PersistentVolumeClaim(PVC):

  • 用户(开发者或应用管理员)在需要存储的Pod定义中或独立地创建PVC。PVC声明了用户需要的存储资源类型,包括请求的存储量、访问模式等,但不直接指定特定的PV。
  • PVC可以指定一个storageClassName,该名称与某个StorageClass匹配,用于动态分配PV。

三. ​PV与PVC的绑定​:

  • Kubernetes的控制器负责匹配PVC和可用的PV。如果PV的特性和容量满足PVC的要求,并且两者的访问模式兼容,控制器将执行绑定操作,将PVC与PV关联起来。
  • 对于动态PV,Kubernetes会根据PVC的请求和指定的StorageClass自动创建PV。

四. ​Pod定义中引用PVC​:

  • 在Pod的定义(YAML文件)中,通过volumes部分引用PVC。这通常涉及到两个字段:volume的名称和volumeMounts,其中volumeMounts定义了容器内部的挂载点。
apiVersion: v1
kind: Pod 
metadata:   name: my-pod 
spec:   
  containers:   
  - name: my-container   
     image: some-image     
     volumeMounts:     
         - mountPath: /data       
           name: my-volume   
    volumes:   
       - name: my-volume     
         persistentVolumeClaim:       
            claimName: my-pvc

五. ​Pod调度与挂载​:

  • 当Pod被调度到某个Node上时,Kubernetes确保对应的PV已经准备就绪,并将其挂载到该Node上的一个目录。
  • 然后,这个Node上的目录会被挂载到Pod的容器内部,具体位置由容器的volumeMounts指定。
  • Pod启动后,就可以通过挂载点访问到持久化存储,实现数据的持久保存。

六. ​Pod生命周期结束​:

  • 当Pod被删除或重建时,PVC不会被删除,因此存储的数据得以保留。
  • 如果不再需要PVC,手动删除PVC将触发PV的回收过程,具体回收策略由PV的persistentVolumeReclaimPolicy决定(如Delete、Retain或Recycle)。

整个流程确保了Pod能够安全、灵活地访问持久化存储资源,满足了应用对数据持久性的需求。

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0