k8s存储之PV、PVC

         在k8s集群中,资源存储会散落到各个工作节点上,这样对用资源调用很不方便,那么k8s是如何实现存储资源共享的呢,本文浅尝辄止的探讨一下,k8s是通过pv、pvc实现的。

一、PV、PVC的概念

1、持久卷(PV)

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

2、持久卷声明(PVC)

         pvc是PersistentVolumeClaim的缩写, 是用户对存储的请求,PVC 申领会耗用 PV 资源。pvc的访问模式有 ReadWriteOnce、ReadOnlyMany、ReadWriteMany、ReadWriteOncePod。

二、PV、PVC的生命周期

1、制作PV

       PV 卷的制备有两种方式,静态制备或动态制备。静太制作集群管理员创建若干 PV 卷,这些卷对集群用户可用,可供用户消费。动态制备,当没有提前制作好的pv卷供pvc匹配,集群可以尝试为该 PVC 申领动态制备一个存储卷。

2、绑定

      用户创建一个带有特定存储容量和特定访问模式需求的 PersistentVolumeClaim 对象, 控制平面中的控制回路监测新的 PVC 对象,寻找与之匹配的 PV 卷 并将二者绑定到一起。。

3、使用

       Pod 将 PVC 申领当做存储卷来使用。集群会检视 PVC 申领,找到所绑定的卷, 并为 Pod 挂载该卷。对于支持多种访问模式的卷, 用户要在 Pod 中以卷的形式使用申领时指定期望的访问模式。

4、回收策略

       当用户不再使用其存储卷时,他们可以从 API 中将 PVC 对象删除, 从而允许该资源被回收再利用。PersistentVolume 对象的回收策略告诉集群, 当其被从申领中释放时如何处理该数据卷。 目前,数据卷可以被 Retained(保留)、Recycled(回收)或 Deleted(删除)。

(1)保留(Retain)

        回收策略 Retain 使得用户可以手动回收资源。当 PersistentVolumeClaim 对象被删除时,PersistentVolume 卷仍然存在,对应的数据卷被视为"已释放(released)"。 由于卷上仍然存在之前用户的数据,该卷还不能用于其他申领。如果需要继续使用这一块的资源,需要手动手动删除所关联的存储数据。

(2)删除(Delete)

       对于支持 Delete 回收策略的卷插件,删除动作会将 PersistentVolume 对象从 Kubernetes 中移除,同时也会从外部基础设施中移除所关联的存储资产。 

(3)回收(Recycle)

      目前已经废弃,推荐使用动态制作。

三、NFS服务搭建

1、文件存储技术分类

       分布式的文件存储技术实现常用的有三种:

(1)块存储ISCSI

        优点:速率块 不可取代 可以简单的方式实现数据的可用性
        缺点:不可共享 以及 文件系统的约束

(2)文件存储 NFS

       优点:实现了数据共享、构建资金较低
       缺点:速率较慢

(3)对象存储 MFS
      优点:实现了数据共享、读写效率高、有更高的磁盘IO 网络 IO,存储量级更高缺点:造价高 难度实现大

      本文使用nfs作为存储类型

2、NFS部署

(1)安装nfs-utils
yum install  -y nfs-utils  rpcbind
(2)配置挂载点
mkdir  -p  /home/data/nfs
vim  /etc/exports/home/data/nfs  *(insecure,rw,sync,no_root_squash)exports  -r
(3)启动nfs服务
systemctl start rpcbindsystemctl start nfs
systemctl  status nfs
(4)节点挂载

      假如主节点的主机名为server200,那么从节点的安装步骤按照前三步执行。然后在各个节点执行挂载命令即可:

mount –t nfs server205:/home/data/nfs  /home/data/nfs  
showmount -e  server205

  

四、PV、PVC创建与应用 

1、编写pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:name: k8s-dep-pvnamespace: wmy-dev
spec:capacity:storage: 256MiaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /home/data/nfs/testserver: server205
kubectl apply -f pv.yaml

2、编写pvc.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: k8s-dep-pvcnamespace: wmy-dev
spec:resources:#申请资源requests:storage: 256MiaccessModes:- ReadWriteManystorageClassName: nfs
kubectl apply -f  pvc.yaml

3、应用PVC资源

     安装一个nginx服务,将其根目录挂载到/home/data/nfs/test

apiVersion: apps/v1
kind: Deployment
metadata:name: my-nginxnamespace: wmy-dev
spec:replicas: 1selector:matchLabels:app: my-nginxtemplate:metadata:labels:app: my-nginxspec:containers:- name: k8s-depimage: ningximagePullPolicy: IfNotPresentports:- containerPort: 80name: tcpprotocol: TCPvolumeMounts:- name: v-nfs# 容器内需要挂载的目录文件mountPath: /usr/share/nginx/htmlvolumes:# 容器卷名称,按照规范命名即可,与挂载名称volumeMounts保持一致- name: v-nfspersistentVolumeClaim:claimName: k8s-dep-pvc
kubectl  apply  -f  nginx.yaml

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

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

相关文章

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付

摘要 2024-01-07 周日 杭州 阴 本节内容: 如何选择 GPU 和云服务器,追求最高性价比如何部署自己的 fine-tune 的模型,向业务提供高可用服务如何控制内容安全,做好算法备案,确保合规 课程内容 1. 硬件选型 a. Nvidia 几乎是模…

W801学习笔记十:HLK-W801制作学习机/NES游戏机(总结)

本章总结一下整个开发过程中遇到的问题: 1、引脚的抗干扰问题: 屏幕显示的时候,概率出现花屏。无论怎么修改代码都不能解决,一个偶然的机会,发现当手触摸屏幕的WR和CS引脚时,屏幕会正常。查阅资料&#x…

C# 递归执行顺序

为了方便进一步理解递归,写了一个数字输出 class Program {static void Main(string[] args){int number 5;RecursiveDecrease(number);}static void RecursiveDecrease(int n){if (n > 0){Console.WriteLine("Before recursive call do : " n);Rec…

IAR编译和调试CMS32L051

0 Preface/Foreword 0.1 参考文档 中微半导体BAT系列单片机学习笔记_V1.1.pdf 1 配置方法 1.1 编译工具链添加 CMS对于IAR工具,有一个插件文件,用于安装对应的CMS系列芯片。 工具名称:iar_plug20210926.7z 按照完成之后,可…

[Python小工具]Python批量生成数据到MySQL

[Python小工具]Python批量生成数据到MySQL base.py #!/usr/bin/python # -*- coding:utf-8 -*- import time import random from datetime import datetime, timedelta from faker import Faker import stringfake Faker(zh_CN)class Base_conn:# 数据库连接配置初始化def _…

如果我要访问一个网址,那么在网络中会有哪些过程

访问一个网址是我们日常网络使用中非常常见的操作,背后涉及到一系列精密而复杂的步骤。这个过程包括DNS解析、建立TCP连接、发起HTTP请求、服务器处理请求、服务器响应、浏览器渲染等环节。在这篇文章中,我们将深入探讨这些步骤,并解释它们在…

redis配置信息整理

redis部署分为几种方式:单机、哨兵(主从)、集群。对应这几种部署方式redis的配置信息也有不同,总结如下: 单机模式: spring:redis:database: 0timeout: 8000password: 123456host: 192.168.56.101port: 6…

强大的虚拟机Parallels Desktop 19 mac中文激活

Parallels Desktop是一款功能全面、易于使用的虚拟机软件,它为用户提供了在Mac电脑上同时运行多个操作系统的便利。 软件下载:Parallels Desktop 19 mac中文激活版下载 Parallels Desktop 19 mac具有快速启动和关闭虚拟机的能力,让用户能够迅…

基于SpringBoot+Vue学科竞赛管理系统

文章目录 基于SpringBootVue学科竞赛管理系统1系统概述1.3系统设计思想 2相关技术2.1 MYSQL数据库2.2 B/S结构2.3 Spring Boot框架简介2.4 Vue简介 3系统分析3.1可行性分析3.1.1技术可行性3.1.2经济可行性3.1.3操作可行性 3.2系统性能分析3.2.1 系统安全性3.2.2 数据完整性 3.4…

Wampserver 切换中文时无法启动报错处理

在使用 Wampserver 软件时默认为英语,可以看到有语言选择功能,切换其他语言。但选择中文切换后,软件重启时报如下错误: The configuration file contains a systax error on line 44:[EParseError] Mismatched or misplaced quoue…

(十六)串口UART

文章目录 UART简介传输数据帧和波特率定时器1作为串口1波特率发生器串口部分相关寄存器TMODAUXRPCONSCONSBUF 串口1工作模式1:8位UART,波特率可变总体工作原理如何简单接收一个字符和发送数据一步之遥的设置现象演示 UART简介 通用异步收发传输器(Unive…

1汇编学习 用chatGPT来分析汇编的含义:让一切变的容易 每句注释 OllyDbg 用chatGPT来学习:让一切变的容易,迅速成为绝顶高手

用chatGPT来学习:让一切变的容易,迅速成为绝顶高手 004010C1 > 8A83 1A214000 mov al, byte ptr [ebx40211A] 004010C7 . 3C 00 cmp al, 0 004010C9 . 74 08 je short 004010D3 004010CB . 3C 47 cmp al, 47 004010CD . 75 01 jnz short 004010D0 00…

计算机网络(第六版)复习提纲19

SS4.4 网际控制报文协议ICMP ICMP报文作为IP数据报的数据部分,加上IP报文的首部进行发送 一 ICMP报文的种类 1 ICMP差错报告报文 有四种ICMP差错报告报文 ①终点不可达,路由器或者主机不能交付数据报时向原点发送 ②时间超过,当路由器收到生…

一种轻量分表方案-MyBatis拦截器分表实践|京东零售技术实践

背景 部门内有一些亿级别核心业务表增速非常快,增量日均100W,但线上业务只依赖近一周的数据。随着数据量的迅速增长,慢SQL频发,数据库性能下降,系统稳定性受到严重影响。本篇文章,将分享如何使用MyBatis拦…

微软Azure-OpenAI 测试调用及说明

本文是公司在调研如何集成Azure-openAI时,调试测试用例得出的原文,原文主要基于官方说明文档简要整理实现 本文已假定阅读者申请部署了模型,已获取到所需的密钥和终结点 变量名称值ENDPOINT从 Azure 门户检查资源时,可在“密钥和…

Advanced CNN

文章目录 回顾Google NetInception1*1卷积Inception模块的实现网络构建完整代码 ResNet残差模块 Resedual Block残差网络的简单应用残差实现的代码 练习 回顾 这是一个简单的线性的卷积神经网络 然而有很多更为复杂的卷积神经网络。 Google Net Google Net 也叫Inception V…

java基础面试题:BIO,NIO,AIO 有什么区别?

BIO、NIO和AIO是Java中用于处理I/O操作的不同编程模型,它们有以下区别: 阻塞 I/O(BIO):BIO是传统的阻塞式I/O模型,它基于流(Stream)和阻塞调用,即当一个线程执行I/O操作时…

5、应急响应-拒绝服务钓鱼识别DDOS压力测试邮件反制分析应用日志

目录 前言: 1、#内网应急-日志分析-爆破&横向&数据库 2、#红队APT-钓鱼邮件识别-内容&发信人&附件 3、#拒绝服务攻击-DDOS&CC-代理&防火墙防御 用途:个人学习笔记,欢迎指正! 前言: 了解和…

OkHttp完全解读

一,概述 OkHttp作为android非常流行的网络框架,笔者认为有必要剖析此框架实现原理,抽取并理解此框架优秀的设计模式。OkHttp有几个重要的作用,如桥接、缓存、连接复用等,本文笔者将从使用出发,解读源码&am…

深度视频恢复软件推荐,轻松恢复视频文件!

“我在电脑上保存了一些视频,但在清理时却不小心将这些视频删除了,有什么方法可以恢复删除的视频吗?希望大家给我推荐一些好用的方法。” 随着科技的飞速发展,数字媒体已经成为了我们生活中不可或缺的一部分。然而,数字…