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

2024-06-05 23:12

本文主要是介绍【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,在容器中配置存储挂载即可

这篇关于【Kubernetes】 emptyDir、nfs存储卷 和 PV、PVC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034439

相关文章

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略

Kubernetes PodSecurityPolicy:PSP能实现的5种主要安全策略 1. 特权模式限制2. 宿主机资源隔离3. 用户和组管理4. 权限提升控制5. SELinux配置 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes的PodSecurityPolicy(PSP)是一个关键的安全特性,它在Pod创建之前实施安全策略,确保P

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP