【Kubernetes】 emptyDir、nfs存储卷 和 PV、PVC

 emptyDir存储卷

当pod被分配给节点

容器和容器之间进行共享存储

hostPath

nfs共享存储卷

NAS 专业的存储设备;一般是与NFS 搭配,然后共享出去

GFS 自己搭;CEPH(至少要9台) 第三方;NAS 第三方;

云端        oss        s3        SLB        LB        CDN(加速缓存);AWS 外网,CDN可以加快访问

查看共享存储

showmount -e

挂载时记得要加ip

主机名要改为域名

设置域名解析

删除所有pod

kubectl delete pod --all

查看帮助

kubectl explain pod.spec.volumes

k8s 官网

验证数据是否保持持久化

PVC和PV

什么是PVC和PV

pv是磁盘;pvc是磁盘的请求;storage

节省资源和

当没有满足需求的pv时,就会报错

PVC的使用逻辑

storagesClass

 

动态pv:事先没有相关的存储资源,当有需求时会进行自动创建

PV和PVC之间的相互作用

k8s 支持存储插件的访问方式

NFS使用PV和PVC

pvc 写入数据到 pv 过程中,无法删除pvc、pv 回收资源;pod释放Volume后就能删除pvc了

例如:创建一个目录然后cd进去,打开新的窗口,删除这个目录,会发现因为占用无法删除

PV的状态(4种)

PV的生命周期

一个PV 从创建到销毁的过程:

回收策略

Retain        保留

Delete        删除

Recycle        回收;保留磁盘的功能,删除数据;

查看pv 定义的规格

定义存储类型

定义挂载卷路径

定义服务器名称,访问模型

满足pvc的大小和规则,去匹配pv;会优先匹配大小接近(>=)的pv;小的不会匹配,大的可以匹配但多余的会被浪费

2、定义PV

3、定义PVC

前端后端打包工具 ?

4、访问测试

实现 NFS 的动态 PV 创建

pod 设置pvc,pvc通过api接口k8s 现在通过api 调用pv 还需要经过第三方插件才行,高并发时就不行了,

pod:放应用、微服务;对接pvc名称

pvc:需求的请求(磁盘的请求),通过restful == API

restful:存储原生不支持k8s,所以需要安装第三发插件;例:nfs存储插件;

             restful通过 连接插件 调用pv

pv:相当于磁盘的分区

外部的插件都需要创建用户并授权才能使用

用户授权

xxxxx

存储挂载目录

创建PVC和Pod 测试

总结

k8s 存储卷 volume

PV-PVC

emptyDir 可以实现pod 中容器之间共享数据,但是存储卷之间不能做持久化数据,并且随着pod生命周期的结束emptyDir一起删除

hostOath

可以实现持久化存储,使用node节点的目录或文件挂载到容器,但是存储空间会受到node节点单机限制;当node节点故障时,数据会丢失;pod跨节点不能共享数据

nfs

nfs:可以实现持久化存储,使用nfs 将存储设备空间挂载到容器中,pod可以跨node节点来共享数据

怎么从本机拉取其他主机的文件

PV        k8s 指定的存储设备空间中,创建持久化的存储

PVC        是对pv 存储资源请求和绑定

StorageClass        sc类型(存储类型),联动存储插件,动态创建PV 资源

静态PV的使用:
准备好存储设备和共享目录;

创建pv资源,进行配置设置存储类型、访问模式、存储能力的大小

创建pvc资源,并配置请求pv资源的访问模式和存储的大小;

pvc 与 pv 进行一对一绑定

在pv 访问模式中必须支持pvc 请求的访问模式

请求的存储空间优先选择相等存储大小的pv资源;当没有匹配的时,会选择大于请求的pv存储资源来绑定(大于pvc的部分会被浪费)

创建 pod 资源 存储类设置 PeristenVolumeClaim 在容器配置存储挂载

动态 storage 

StorageClass 动态创建 pv 的过程

StorageClass + nfs-client-provistioner 

准备 NFS 共享服务器和共享目录

创建sa 服务账号,并进行RBAC 资源操作权限的授权

创建 nfs-client-provistioner 存储插件(以Pod 形式运行的)配置中关联sa服务账号,使存储插件

获得相关资源的操作权限

创建StorageClass 资源,配置中关联存储插件的名称配置

#以上过程完成后,以后只需要创建PV资源就可以动态生成相关的PV资源

创建PVC资源,配置中关联 StorageClass 资源的名称,此时会在 NFS 服务器上生成相关的pv共享目录,目录名 ${namespace} ${PVCname} ${PVname} 格式命名

创建pod资源、存储类型,设置成 PersistentVolumeClaim,在容器中配置存储挂载即可

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

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

相关文章

【wiki知识库】05.分类管理模块--后端SpringBoot模块

📝个人主页:哈__ 期待您的关注 目录 一、🔥今日目标 二、☀SpringBoot代码修改 1.使用逆向工程生成Category表结构 2. 新增CategoryQueryParam 3.新增CategorySaveParam 4.新增CategotyQueryVo 三、🤖新增分类管理的相关接口…

v1.2.70-FastJson的AutoType机制研究

v1.2.70-FastJson的AutoType机制研究 最近在对接Alexa亚马逊语音技能,Smart Home Skill Apis时,有一个配置的JSON字符串是这样的: { "capabilityResources": {"friendlyNames": [{"type": "asset",…

python图像识别库-pytesseract

内容目录 一、安装1.安装tesseract OCR1) MAC中安装2) Windows中安装3) 中文报下载 二、pytesseract的简单使用 pytesseract是python的一个用于图像提取的库, 它实际上是对Tesseract OCR引擎的封装。pytesseract使得在Python项目中调用Tesseract变得更加简便,主要用…

17K star,一款开源免费的手机电脑无缝同屏软件

导读:白茶清欢无别事,我在等风也等你。 作为程序员,在我们的工作中经常需要把手机投票到电脑进行调试工作,选择一款功能强大的投屏软件是一件很必要的事情。今天给大家介绍一款开源且免费的投屏软件,极限投屏&#xff…

Arthas调优工具使用

1,服务器端下载 curl -O https://arthas.aliyun.com/arthas-boot.jar 2,服务器端启动 java -jar arthas-boot.jar 选定要绑定的Java进程ID 3,本地idea安装Arthas idea 4,选定方法右键trace,生成命令 trace com.xxx.xxx.xxx.vouche…

C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍

文章目录 前言一、快速排序非递归二、归并排序五、归并排序非递归总结 前言 C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍 一、快速排序非递归 快速排序非递归的定义 快速排序非递归,需要使用栈来实现。将左右下标分别push到栈中。在栈为…

基于Tricore的Tasking链接文件解读

目录 1.链接文件有什么用? 2.文件结构和语法解析 2.1 文件结构 2.2 语法解析 3.小结 玩惯了ld文件,突然让搞lsl,被其中花里胡哨的语法搞晕了,例如: memory cpu0_dlmu{mau 8;size 64k;type ram;map cached …

腾讯中视频计划项目玩法,号称执行就有收入

腾讯中视频掘金计划是一个创新的短视频创作与分享平台,类似于西瓜视频,允许用户发布原创视频内容,并将其同步至腾讯旗下的多个平台,用户基数大,相信视频播放量也会比较大。 操作流程: 1. 注册并登录腾讯中…

深入对比:Transformer与RNN的详细解析

在深度学习领域,特别是在自然语言处理(NLP)中,循环神经网络(RNN)和Transformer模型都扮演着举足轻重的角色。然而,随着技术的不断发展,Transformer模型逐渐崭露头角,成为…

OrangePi 安装 CANN 套件及体验 AI 应用

CANN 环境安装(桌面端跳过) CANN 环境存在于下载页面的官方工具中,点击下载即可进入下载页面。 CANN 安装包就在倒数第二项,下载后传到开发板上。 给 CANN 安装包赋予运行权限并运行即可。 chmod x Ascend-cann-toolkit_7.0.0_l…

MQTT协议使用总结

MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布/订阅信息传输协议MQTT在时间和空间上,将消息发送者与接受者分离,可以在不可靠的网络环境中进行扩展。适用于设备硬件存储空间有限或网络带宽有限的场景。 物联网平台支持设…

2.1.4 采用配置类与注解方式使用MyBatis

实战概述:采用配置类与注解方式使用MyBatis 创建MyBatis配置类 在net.huawei.mybatis.config包中创建MyBatisConfig类,用于配置MyBatis核心组件,包括数据源、事务工厂和环境设置。 配置数据源和事务 使用PooledDataSource配置MySQL数据库连接…

kafka-消费者服务搭建配置简单消费(SpringBoot整合Kafka)

文章目录 1、使用efak 创建 主题 my_topic1 并建立6个分区并给每个分区建立3个副本2、创建生产者发送消息3、application.yml配置4、创建消费者监听器5、创建SpringBoot启动类6、屏蔽 kafka debug 日志 logback.xml7、引入spring-kafka依赖 1、使用efak 创建 主题 my_topic1 并…

DP动态规划(上)

文章目录 动态规划基本概念斐波那契数列问题C 实现Python 实现Java 实现 迷你结C、Python和Java在实现动态规划时有哪些性能差异?迷你结哪种语言在动态规划中更适合大规模数据处理?迷你结C有哪些知名的库适用于动态规划和大数据处理?动态规划辅助库大数据处理库 迷…

【网络协议 | HTTP】HTTP总结与全梳理(一) —— HTTP协议超详细教程

🔥博客简介:开了几个专栏,针对 Linux 和 rtos 系统,嵌入式开发和音视频开发,结合多年工作经验,跟大家分享交流嵌入式软硬件技术、音视频技术的干货。   ✍️系列专栏:C/C、Linux、rtos、嵌入式…

二叉树练习题(2024/6/5)

1翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出:[2,3,1]…

dirfuzz-web敏感目录文件扫描工具

dirfuzz介绍 dirfuzz是一款基于Python3的敏感目录文件扫描工具,借鉴了dirsearch的思路,扬长避短。在根据自身实战经验的基础上而编写的一款工具,经过断断续续几个月的测试、修改和完善。 项目地址:https://github.com/ssrc-c/di…

运维开发介绍

目录 1.什么是运维开发 2.作用 3.优点 4.缺点 5.应用场景 5.1.十个应用场景 5.2.网站和Web应用程序 6.案例 7.小结 1.什么是运维开发 运维开发(DevOps)是一种结合软件开发(Development)与信息技术运维(Opera…

什么是回调函数?callback()

首先要知道一个点就是 在js中&#xff0c;函数是可以作为函数的参数传递的 所以其实回调函数 就是这个传进去的参数 其实回调函数的本质样子和普通函数是一样的 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

embedding层的理解

一文读懂Embedding的概念&#xff0c;以及它和深度学习的关系 - 知乎 (zhihu.com) 感觉这篇知乎真的大道至简。个人感觉embedding层和普通的线性层没有什么区别~就是为了降维和升维用的。也就是向量的维度变化&#xff01;