Kubernetes 硬盘持久化之 PV 和 PVC

Kubernetes 硬盘持久化之 PV 和 PVC

Persistent Volume 定义

持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。 持久卷是集群资源,就像节点也是集群资源一样。PV 持久卷和普通的 Volume 一样,拥有独立于任何使用 PV 的 Pod 的生命周期。

Persistent Volume 访问权限

权限缩写描述
ReadWriteOnceRWO卷可以被一个节点以读写方式挂载。 ReadWriteOnce 访问模式仍然可以在同一节点上运行的多个 Pod 访问该卷。 对于单个 Pod 的访问,请参考 ReadWriteOncePod 访问模式。
ReadOnlyManyROX卷可以被多个节点以只读方式挂载。
ReadWriteManyRWX卷可以被多个节点以读写方式挂载。

Persistent Volume 回收机制

机制
Retain回收策略 Retain 使得用户可以手动回收资源。当 PersistentVolumeClaim 对象被删除时,PersistentVolume 卷仍然存在,对应的数据卷被视为"已释放(released)"。 由于卷上仍然存在这前一申领人的数据,该卷还不能用于其他申领。
Delete对于支持 Delete 回收策略的卷插件,删除动作会将 PersistentVolume 对象从 Kubernetes 中移除,同时也会从外部基础设施中移除所关联的存储资产。
Recycle(废弃)如果下层的卷插件支持,回收策略 Recycle 会在卷上执行一些基本的擦除 (rm -rf /thevolume/*)操作,之后允许该卷用于新的 PVC 申领。

Persistent Volume Claim 定义

持久卷申领(PersistentVolumeClaim,PVC) 表达的是用户对存储的请求。概念上与 Pod 类似。 Pod 会耗用节点资源,而 PVC 申领会耗用 PV 资源。Pod 可以请求特定数量的资源(CPU 和内存)。同样 PVC 申领也可以请求特定的大小和访问模式。

PV 和 PVC 联合使用

  1. 申明 3 个 PV

    apiVersion: v1
    kind: PersistentVolume
    metadata:name: pv1labels:app: pv1
    spec:nfs:server: 192.168.31.60path: /nfs-test/volume1accessModes: ["ReadWriteOnce"]persistentVolumeReclaimPolicy: Retaincapacity:storage: 1Gi
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:name: pv2labels:app: pv2
    spec:nfs:server: 192.168.31.60path: /nfs-test/volume2accessModes: ["ReadOnlyMany"]persistentVolumeReclaimPolicy: Deletecapacity:storage: 1Gi
    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:name: pv3labels:app: pv3
    spec:nfs:server: 192.168.31.60path: /nfs-test/volume3accessModes: ["ReadWriteMany"]persistentVolumeReclaimPolicy: Deletecapacity:storage: 1Gi
    
    root@k8s-master1:~# kubectl get pv
    NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
    pv1    1Gi        RWO            Retain           Available                          <unset>                          8s
    pv2    1Gi        ROX            Delete           Available                          <unset>                          8s
    pv3    1Gi        RWX            Delete           Available                          <unset>                          8s
    
  2. 声明 3 个 PVC

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:name: pvc1
    spec:accessModes: ["ReadWriteOnce"]selector:matchLabels:app: pv1resources:requests:storage: 100Mi
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:name: pvc2
    spec:accessModes: ["ReadOnlyMany"]selector:matchLabels:app: pv2resources:requests:storage: 100Mi
    ---
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:name: pvc3
    spec:accessModes: ["ReadWriteMany"]selector:matchLabels:app: pv3resources:requests:storage: 100Mi
    
    root@k8s-master1:~# kubectl get pvc
    NAME   STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    pvc1   Bound    pv1      1Gi        RWO                           <unset>                 2m35s
    pvc2   Bound    pv2      1Gi        ROX                           <unset>                 2m35s
    pvc3   Bound    pv3      1Gi        RWX                           <unset>                 2m35s
    
  3. 申明 3 个 Deployment 进行测试

    apiVersion: apps/v1
    kind: Deployment
    metadata:name: pv1-deploy
    spec:replicas: 2selector:matchLabels:app: pv1-podtemplate:metadata:labels:app: pv1-podspec:containers:- name: pv1-testimage: busyboximagePullPolicy: IfNotPresentcommand: ["/bin/sh"]args: ["-c","sleep 3600"]volumeMounts:- name: pv1-testmountPath: /pv1-testvolumes:- persistentVolumeClaim:claimName: pvc1name: pv1-test
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:name: pv2-deploy
    spec:replicas: 2selector:matchLabels:app: pv2-podtemplate:metadata:labels:app: pv2-podspec:containers:- name: pv2-testimage: busyboximagePullPolicy: IfNotPresentcommand: ["/bin/sh"]args: ["-c","sleep 3600"]volumeMounts:- name: pv2-testmountPath: /pv2-testvolumes:- persistentVolumeClaim:claimName: pvc2name: pv2-test
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:name: pv3-deploy
    spec:replicas: 2selector:matchLabels:app: pv3-podtemplate:metadata:labels:app: pv3-podspec:containers:- name: pv3-testimage: busyboximagePullPolicy: IfNotPresentcommand: ["/bin/sh"]args: ["-c","sleep 3600"]volumeMounts:- name: pv3-testmountPath: /pv3-testvolumes:- persistentVolumeClaim:claimName: pvc3name: pv3-test
    
    NAME                          READY   STATUS    RESTARTS   AGE   IP              NODE          NOMINATED NODE   READINESS GATES
    pv1-deploy-9b857996d-9mlwq    1/1     Running   0          5m    10.244.194.97   k8s-worker1   <none>           <none>
    pv1-deploy-9b857996d-gs95v    1/1     Running   0          5m    10.244.126.40   k8s-worker2   <none>           <none>
    pv2-deploy-6f76d7c88b-bgr8k   1/1     Running   0          5m    10.244.126.41   k8s-worker2   <none>           <none>
    pv2-deploy-6f76d7c88b-grq7q   1/1     Running   0          5m    10.244.194.95   k8s-worker1   <none>           <none>
    pv3-deploy-8696ff555b-hkwgm   1/1     Running   0          5m    10.244.194.96   k8s-worker1   <none>           <none>
    pv3-deploy-8696ff555b-z72pp   1/1     Running   0          5m    10.244.126.42   k8s-worker2   <none>           <none>
    

    测试过程中发现访问模式没有起到任何限制作用,可能 Kubernetes 对特定配置下 NFS 没有很好的支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/843512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JVM精通之路】垃圾回收-三色标记算法

首先预期你已经基本了解垃圾回收的相关知识&#xff0c;包括新生代垃圾回收器&#xff0c;老年代垃圾回收器&#xff0c;以及他们的算法&#xff0c;可达性分析等等。 先想象一个场景 最开始黑色节点是GC-Roots的根节点&#xff0c;这些对象有这样的特点因此被选为垃圾回收的根…

Transformers x SwanLab:可视化NLP模型训练

HuggingFace 的 Transformers 是目前最流行的深度学习训框架之一&#xff08;100k Star&#xff09;&#xff0c;现在主流的大语言模型&#xff08;LLaMa系列、Qwen系列、ChatGLM系列等&#xff09;、自然语言处理模型&#xff08;Bert系列&#xff09;等&#xff0c;都在使用T…

Mowgli用于配对多组学整合

对同一组细胞的多个分子层进行分析逐渐流行。越来越需要能够联合分析这些数据的多视图学习方法。Mowgli是一种支持配对多组学数据的整合方法。值得注意的是&#xff0c;Mowgli将非负矩阵分解和最优传输相结合&#xff0c;同时提高了非负矩阵分解的聚类性能和可解释性。作者将Mo…

android studion 一直编译失败

无外网&#xff0c;无法下载对应的库导致编译失败 配置代理 1.修改镜像源 资源路径 为国内镜像 如下为国美腾讯软件镜像 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-8.6-bin.zip 2.构建仓储失败 无法下载。 添加国内仓储如下位置&#xff0c;重新…

SAP MM模块后台配置(下)

3.10 采购订单的审批过程 配置路径 IMG->物料管理-采购-采购订单-审批过程-含分类的过程 事务代码 SPRO 配置请求号 配置描述:我们用这个配置来进行九牧集团用到的采购订单的审批策略的定义: 配置屏幕: …

Flutter 中的 AnimatedPositioned 小部件:全面指南

Flutter 中的 AnimatedPositioned 小部件&#xff1a;全面指南 在 Flutter 中&#xff0c;动画是增强用户界面和提升用户体验的强大工具。AnimatedPositioned 是 Flutter 动画库中的一个组件&#xff0c;它允许你动画化子组件的位置。这在实现动态拖拽、滑动进入/退出视图等交…

【前端每日基础】day26——Promise

在JavaScript中&#xff0c;Promise是一种用于处理异步操作的对象。它允许我们以一种更结构化和更具可读性的方式来处理异步代码&#xff0c;从而避免了回调地狱&#xff08;callback hell&#xff09;的问题。以下是对Promise的详细讲解。 Promise 的基础 一个 Promise 对象代…

Python编程入门:植物大战僵尸游戏实现

引言&#xff1a; Python是一种简单易学且功能强大的编程语言&#xff0c;非常适合初学者入门。在本篇博客中&#xff0c;我们将通过一个简单的例子来介绍Python的基础语法和面向对象编程的概念。我们将使用Python编写一个植物大战僵尸游戏&#xff0c;并通过代码逐步实现游戏的…

Jmeter元件及基本作用域

&#x1f680;从今天开始学习性能测试工具——Jmeter&#xff0c;小梦也是先学习了下Jmeter的元件概念以及其基本的作用域&#xff0c;整理了下笔记&#xff0c;希望不管是从事开发领域还是测试领域的朋友们&#xff0c;我们一起学习下Jmeter工具&#xff0c;提升工作中的技能&…

【软考】下篇 第12章 信息系统架构设计理论与实践

目录 一、信息系统架构的定义二、信息系统架构风格三、信息系统架构分类四、信息系统常用的4种架构模型&#xff08;SCSB&#xff09;五、企业信息系统的总体框架ISA六、TOGAF & ADM七、信息化总体架构方法信息化六要素信息化架构模式信息系统生命周期&#xff08;规分设实…

7个靠谱的副业赚钱方法,宝妈,上班族,学生党可以做的兼职副业

你是否也曾面临过这样的困境&#xff1a;生活费紧张&#xff0c;想要找份兼职来补贴家用或是满足自己的小心愿&#xff1f;别担心&#xff0c;今天我将带领你踏入这个丰富多彩的兼职世界&#xff0c;助你轻松达成月入过千的小目标&#xff01; 在我漫长的兼职探索旅程中&#…

【区域脑图论文笔记】BrainNetCNN:第一个专门为脑网络连接体数据设计的深度学习框架

【区域脑图论文笔记】BrainNetCNN&#xff1a;第一个专门为脑网络连接体数据设计的深度学习框架 信息概览与提炼采用的数据与结果数据集结果概览一眼 重点图与方法概览核心与优劣总结模型与实验论文方法E2E的理解E2N的理解N2G的理解三个卷积层设计的理解 论文实验与讨论 总结与…

PostgreSQL 详细教程

PostgreSQL是一个强大的开源关系型数据库管理系统&#xff0c;它提供了许多高级功能&#xff0c;包括事务处理、复杂查询和数据完整性。本教程将引导您了解如何安装、配置和使用PostgreSQL。 一、安装PostgreSQL 1. **下载PostgreSQL**&#xff1a;访问PostgreSQL的官方网站&…

力扣232. 用栈实现队列(两栈实现队列)

Problem: 232. 用栈实现队列 文章目录 题目描述思路Code 题目描述 思路 利用两个栈&#xff0c;一个入栈一个出栈搭配着实现队列的相关操作&#xff1a; 1.创建两个栈stack1和stack2&#xff1b; 2.void push(int x):将要入队的元素先入栈stack1&#xff1b; 3.int pop()&…

倒计时 1 天!「飞天技术沙龙-CentOS 迁移替换专场」演讲亮点一览

各位开发者们&#xff1a; 「飞天技术沙龙 - CentOS 迁移替换专场」即将于本周三在北京召开&#xff01;昨天&#xff0c;小龙为参会者公布了详细参会指南&#xff0c;今天带大家了解各演讲内容亮点。 活动时间&#xff1a;5 月 29 日&#xff08;本周三&#xff09; 13:30-17…

是所有的图片都能用Canvas画出来吗?

Canvas不会将图片转换为其他格式进行绘制&#xff0c;它是直接在画布上绘制图片的。Flutter中使用Canvas绘制图片时&#xff0c;可以使用drawImage方法将图片绘制到画布上。 关于图片的格式&#xff0c;Flutter支持多种常见的图片格式&#xff0c;包括但不限于&#xff1a; P…

pod容器基础概念

一 Pod基础概念&#xff1a; ①Pod是kubernetes中最小的资源管理组件&#xff0c;Pod也是最小化运行容器化应用的资源对象。一个 Pod代表着集群中运行的一个进程。一个pod包含一个或多个容器。如&#xff1a;应用容器/业务容器&#xff08;淘 宝、京东、拼多多后台&#xff…

水电自动抄表系统是什么?

1.简述&#xff1a;水电自动抄表系统 水电自动抄表系统是一种现代化计量检定解决方法&#xff0c;为提升公用事业服务项目的效率和精确性。传统式手动抄水表方法已经被这类高效率、精准的自动化系统所替代&#xff0c;它能够实时、远程控制地收集解决水电使用数据。 2.系统原…

国产性能怪兽——香橙派AI Pro(8T)上手体验报告以及性能评测

目录 1、引言2、性能参数3、开箱体验4、实际使用5、性能比较总结参考文章 1、引言 第一次接触香橙派的开发板&#xff0c;之前使用过Arduino、树莓派3B、树莓派4B&#xff0c;STM32&#xff0c;51单片机&#xff0c;没有想到国产品牌性能一样强劲&#xff0c;使用起来也是很方便…

Llama 3 模型家族构建安全可信赖企业级AI应用之使用 Llama Guard 保护大模型对话 (八)

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…