[K8S] K8S-Volume存储(6)

准备镜像 k8s集群每个node节点需要下载镜像:

docker pull mariadb:10.5.2

在 Kubernetes 中,Volume 是一种抽象概念,用于持久化存储容器中的数据。Kubernetes 提供了多种类型的Volume,每种类型都适用于不同的场景和需求。

1. EmptyDir 临时卷

描述: EmptyDir 是一种临时性 Volume,它在 Pod 被调度到节点上时创建,随着 Pod 的删除而被清除。它通常用于需要临时存储数据的场景,如容器之间共享数据。使用很少

volumes:
  - name: temp-volume
    emptyDir: {
   }

2. HostPath 文件目录挂载

描述: HostPath 允许将主机节点(Node)上的文件系统目录直接挂载到 Pod 中。这种 Volume 适合需要直接访问主机文件系统的应用场景,但在生产环境中使用时需注意安全性和可移植性问题。
例如只支持单节点(Node),而且只支持 “ReadWriteOnce”模式

volumes:
  - name: host-path-volume
    hostPath:
      path: /data

指定node节点 kubectl label nodes k8s-node01 mariadb=mariadb

查看node节点label值 kubectl get nodes --show-labels

HOSTPATH的用法: 在volimeMountes中指定容器内部的路径和外部 hostPath的名称
在 定义卷中定义

containers 
	volumeMounts: 
		- mountPath: /var/lib/mysql 
		  name: mariadb-volume
.......
volumes:
	 - name: mariadb-volume 
	   hostPath: 
	 	  	path: /data/mariadb
			type: Directory

3. PersistentVolumeClaim (PVC & PV)

部署mysql之前我们需要先了解一个概念有状态服务。这是一种特殊的服务,简单的归纳下就是会产生需要持久化的数据,并且有很强的I/O需求,且重启需要依赖上次存储到磁盘的数据。如典型的mysql,kafka,zookeeper等等。

描述: PersistentVolumeClaim 允许 Pod 使用持久化存储,如云存储卷(AWS EBS、Azure Disk 等)或者集群中的网络存储(NFS、GlusterFS 等)。PVC 提供了一种抽象机制,使得 Pod 可以独立于存储技术进行部署和管理。

volumes:
  - name: pvc-volume
    persistentVolumeClaim:
      claimName: my-pvc

3.1 PV&&PVC理论补充

存储机制介绍 在 Kubernetes 中,存储资源和计算资源(CPU、Memory)同样重要,Kubernetes 为了能让管理员方便
管理集群中的存储资源,同时也为了让使用者使用存储更加方便,所以屏蔽了底层存储的实现细节,将存储抽象出两个 API 资源
PersistentVolumePersistentVolumeClaim 对象来对存储进行管理。

PersistentVolume(持久化卷): PersistentVolume 简称 PV, 是对底层共享存储的一种抽象,将共享存储定义为一种资源,它属于集群级别资源,不属于任何 Namespace,用户使用 PV 需要通过 PVC
申请。PV 是由管理员进行创建和配置,它和具体的底层的共享存储技术的实现方式 有关,比如说 Ceph、GlusterFS、NFS
等,都是通过插件机制完成与共享存储的对接,且根据不同 的存储 PV 可配置参数也是不相同。

PersistentVolumeClaim(持久化卷声明): PersistentVolumeClaim 简称 PVC,是用户存储的一种声明,类似于对存储资源的申请,它属于一个 Namespace 中的资源&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值