6、kubenetes 卷

news2024/11/16 22:35:33

1、什么是卷

在某些场景下,我们可能希望新的容器可以在之前容器结束的位
置继续运⾏,⽐如在物理机上重启进程。可能不需要(或者不想要)
整个⽂件系统被持久化,但又希望能保存实际数据的⽬录。
Kubernetes通过定义存储卷来满⾜这个需求,它们不像pod这样的
顶级资源,⽽是被定义为pod的⼀部分,并和pod共享相同的⽣命周
期。这意味着在pod启动时创建卷,并在删除pod时销毁卷。因此,在
容器重新启动期间,卷的内容将保持不变,在重新启动容器之后,新
容器可以识别前⼀个容器写⼊卷的所有⽂件。另外,如果⼀个pod包含
多个容器,那这个卷可以同时被所有的容器使⽤。

2、卷的类型

2.1 emptyDir

最简单的卷类型是emptyDir卷,卷从⼀个空⽬录开始,运⾏在pod内的
应⽤程序可以写⼊它需要的任何⽂件。因为卷的⽣存周期与pod的⽣存
周期相关联,所以当删除pod时,卷的内容就会丢失。
emptyDir卷是最简单的卷类型,但是其他类型的卷都是在它的基础
上构建的,在创建空⽬录后,它们会⽤数据填充它。

2.2 gitRepo

gitRepo卷基本上也是⼀个emptyDir卷,它通过克隆Git仓库并在pod
启动时(但在创建容器之前)检出特定版本来填充数据
gitRepo容器就像emptyDir卷⼀样,基本上是⼀个专⽤⽬录,专门
⽤于包含卷的容器并单独使⽤。当pod被删除时,卷及其内容被删除。

2.3 hostPath

hostPath卷指向节点⽂件系统上的特定⽂件或⽬录。在同⼀个节点上运⾏并在其hostPath
卷中使⽤相同路径的pod可以看到相同的⽂件。

hostPath卷是我们介绍的第⼀种类型的持久性存储,因为gitRepo和
emptyDir卷的内容都会在pod被删除时被删除,⽽hostPath卷的内容则不
会被删除。如果删除了⼀个pod,并且下⼀个pod使⽤了指向主机上相
同路径的hostPath卷,则新pod将会发现上⼀个pod留下的数据,但前提
是必须将其调度到与第⼀个pod相同的节点上。
查看kubectl-system 是否存在hostPath 卷
一般都是kubenetes放配置文件才会放到hostpath卷
⼤多数情况下都使⽤这种类型的卷来访问节点的⽇志⽂件、kubeconfig(Kubernetes配置⽂件)
或CA证书。

请记住仅当需要在节点上读取或写⼊系统⽂件时才使⽤
hostPath,切勿使⽤它们来持久化跨pod的数据。

3、持久化存储

3.1 GCE (Google Compute Engine) 

创建GCE持久磁盘

同⼀区域中创建GCE持久磁盘

 使 ⽤ gce Persistent Disk 卷 的 pod: mongodbpodgcepd.yaml

如果要使⽤Minikube,就不能使⽤GCE持久磁盘,但是可以
部署mongodb-pod-hostpath.yaml,这个使⽤的是hostpath卷⽽不是GCE
持久磁盘。
pod包含⼀个容器和⼀个卷,被之前创建的GCE持久磁盘⽀持。因为MongoDB就是在
/data/db上存储数据的,所以容器中的卷也要挂载在这个路径上

3.2 AWS弹性块存储卷

AWS弹性块存储(Aws Elastic Block Store)

3.3 NFS

如果集群是运⾏在⾃有的⼀组服务器上,那么就有⼤量其他可移
植的选项⽤于在卷内挂载外部存储。例如,要挂载⼀个简单的NFS共
享,只需指定NFS服务器和共享路径

3.4 其他

其他的⽀持选项包括⽤于挂载ISCSI磁盘资源的iscsi,⽤于挂载
GlusterFS的glusterfs,适⽤于RADOS块设备的rbd,还有fiexVolume、
cinder、cephfs、fiocker、fc(光纤通道)等。rbd如果你不会使⽤到它
们,就不需要知道所有的信息。这⾥提到是为了展⽰Kubernetes⽀持⼴
泛的存储技术,并且可以使⽤喜欢和习惯的任何存储技术。

4、持久卷使用

4.1 NFS、PV(PersistentVolume)、PVC(PersistentVolumeClain

NFS 储存服务器
真实磁盘

PersistentVolume 持久卷,简称PV
持久分区目录

PVC PersistentVolumeClain 持久卷声明
指定所需要的最低容量要求和访问模式,然后⽤户将持久卷声明清单提交给Kubernetes
API服务器,Kubernetes将找到可匹配的持久卷并将其绑定到持久卷声
明

4.2 创建持久卷

# 查看现有持久卷
kubectl get pv

4.3 创建持久卷声明 绑定持久卷

# 查看现有持久卷
kubectl get pvc

# 查看yaml
kubectl get pvc datadir-zk-0 -o yaml -n ydxs-uat
# 修改yaml
kubectl edit pvc datadir-zk-0 -o yaml -n ydxs-uat


RWO——ReadWriteOnce——仅允许单个节点挂载读写。
ROX——ReadOnlyMany——允许多个节点挂载只读。
RWX——ReadWriteMany——允许多个节点挂载读写这个卷。

# 查看持久卷
​​kubectl get pv

持久卷显⽰被绑定在default/mongodb-pvc的声明上,这个default部
分是声明所在的命名空间(在默认命名空间中创建的声明),我们之
前有提到过持久卷是集群范围的,因此不能在特定的命名空间中创
建,但是持久卷声明又只能在特定的命名空间创建,所以持久卷和持
久卷声明只能被同⼀命名空间内的pod创建使⽤。

4.4 创建pod 绑定持久卷声明

4.5 创建持久卷声明的好处

是研发⼈员不需要关⼼底层实际使⽤的存储技术。
可以对卷的进行声明配置

4.6 卷的回收 Retain  Recycle  Delete

⼿动回收持久卷 persistentVolumeReclaimPolicy 配置
设 置 为 Retain 从 ⽽ 通 知 到
Kubernetes,我们希望在创建持久卷后将其持久化,让Kubernetes可以
在持久卷从持久卷声明中释放后仍然能保留它的卷和数据内容。据我
所知,⼿动回收持久卷并使其恢复可⽤的唯⼀⽅法是删除和重新创建
持久卷资源。当这样操作时,你将决定如何处理底层存储中的⽂件:
可以删除这些⽂件,也可以闲置不⽤,以便在下⼀个pod中复⽤它们。

⾃动回收持久卷 persistentVolumeReclaimPolicy 配置
Recycle 删除卷的内容并使卷可⽤于再次声明,通过这种⽅式,持久卷可以被不同的
持久卷声明和pod反复使⽤

Delete 策略删除底层存储。需要注意当前GCE持久磁盘
⽆法使⽤Recycle选项。这种类型的持久卷只⽀持Retain和Delete策略,
其他类型的持久磁盘可能⽀持这些选项,也可能不⽀持这些选项

4.7 StorageClass 

# 创建 sc

创建StorageClass资源后,⽤户可以在其持久卷声明中按名称引⽤
存储类。
创建⼀个请求特定存储类的PVC定义
可以修改mongodb-pvc以使⽤动态配置。以下代码清单显⽰了PVC
中更新后的YAML定义。

# 查看pvc
kubectl get pvc

# 自动生成pv

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

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

相关文章

ARM-Linux 开发板下安装编译 OpenCV 和 Dlib

安装 OpenCV 和 Dlib 不像在 x86 平台下那样简单,用一句命令就可以自动安装完。而在 ARM 平台中许多软件都需要自行下载编译,且还有许多问题,本篇文章就是记录在 ARM 平台下载 OpenCV 踩过的坑。 硬件环境: RK3568 Ubuntu20.04…

ConFEDE: Contrastive Feature Decomposition for Multimodal Sentiment Analysis

文章目录 ConFEDE:用于多模态情感分析的对比特征分解文章信息研究目的研究内容研究方法1.总体结构2.损失函数3.Data Sampler4.数据采样算法5.Contrastive Feature Decomposition(重点) 结果与讨论代码和数据集附录 ConFEDE:用于多…

两台电脑简单的通信过程详解(经过两个路由器,不同网段)

一、eNSP拓扑图 二、配置4台电脑的IP地址、子网掩码、网关地址。 三、配置路由器 1.AR1-接口对应IP <Huawei>sys #进入系统视图 [Huawei]int g0/0/0 #进入0/0/0接口 [Huawei-GigabitEthernet0/0/0]ip address 192.168.0.1 24 #配置ip和掩码 [Huawei-GigabitEthernet0…

NacosException: http error, code=403、NacosimeException——报错解决方法【Nacos2.x】

1、NacosException报错内容为&#xff1a; NacosException: http error, code403,msguser not found!,dataIdapplication-dev.yml,groupDEFAULT_GROUP,tenant连不上是因为成功开启鉴权后&#xff0c;所使用的Spring Cloud服务被拦截&#xff0c;需要在配置中添加Nacos用户名和…

【Canvas与艺术】绘制暗绿色汽车速度仪表盘

【原型】 【成果】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>暗绿色汽车速度仪表盘</title><style type"t…

python学生作业管理系统flask-django-nodejs-php

课题主要分为三大模块&#xff1a;即管理员模块和学生、教师模块&#xff0c;主要功能包括&#xff1a;学生、教师、作业信息、学习模块、教学评价、学习情况等&#xff1b; 关键词&#xff1a;学生作业管理系统&#xff1b;作业信息 目录 摘 要 I Abstrac II 目录 III 1绪论 1…

liunx CentOS7 搭建lnmp环境 php nginx mysql

安装一些刚需软件&#xff1a;不懂请自行查询 安装一些需要的软件命令 yum install wget vim net-tools bash* lrzsz tree nmapnc lsof telnet -y 刷新命令 source /usr/share/bash-completion/bash_completion echo source /usr/share/bash-completion/bash_completion &…

键盘记录程序、间谍软件和窃取程序在 SMB 恶意软件检测中占主导地位

据 Sophos 称&#xff0c;到 2023 年&#xff0c;中小企业检测到的恶意软件中有 50% 是键盘记录程序、间谍软件和窃取程序&#xff0c;攻击者利用这些恶意软件窃取数据和凭证。 攻击者随后利用这些窃取的信息来获得未经授权的远程访问、勒索受害者、部署勒索软件等。 勒索软件…

yarn安装包时报错error Error: certificate has expired

安装教程&#xff1a; 配置镜像地址&#xff1a; npm config set registry https://registry.npmmirror.com//镜像&#xff1a;https://developer.aliyun.com/mirror/NPM 安装yarn&#xff1a; npm install --global yarn查看版本&#xff1a; yarn --version卸载&#xff…

【现代C++】统一初始化

现代C中的统一初始化&#xff08;Uniform Initialization&#xff09;是C11引入的一项特性&#xff0c;它提供了一种统一的语法来初始化任何类型的对象。统一初始化旨在增强代码的一致性和清晰度&#xff0c;减少传统初始化方式中的歧义。以下是统一初始化的几种用法及相应的示…

sqlite3 交叉编译

#1.下载源码并解压 源码路径如下&#xff0c;下载autoconf版本 SQLite Download Page 解压 tar -zxvf sqlite-autoconf-3450200.tar.gz cd sqlite-autoconf-3450200 mkdir build # 2. 配置源代码 # 假设你已经安装了交叉编译工具链&#xff0c;如gcc-arm-linux-gnueabih…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记18_竞争市场

1. 竞争市场 1.1. 算法、大数据、超级平台的风起云涌似乎预示了市场竞争机制的加速终结&#xff0c;而我们似乎也对这种市场机制的衰退见怪不怪 1.1.1. 它有效节省了消费者的搜寻成本&#xff0c;降低了市场准入壁垒&#xff0c;开辟了市场扩张与准入之间的崭新通道&#xff…

Android iOS客户端自动化UI自动化airtest从0到1搭建macos

一、基础环境 1. 安装jdk 选择jdk8 如果下载高版本 可能不匹配会失败 下载.dmg文件 苹果电脑 &#xff5c; macOS &#xff5c; jdk1.8 &#xff5c; 环境变量配置_jdk1.8 mac-CSDN博客 Java Downloads | Oracle jdk环境变量配置 找到java home qamac ~ % cd /Library/J…

ideaSSM 学员信息管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 学员信息管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff…

【数据结构】——排序之冒泡排序

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

eclipse中使用PlantUML plugin查看对象关系

一.背景 公司安排的带徒弟任务&#xff0c;给徒弟讲了如何设计对象。他们的思维里面都是单表增删改查&#xff0c;我的脑海都是一个个对象&#xff0c;他们相互关系、各有特色本事。稳定的结构既能满足外部功能需求&#xff0c;又能在需求变更时以最小代价响应。最大程度的记录…

简易指南:国内ip切换手机软件怎么弄

在网络访问受到地域限制的情况下&#xff0c;使用国内IP切换手机软件可以帮助用户轻松访问被屏蔽的内容&#xff0c;扩展网络体验。以下是虎观代理小二分享的使用国内IP切换手机软件的简易指南。并提供一些注意事项。 如何在手机上使用国内IP切换软件 步骤一&#xff1a;选择I…

【3D reconstruction 学习笔记】

三维重建 3D reconstruction 1. 相机几何针孔相机摄像机几何 2. 相机标定线性方程组的解齐次线性方程组的解非线性方程组的最小二乘解透镜相机标定带畸变的相机标定 3. 单视图重建2D平面上的变换3D空间上的变换单视测量无穷远点 无穷远线 无穷远平面影消点 影消线单视重构 4. 三…

docker 哲学 - 网络桥接器、容器网络接口 、容器间的通信方式

1、解释 docker0 veth eth 2、vethXX 和 ethXX 是肯定一一对应吗 比如 eth1 对应 veth1 3、如果 A容器使用 默认创建方式 。定义他内部网络为 eth0&#xff0c;容器B使用 --network 连上 已创建的网络 172.89.2.1 。此时假设 B的 ip是 172.89.2.2 &#xff0c;容器网络接口是 e…

DashScope - 阿里模型服务灵积

文章目录 关于 DashScope快速上手代码调用http 请求示例Python 调用 关于 DashScope 官方主页&#xff1a;https://dashscope.aliyun.comPYPI : https://pypi.org/project/dashscope/支持模型&#xff1a;https://dashscope.console.aliyun.com/model DashScope灵积模型服务建…