当前位置: 首页 > news >正文

9. kubernetes资源——pv/pvc持久卷

kubernetes资源——pv/pvc持久卷

  • 一、volume数据卷
    • 1、hostPath
    • 2、挂载nfs实现持久化
  • 二、pv/pvc 持久卷/持久卷声明
    • 1、pv/pvc介绍
    • 2、pv/pvc的使用流程
      • 2.1 创建pv
      • 2.2 创建pvc
      • 2.3 创建pod,使用pv做持久化

一、volume数据卷

用于pod中的数据的持久化存储
支持很多的卷类型, 例如EmptyDir、hostPath、NAS、SAN、CEPH

1、hostPath

挂载物理机上的目录做持久化

apiVersion: apps/v1
kind: Deployment
metadata:name: test1-hostpath
spec:replicas: 1selector:matchLabels:app: hostpathtemplate:metadata:labels:app: hostpathspec:containers:- name: test1-hostpathimage: centos:7imagePullPolicy: IfNotPresentcommand:- sleep- "3600"volumeMounts:													// 挂载卷- name: test1-volumemountPath: /test1volumes:																	// 创建卷,名称为test1-volume, 类型为hostpath- name: test1-volumehostPath:path: /test/data
[root@k8s-master ~]# kubectl get pod -o wide
NAME                              READY   STATUS    RESTARTS   AGE    IP              NODE                   NOMINATED NODE   READINESS GATES
test1-hostpath-584f599fcf-wzt2q   1/1     Running   0          117s   10.88.201.193   k8s-node01.linux.com   <none>           <none>
[root@k8s-master ~]# 
[root@k8s-master ~]# kubectl exec -ti test1-hostpath-584f599fcf-wzt2q bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
[root@test1-hostpath-584f599fcf-wzt2q /]# 
[root@test1-hostpath-584f599fcf-wzt2q /]# touch /test1/{1..10}
[root@test1-hostpath-584f599fcf-wzt2q /]# ls /test1/
1  10  2  3  4  5  6  7  8  9
[root@test1-hostpath-584f599fcf-wzt2q /]# 
[root@test1-hostpath-584f599fcf-wzt2q /]# exit
exit

2、挂载nfs实现持久化

apiVersion: apps/v1
kind: Deployment
metadata:name: test2-pod-nfs
spec:replicas: 1selector:matchLabels:app: nfstemplate:metadata:labels:app: nfsspec:containers:- name: test2-pod-nfsimage: centos:7imagePullPolicy: IfNotPresentcommand:- sleep- "3600"volumeMounts:- name: test2-nfs-volumemountPath: /test2volumes:- name: test2-nfs-volumenfs:server: "192.168.140.13"path: "/test2"

二、pv/pvc 持久卷/持久卷声明

1、pv/pvc介绍

pv, 持久卷,后端真实存储空间的映射
pvc, 持久卷声明,使用存储的申请

使用流程:
1、创建pv,描述后端真实的存储空间
2、创建pvc,描述使用存储的申请
3、创建pod,挂载pvc使用存储

2、pv/pvc的使用流程

2.1 创建pv

apiVersion: v1
kind: PersistentVolume
metadata:name: pv-2g
spec:capacity:storage: 2GaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Recyclenfs:server: "192.168.140.13"path: "/test6"
apiVersion: v1
kind: PersistentVolume
metadata:name: pv-3g
spec:capacity:storage: 3GaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: Recyclenfs:server: "192.168.140.13"path: "/test7"

accessModes:用于指定PV的访问模式,共有四种

  • ReadWriteOnce
    被单个节点以读写模式挂载

  • ReadWriteMany
    被多个节点以读写模式挂载

  • ReadOnlyMany
    被多个节点以只读模式挂载

  • ReadOnlyOnce, k8s 1.29
    被单节点以只读模式挂载

persistentVolumeReclaimPolicy:
指定回收模式是自动回收,当空间被释放时,K8S自动清理,然后可以继续绑定使用

[root@k8s-master pvTest]# kubectl get pv
NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
pv-2g   2G         RWX            Recycle          Available                          <unset>                          2m26s
pv-3g   3G         RWO            Recycle          Available                          <unset>                          46s

2.2 创建pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvc-1g
spec:accessModes:- ReadWriteManyresources:requests:storage: 1G
[root@k8s-master pvTest]# kubectl get pvc
NAME     STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
pvc-1g   Bound    pv-2g    2G         RWX                           <unset>                 10s```bash
[root@k8s-master pvTest]# kubectl get pv
NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM            STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
pv-2g   2G         RWX            Recycle          Bound       default/pvc-1g                  <unset>                          10m
pv-3g   3G         RWO            Recycle          Available                                   <unset>                          8m34s

2.3 创建pod,使用pv做持久化

apiVersion: apps/v1
kind: Deployment
metadata:name: test1-pod
spec:replicas: 1selector:matchLabels:app: pvtemplate:metadata:labels:app: pvspec:containers:- name: test1-podimage: centos:7imagePullPolicy: IfNotPresentcommand:- sleep- "3600"volumeMounts:- name: test1-pod-pv-volumemountPath: /test1volumes:- name: test1-pod-pv-volumepersistentVolumeClaim:														// 通过关联pvc创建数据卷claimName: pvc-1g

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 银行贷款信用评分不足?大数据帮你找回失去的“分”
  • 史上最全网络安全面试题+答案
  • pve笔记
  • 「C++系列」数组
  • 使用Chainlit接入通义千问快速实现一个多模态的对话应用
  • Android12 显示框架之SurfaceComposerClient创建
  • element的el-autocomplete带输入建议搜索+搜索匹配文字高亮显示
  • 前端开发:Vue2.0桌面组件库-Element
  • 【音视频之SDL2】Windows配置SDL2项目模板
  • 【数据集处理】Polars库、Parquet 文件
  • GO-学习-02-常量
  • 【EI会议征稿通知】第五届大数据、人工智能与软件工程国际研讨会(ICBASE 2024)
  • js_拳皇(下)
  • 「树形结构」基于 Antd 实现一个动态增加子节点+可拖拽的树
  • ArduPilot开源代码之lida2003套机+伴机电脑外场
  • 77. Combinations
  • Flex布局到底解决了什么问题
  • JAVA_NIO系列——Channel和Buffer详解
  • js面向对象
  • Meteor的表单提交:Form
  • Python 基础起步 (十) 什么叫函数?
  • vue-cli3搭建项目
  • 诡异!React stopPropagation失灵
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 七牛云假注销小指南
  • 前端技术周刊 2019-02-11 Serverless
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 1.Ext JS 建立web开发工程
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 交换综合实验一
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (回溯) LeetCode 78. 子集
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (南京观海微电子)——COF介绍
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./configure,make,make install的作用
  • ./configure、make、make install 命令
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Micro Framework初体验(二)
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .NET开源快速、强大、免费的电子表格组件
  • .NET命名规范和开发约定
  • @Autowired标签与 @Resource标签 的区别
  • @NotNull、@NotEmpty 和 @NotBlank 区别
  • @staticmethod和@classmethod的作用与区别
  • [ SNOI 2013 ] Quare
  • [000-01-018].第3节:Linux环境下ElasticSearch环境搭建
  • [1525]字符统计2 (哈希)SDUT