K8S存储卷

本文介绍了Kubernetes中不同类型的存储卷,包括临时卷如emptyDir和ConfigMap,以及持久卷如hostPath和NFS。emptyDir用于存储临时数据,ConfigMap用于分离配置文件。持久卷中的hostPath将节点目录映射到Pod,NFS则提供了跨Pod的数据共享。PV和PVC分别是资源提供者和使用者,用于实现动态存储分配。Kubernetes dashboard则是一个用于管理和监控集群的应用。

K8S存储卷
存储卷分为,临时卷和持久卷;
临时卷
有时候有些应用程序需要额外的存储,比如,将不常用的数据转移到影响很小的存储中
emptyDir:
是最基础的Volume类型,用于存储临时数据的简单目录,当Pod被删除则emptyDir
ConfigMap:
是Pod映射(文件或者目录)的一种方式,允许年将配置文件与镜像文件分离。常用于配置文件的
kubectl create configman 名称 --from -file=文件路径
持久卷
hostPath:
各个节点映射本地目录保持持久性,将node,将node节点上的容器文件映射到宿主机上。相当于mount
NFS
NFS共享卷,需要多个Pod共享数据,通过卷但的配置就可以挂载NFS到Pod中。
PV/PVC
PV:资源的提供者,根据集群基础变化而变化
PVC: 需要业务服务的需求变化来配置,资源的使用者
dashboard
基于网页的kubernetes用户页面,可以获取运行在集群中的应用信息,或在创建修改资源,展示集群的状态和报错

### 对比 - **功能层面**:Docker存储卷主要用于在容器和宿主机之间或者容器之间共享数据,侧重于单个容器或一组相关容器的数据管理。而Kubernetes存储卷是为容器化应用在集群环境下提供数据持久化和共享能力,可满足大规模分布式应用的数据存储需求,支持更复杂的存储场景,如跨节点的数据共享等 [^1][^2]。 - **管理层面**:Docker存储卷的管理相对简单,通常由Docker引擎直接管理,用户主要关注卷的创建、挂载和删除等基本操作。Kubernetes存储卷的管理更加复杂,需要通过Kubernetes的API对象(如PersistentVolume、PersistentVolumeClaim等)进行管理,涉及到存储资源的分配、回收和调度等多个方面 [^2]。 - **扩展性层面**:Docker存储卷的扩展性有限,主要依赖于Docker自身支持的存储驱动。Kubernetes存储卷具有良好的扩展性,支持多种存储类型,如NFS、iSCSI、Ceph等,并且可以通过插件机制集成更多的存储系统 [^2]。 ### 原理 - **Docker存储卷原理**:Docker存储卷是在宿主机文件系统上开辟的一块区域,容器可以将该区域挂载到自己的文件系统中。当容器对挂载的存储卷进行读写操作时,实际上是对宿主机上对应文件系统区域进行操作,从而实现数据的持久化和共享。 - **Kubernetes存储卷原理**:Kubernetes通过PersistentVolume(PV)和PersistentVolumeClaim(PVC)来实现存储卷的管理。PV是集群中的存储资源,由管理员创建和维护;PVC是用户对存储资源的请求,用户通过PVC来声明需要的存储大小、访问模式等。Kubernetes的存储控制器会根据PVC的请求,将合适的PV分配给PVC,然后将该存储卷挂载到对应的Pod中。 ### 使用方法 - **Docker存储卷使用方法** ```bash # 创建一个Docker存储卷 docker volume create my_volume # 运行容器并挂载存储卷 docker run -d -v my_volume:/app/data my_image ``` - **Kubernetes存储卷使用方法** ```yaml # 创建一个PersistentVolume apiVersion: v1 kind: PersistentVolume metadata: name: my-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce hostPath: path: /data/my-pv # 创建一个PersistentVolumeClaim apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 500Mi # 在Pod中使用存储卷 apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: my_image volumeMounts: - name: my-volume mountPath: /app/data volumes: - name: my-volume persistentVolumeClaim: claimName: my-pvc ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值