轻松掌握K8S目录持久卷PV/PVC的kubectl操作知识点04
1、介绍
在docker中可以将容器中的目录挂载出来,在k8s中pod可以部署在不同节点,假如该节点的机器宕机了,k8s可能就会将此Pod转移到其他机器,就不是原先的机器了。k8s有自己的一套挂载方案,如下图所示,
原理为将所有节点的挂载的目录统一抽象管理为叫做 存储层的概念,使用技术如NFS网络文件系统,在每一个节点都会有如50G的存储空间,该空间之间的数据是同步的,这样就解决了某一节点宕机了,Pod转移到其他节点了依然可以获取到挂载的目录。

1、搭建NFS网络文件系统

- 所有机器安装
yum install -y nfs-utils - nfs主节点,这里我们对应k8s的主节点(我配置两个主节点,选择了其中一个) 创建同步文件的目录
mkdir -p /nfs/k8s/data,设置暴露目录echo "/nfs/k8s/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports - nfs主节点启动RPC远程绑定现在启动并且开机也要启动
systemctl enable rpcbind --now - nfs主节点启动nfs 服务端,并且开启自动启动
systemctl enable nfs-server --now - nfs主节点使配置生效
exportfs -r, 输出目录查看exportfs

- 其他节点可检查哪些目录可以同步,执行命令
showmount -e 192.168.134.110,注意IP换成自己的

- 其他节点也创建同步的目录,目录名随意,我定义成一样的
mkdir -p /nfs/k8s/data - 将主节点和其他节点关联起来 ,在其他节点执行
mount -t nfs 192.168.134.110:/nfs/k8s/data /nfs/k8s/data - 测试,可以在任意一个节点添加修改文件,去其他检查是否同步修改了
2、原生方式创建Deployment并应用目录挂载到nfs
如下使用yaml的方式将镜像nginx中的目录/usr/share/nginx/html挂载到了nfs服务端的/nfs/data/nginx-pv目录,只要在挂载目录/nfs/data/nginx-pv里加文件,也会同步到了pod里/usr/share/nginx/html
kubectl apply -f nfs-demo.yaml
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx-pv-demoname: nginx-pv-demo
spec:replicas: 2selector:matchLabels:app: nginx-pv-demotemplate:metadata:labels:app: nginx-pv-demospec:containers:- image: nginxname: nginxvolumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlnfs:server: 192.168.134.110path: /nfs/data/nginx-pv
注意挂载的目录一定要先创建好否则查询当前应用时出现如下一直在创建中

进入这个pod详细信息,可以看到报错的详细问题 kubectl describe pod nginx-pv-demo-dc6884649-4phvz

这种方式缺点:1、需要提前创建好挂载的机器目录;2、当Pod删除,机器挂载的目录不会同时删除;3、无法指定目录的存储大小
3、使用静态PV/PVC持久卷方式
PV持久卷,可以指定大小,当PVC删除,对应的PV也会删除

PV:持久卷(Persistent Volume),将应用需要持久化的数据保存到指定位置
PVC:持久卷申明(Persistent Volume Claim),申明需要使用的持久卷规格
2、存储挂载PV/PVC实战
1、在nfs目录中创建PV的静态目录
#nfs主节点
mkdir -p /nfs/k8s/pv/data/01
mkdir -p /nfs/k8s/pv/data/02
mkdir -p /nfs/k8s/pv/data/03
2、创建静态PV持久卷
执行命令 kubectl apply -f pvdemo.yaml
以下可以写在一个文件中 ,用—分割,会自动识别成三个文件,server为主节点的IP地址。storageClassName表示一个标志,在后面创建PVC时需要用到。
apiVersion: v1
kind: PersistentVolume
metadata:name: pv01-10m
spec:capacity:storage: 10MaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/k8s/pv/data/01server: 192.168.134.110
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv02-1gi
spec:capacity:storage: 1GiaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/k8s/pv/data/02server: 192.168.134.110
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv03-3gi
spec:capacity:storage: 3GiaccessModes:- ReadWriteManystorageClassName: nfsnfs:path: /nfs/k8s/pv/data/03server: 192.168.134.110
3、查询PV持久卷

简写

4、创建PVC
pvc.yaml如下:storageClassName: nfs 对应创建的PV
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: nginx-pvc
spec:accessModes:- ReadWriteManyresources:requests:storage: 200MistorageClassName: nfs
因为申请的storage: 200Mi 指定了大小,所以被分配了拥有1G容量的PV

5、删除PVC
对应的PV也会被释放Released

6、查询PVC

7、创建Deployment应用同时挂载PVC
执行 kubectl apply -f pvcdemo.yaml
将创建好的PVC nginx-pvc挂载到当前创建的应用中。
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx-deploy-pvcname: nginx-deploy-pvc
spec:replicas: 2selector:matchLabels:app: nginx-deploy-pvctemplate:metadata:labels:app: nginx-deploy-pvcspec:containers:- image: nginxname: nginxvolumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlpersistentVolumeClaim:claimName: nginx-pvc
8、测试
修改挂载的目录,即可查看文件有没有同步。
相关文章:
轻松掌握K8S目录持久卷PV/PVC的kubectl操作知识点04
1、介绍 在docker中可以将容器中的目录挂载出来,在k8s中pod可以部署在不同节点,假如该节点的机器宕机了,k8s可能就会将此Pod转移到其他机器,就不是原先的机器了。k8s有自己的一套挂载方案,如下图所示, 原…...
Appuploader证书申请教程
转载:IOS证书制作教程 点击苹果证书 按钮 点击新增 输入证书密码,名称 这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作&…...
acwing17给了一个头节点,从尾到头输出链表的元素,顺便练练容器
方法一 建立一个数组,从头到尾遍历一遍链表,然后将链表的每个元素的值赋给数组 犯了一个错误 新建的vector容器是一个可变长的数组,要想像数组下标那样访问前提是这个下标所指向的元素得存在,这也就跟那个声明一维数组得写出长度来…...
Linux 性能优化大全!
性能指标 高并发和响应快对应着性能优化的两个核心指标:吞吐和延时 应用负载角度:直接影响了产品终端的用户体验 系统资源角度:资源使用率、饱和度等 性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快࿰…...
精通 TensorFlow 2.x 计算机视觉:第一部分
原文:Mastering Computer Vision with TensorFlow 2.x 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,…...
mulesoft MCIA 常用词汇、知识点汇总
mandate 授权 carry out 执行 subscriptions 订阅 stakeholders 利益相关者 periodically 定期地 Idempotent 幂等的 on-premises 本地 mutual 相互 two-way 双向的 arbitrary 任意的 mandatory 强制性的 round-robin 循环 replicate 复制 compensating actions 补…...
Python 单样本学习实用指南:1~6 全
原文:Hands-On One-shot Learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如…...
心血管疾病数据探索分析
心血管疾病数据探索分析 初步数据分析 首先,导入挑战所需模块: import pandas as pd import numpy as np import seaborn as sns import matplotlib import matplotlib.pyplot as plt import matplotlib.ticker from matplotlib import rcParams import warnings warnings…...
Pandas的应用-1
Pandas是一个开源的数据分析工具,它提供了高性能、易于使用的数据结构和数据分析工具。其中,Series是Pandas中最基本的数据结构之一,它是一种类似于一维数组的对象,可以储存任何数据类型。在本文中,我们将介绍Series的…...
【状态估计】电力系统状态估计的虚假数据注入攻击建模与对策(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【Spring】Spring @Import注解的使用和源码分析
文章目录 介绍Import导入bean的三种方式普通类ImportSelector接口ImportBeanDefinitionRegistrar接口 源码解析总结 介绍 今天主要介绍Spring Import注解,在Spring中Import使用得比较频繁,它得作用是导入bean,具体的导入方式有多种ÿ…...
C++中的类与对象
类与对象 我们在C语言中自定义的struct 叫做结构体,而在C中我们把struct升级为了类,并且还加入了一个class,也称为类,那么我们今天就来看一下结构体和类的不同和相同 1.结构体与类 我们在C语言中的结构体是struct,而…...
探索Qt图像处理的奥秘:从入门到精通
探索Qt图像处理的奥秘:从入门到精通(Exploring the Secrets of Qt Image Processing: From Beginner to Expert) 引言:Qt图像处理的概述和应用(Introduction: Overview and Applications of Qt Image Processing&#…...
springboot+vue企业人事人力资源管理系统java公司员工出差考勤办公OA系统
“简易云”是这个系统的名字 (6)系统管理:主要下拉分为角色管理、菜单管理; 角色管理:此页面可对角色进行增删改查操作,可修改不同角色的权限; 菜单管理:此页面可配置系统可展示的菜…...
设计模式-模板模式在Java中的使用示例
场景 模板模式 模板模式又叫模板方法模式(Template Method Pattern),是指定义一个算法的骨架,并允许子类为一个 或者多个步骤提供实现。 模板模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为型设计模式。 模…...
回溯算法及其应用
回溯是一种常见的算法思想,用于解决许多优化问题。该算法的核心思想是穷举所有可能的解决方案,然后通过剪枝来减少不必要的计算,以获得最优解。 回溯算法常用于求解组合、排列、子集和等问题。通常情况下,回溯算法需要递归地搜索…...
如何一步步打造完美的成绩查询系统平台?
想要搭建一个高效的在线发布成绩查询系统平台,首先需要了解哪些技术和工具是必备的。本文将为您介绍一些主流的技术和工具,帮助您快速搭建一个稳定、安全、易用的成绩查询系统。 想要制作在线成绩查询系统平台有两种方式,第一种是直接使用易…...
P1026 [NOIP2001 提高组] 统计单词个数
题目描述 给出一个长度不超过 200200 的由小写英文字母组成的字母串(该字串以每行 2020 个字母的方式输入,且保证每行一定为 2020 个)。要求将此字母串分成 �k 份,且每份中包含的单词个数加起来总数最大。 每份中包含…...
CTFHub | eval执行
0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。 0x01 题目描述…...
IP协议头
IP 4位版本号(version)4位头部长度(header length)8位服务类型(Type Of Service)16位总长度(total length)16位标识(id)3位标志字段13位分片偏移(…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
