k8s-14 存储之volumes

Volumes配置管理

容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失因为容器会以干净的状态重建。其次,当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件。 Kubernetes 抽象出 Volume 对象来解决这两个问题。
Kubernetes 卷具有明确的生命周期,与包裹它的 Pod 相同。因此,卷比 Pod 中运行的任何容器的存活期都长,在容器重新启动时数据也会得到保留。 当然,当个Pod 不再存在时,卷也将不再存在。也许更重要的是,Kubernetes 可以支持许多类型的卷,Pod 也能同时使用任意数量的卷
卷不能挂载到其他卷,也不能与其他卷有硬链接。 Pod 中的每个容器必须独立地指定每个卷的挂载位置。

emptyDir卷
当 Pod 指定到某个节点上时,首先创建的是一个 emptyDir 卷,并且只要 Pod 在该节点上运行,卷就一直存在。 就像它的名称表示的那样,卷最初是空的。尽管Pod 中的容器挂载 emptyDir 卷的路径可能相同也可能不同,但是这些容器都可以读写emptyDir 卷中相同的文件。当 Pod 因为某些原因被从节点上删除时emptyDir 卷中的数据也会永久删除。

emptyDir 的使用场景:
缓存空间,例如基于磁盘的归并排序为耗时较长的计算任务提供检查点,以便任务能方便地从崩溃前状态恢复执行。在Web 服务器容器服务数据时,保存内容管理器容器获取的文件。
默认情况下,emptyDir 卷存储在支持该节点所使用的介质上;这里的介质可以是磁盘或SSD 或网络存储,这取决于您的环境。但是,您可以将emptyDir.medium 字段设置为“Memory”,以告诉 Kubernetes 为您安装tmpfs (基于内存的文件系统)。虽然tmpfs 速度非常快,但是要注意它与磁盘不同。tmpfs 在节点重启时会被清除,并且您所写入的所有文件都会计入容器的内存消耗,受容器内存限制约束。

emptydir缺点:
不能及时禁止用户使用内存。虽然过1-2分钟kubelet会将Pod挤出,但是这个时间内,其实对node还是有风险的;
影响kubernetes调度,因为empty dir并不涉及node的resources,这样会造成Pod“偷偷”使用了node的内存,但是调度器并不知晓;用户不能及时感知到内存不可用

================

hostpath卷

hostPath 卷能将主机节点文件系统上的文件或目录挂载到您的 Pod 中,虽然这不是大多数 Pod需要的,但是它为一些应用程序提供了强大的逃生舱。
hostPath 的一些用法有:运行一个需要访问 Docker 引擎内部机制的容器挂载 /ar/lib/docker 路径在容器中运行 cAdvisor 时,以 hostPath 方式挂载 /sys。允许 Pod 指定给定的 hostPath 在运行 Pod 之前是否应该存在,是否应该创建以及应该以什么方式存在。

适合做监控类的

empitydir卷:使用生命周期适合pod 相同,pod 没了 数据也就没了 不是真正持久化到磁盘上 

hostpath卷:是直接持久化到pod 所在的节点,为应用程序提供了一个强大的逃生舱,不会因为Pod被删除之后数据就丢了

当使用这种类型的卷时要小心,因为:具有相同配置(例如从 podTemplate 创建)的多个 Pod 会由于节点上文件的不同而在不同节点上有不同的行为。
当 Kubernetes 按照计划添加资源感知的调度时,这类调度机制将无法考虑由 hostPath 使用的资源。
基础主机上创建的文件或目录只能由 root 用户写入。!您需要在特权容器 中以 root 身份运行进程,或者修改主机上的文件权限以便容器能够写入 hostPath 卷。

nfs卷

配置nfsserver

需要在所有k8s节点上安装nfs-utils软件包
yum install -y nfs-utils

没有安装会有以下错误

持久卷

PersistentVolume (持久卷,简称PV) 是集群内,由管理员提供的网络存的一部分。就像集群中的节点一样,PV也是集群中的一种资源。它也像Volume一样,是一种volume插件,但是它的生命周期却是和使用它的Pod相互独立的。PV这个API对象,捕获了诸如NFS、ISCSI、或其他云存储系统的实现细节。
PersistentVolumeClaim (持久卷声明,简称PVC)是用户的一种存储请求。它和Pod类似,Pod消耗Node资源,而PVC消耗PV资源。Pod能够请求特定的资源 (如CPU和内存)。PVC能够请求指定的大小和访问的模式(可以被映射为一次读写或者多次只读)。
有两种PV提供的方式:静态和动态。
静态PV: 集群管理员创建多个PV,它们携带着真实存储的详细信息,这些存储对于集群用户是可用的。它们存在于Kubernetes API中,并可用于存储使用。
动态PV: 当管理员创建的静态PV都不匹配用户的PVC时,集群可能会尝试专门地供给volume给PVC。这种供给基于StorageClass。
PVC与PV的绑定是一对一的映射。没找到匹配的PV,那么PVC会无限期得处于unbound未绑定状态。

使用
Pod使用PVC就像使用volume一样。集群检查PVC,查找绑定的PV,并映射PV给Pod。对于支持多种访问模式的PV,用户可以指定想用的模式。一旦用户拥有了一个PVC,并且PVC被绑定,那么只要用户还需要,PV就一直属于这个用户。用户调度Pod,通过在Pod的volume块中包含PVC来访问PV。
当用户使用PV完毕后,他们可以通过API来删除PVC对象。当PVC被删除后,对应的PV就被认为是已经是“released”了,但还不能再给另外一个PVC使用。前一个PVC的属于还存在于该PV中,必须根据策略来处理掉。
释放
回收PV的回收策略告诉集群,在PV被释放之后集群应该如何处理该PV。当前,PV可以被Retained (保留)、Recycled (再利用)或者Deleted (删除)。保留允许手动地再次声明资源。对于支持删除操作的PV卷,删除操作会从Kubernetes中移除PV对象,还有对应的外部存储 (如AWS EBS,GCE PD,Azure Disk,或者Cinder volume) 。动态供给的卷总是会被删除。

配置nfs输出目录

创建静态pv

创建pvc

创建pod

在nfs输出目录中创建测试页

回收资源,需要按顺序回收: pod -> pvc -> pv

回收pvc后,pv会被回收再利用

pv的回收需要拉取镜像,提前在node节点导入镜像:registry.k8s.io/debian-base:v2.0.0
registry.k8s.io 替代 k8s.gcr.io 这个仓库,但依然需要科学上网

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

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

相关文章

手机有什么爬虫App工具?

随着智能手机的普及和应用的繁盛,越来越多的人开始对手机App进行数据爬取和分析。那么,在进行手机App爬虫的过程中,我们可以借助哪些工具呢?让我们一起来了解一下吧! 1、Fiddler Fiddler是一款功能强大的网络调试工具…

公司电脑监控软件|管控企业U盘,防止员工利用U盘泄密

德人合科技——电脑监控软件可以通过U盘管理系统管控企业U盘,防止员工利用U盘泄密。 PC访问地址:https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 其具体功能如下: U盘接入管控:单位内电脑能否使用U…

Harbor 安装部署

Harbor基本介绍 1、Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,Harbor 是一个企业级的 Docker 私有仓库项目。 2、Harbor以 Docker 公司开源的 Registry 为基础,提供了图形管理 UI 、基于角色的访问控制(Role Based AccessControl) 、AD/L…

ETX很小

windows桌面调节分辨率即可:

shopee平台现在好做吗

Shopee 是一家知名的电子商务平台,特别在东南亚地区非常流行。是否在 Shopee 平台做生意是否好做取决于多种因素,包括你的产品、市场竞争、营销策略和运营能力等。 以下是一些考虑因素: 1、产品选择:选择畅销的产品或具有市场需求…

Linux使用rpm包安装mysql5.7

以前安装过mysql 前言:检查以前是否装有mysql rpm -qa|grep -i mysql安装了会显示:   bt-mysql57-5.7.31-1.el7.x86_64 停止mysql服务和删除之前安装的mysql rpm -e bt-mysql57-5.7.31-1.el7.x86_64查找并删除mysql相关目录 find / -name mysql/va…

教育课堂小程序,三分钟打造专属小程序 带完整搭建教程

大家好哇,今天来给大家分享一款教育课堂小程序。现如今,线上教育已经普及,在大学课堂里,老师尝尝是使用各种各样的学习APP进行点名,签到,答题,考试等等,相较于传统的APP来说&#xf…

oracle11g安装图解

软件需求 1.安装CentOS6.5的服务器一台 2.Oracle 11g 安装介质: linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 3.命令行客户端工具xshell、crt或者putty 4.图形界面客户端工具Xming 系统配置检查 1.内存检查 grep MemTotal /proc/m…

dubbogo-1 基础rpc服务

文章目录 基本环境处理编译pb接口开启rpc调用业务观察qa1 能取出protoc里面的字段值吗? 基本环境处理 https://cn.dubbo.apache.org/zh-cn/overview/quickstart/go/install/ 这里没有 protoc-gen-go --version 执行 go get -u github.com/golang/protobuf/protoc…

竞赛选题 深度学习乳腺癌分类

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

Windows 事件日志监控

Windows 事件日志是记录 Microsoft 系统上发生的所有活动的文件,在 Windows 环境中,将记录系统上托管的系统、安全性和应用程序的事件,事件日志提供包含有关事件的详细信息,包括日期、时间、事件 ID、源、事件类型和发起它的用户。…

拭目以待!万博智云亮相2023长沙·中国1024程序员节

2023年10月23 - 25日,第四届“长沙中国 1024 程序员节”将在中国长沙盛大举行,万博智云 OneProCloud将以大会钻石合作伙伴身份重磅亮相,CEO Michael将发表主题演讲。这也是万博智云首次成为长沙中国 1024 程序员节合作伙伴。 1.主题演讲 万博…

Qt/C++开源作品45-CPU内存显示控件/和任务管理器一致

一、前言 在很多软件上,会在某个部位显示一个部件,专门显示当前的CPU使用率以及内存占用,方便用户判断当前程序或者当前环境中是否还有剩余的CPU和内存留给程序使用,在不用打开任务管理器或者资源查看器的时候直接得知当前系统的…

求最大公约数的几种常见的方法 【详解】

目录 一、关于公约数 二、计算最大公约数的方法 1. 辗转相除法(欧几里得算法) 2. 更相减损法(辗转相减法) 3. 分解质因数法 4. 穷举法 5. 递归法 6. 短除法 三、总结 一、关于公约数 首先 ,先介绍一下公约…

SVN一直报错Error running context: 由于目标计算机积极拒绝,无法连接。解决办法【杭州多测师_王sir】...

一、发现SVN一直报错Error running context: 由于目标计算机积极拒绝,无法连接。 二、没有启动 VisualSVN Server。cmd--> services.msc打开本地服务。查看VisualSVN的三个服务的启动类型,建议选择“手动”,不能选择“禁用”,选…

C++设计模式_09_Abstract Factory 抽象工厂

与上篇介绍的Factory Method工厂方法模式一样,Abstract Factory 抽象工厂模式也属于典型的“对象创建模式”模式,解决的问题也极其相似,在理解了Factory Method工厂方法模式的基础上再去理解Abstract Factory 抽象工厂模式就会变得更加容易。…

docker容器健康状态健康脚本

代码: #!/bin/bash# 定义要监控的容器名称 container_name"mysql-container"# 使用Docker命令来检查容器的运行状态 container_status$(docker inspect --format"{{.State.Status}}" "$container_name")# 检查容器状态并进行相应操作…

uniapp实现简单的九宫格抽奖(附源码)

效果展示 uniapp实现大转盘抽奖 实现步骤: 1.该页面可设置8个奖品,每个奖品可设置中奖机会的权重,如下chance越大,中奖概率越高(大于0) // 示例代码 prizeList: [{id: 1,image: "https://img.alicdn…

如何注册微信小程序

如何注册微信小程序 前言 因为最近沉迷和朋友们一起下班去打麻将,他们推荐了一个计分的小程序,就不需要每局都转账或者用扑克牌记录了,但是这个小程序不仅打开有广告,各个页面都植入了广告,用起来十分不适。 于是我…

【Cisco】解决小米手机无法连接WIFI的问题

问题来源:领导的小米Note7旧手机无法连接到公司的wifi上,确定密码什么的都没有问题。 无线环境: Cisco Catalyst 9800-L Wireless Controller Cisco Catalyst 9115 AP 可能原因:可能是Cisco 9100系列 AP 和 Android 10设备&#…