当前位置: 首页 > news >正文

在K8s中部署动态nfs存储provisioner

背景

之前,我已经在一台worker node上安装了local lvm 的provisioner来模拟需要本地高IOPS的数据库等stafeful应用的实现。
为了后续给虚拟机里的K8s集群安装可用的metrics和logs监控系统(metrics和logs的时序数据库需要永久存储),特为K8s 集群提供基于nfs的文件服务器一台,并安装nfs provisioner, 以便实现动态分配nfs volume给pods使用的目的。

实现一套nfs server/client 系统

Step1 nfs server installation

Target :File server
IP: 192.168.80.223
NFS folder:/mnt/nfs_share

   # 安装nfs server25  sudo apt install -y nfs-kernel-server #创建目录26  sudo mkdir -p /mnt/nfs_share  27  sudo chmod 777 /mnt/nfs_share 28  sudo vim /etc/exports #添加一行  /mnt/nfs_share *(rw,sync,no_root_squash,no_subtree_check)30  sudo exportfs -ra# 重启nfs服务33  sudo systemctl restart nfs-server# 确保开机自启动34  sudo systemctl enable nfs-server 

Step2 nfs-clients installation

Target :K8s worker nodes
NFS folder:/mnt/nfs_client

  157  sudo apt install -y nfs-common158  sudo mkdir -p /mnt/nfs_client159  sudo mount -t nfs 192.168.80.223:/mnt/nfs_share /mnt/nfs_client160  vim /etc/fstab
#添加一行 192.168.80.223:/mnt/nfs_share  /mnt/nfs_client  nfs  defaults  0  0

实现nfs provisioner

step1 installing

Target:K8s cp(master) node

#通过Helm 添加nfs provisioner,先添加相应chart的repo564  helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/ 565  helm repo update# 安装nfs provisioner,我忘记将这个nfs provisioner需要的controller等资源单独放一个namespace了。566  helm install nfs-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner   \--set nfs.server=192.168.80.223  \--set nfs.path=/mnt/nfs_share

step2 验证

# sc是cluster wide的资源,所以不用-n 指定namespace
root@master:/opt/k8sconfig$sudo kubectl get sc 
NAME                  PROVISIONER                                                     RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
nfs-client            cluster.local/nfs-provisioner-nfs-subdir-external-provisioner   Delete          Immediate              true                   36m
topolvm-provisioner   topolvm.io                                                      Delete          WaitForFirstConsumer   true                   5d19h
# 查看controller的pod 是否在运行
root@master:/opt/k8sconfig$sudo kubectl get pods 
NAME                                                              READY   STATUS             RESTARTS   AGE
nfs-provisioner-nfs-subdir-external-provisioner-5796dc5fcfq6k2c   1/1     Running            0          36m

相关文章:

在K8s中部署动态nfs存储provisioner

背景 之前,我已经在一台worker node上安装了local lvm 的provisioner来模拟需要本地高IOPS的数据库等stafeful应用的实现。 为了后续给虚拟机里的K8s集群安装可用的metrics和logs监控系统(metrics和logs的时序数据库需要永久存储)&#xff0…...

家庭财务管理系统的设计与实现

标题:家庭财务管理系统的设计与实现 内容:1.摘要 摘要:随着家庭经济的日益复杂,家庭财务管理变得越来越重要。本文旨在设计并实现一个功能强大的家庭财务管理系统,以帮助用户更好地管理家庭财务。通过对家庭财务管理需求的分析,我…...

数据结构-Stack和栈

1.栈 1.1什么是栈 栈是一种特殊的线性表,只允许在固定的一段进行插入和删除操作,进行插入和删除操作的一段称为栈顶,另一端称为栈底。 栈中的数据元素遵顼后进先出LIFO(Last In First Out)的原则,就像一…...

使用vhd虚拟磁盘安装两个win10系统

使用vhd虚拟磁盘安装两个win10系统 前言vhd虚拟磁盘技术简介准备工具开始动手实践1.winX选择磁盘管理2.选择“操作”--“创建VHD”3.自定义一个位置,输入虚拟磁盘大小4.右键初始化磁盘5.选择GPT分区表格式6.右键新建简单卷7.给卷起个名字,用于区分8.打开…...

代码随想录34 动态规划

1.经典问题: 背包问题 打家劫舍 斐波那契数列 爬楼梯问题 股票问题 2.dp数组以及下标的含义 3.递推公式 3.dp数组初始化 4.遍历顺序 5.打印数组 leetcode509.斐波那契数列 1.确定dp[i]含义 dp[i]第i个斐波那契数的值为dp[i] 2.递推公式:dp[…...

【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细)

文章目录 【2025年最新版】Java JDK安装、环境配置教程 (图文非常详细)1. JDK介绍2. 下载 JDK3. 安装 JDK4. 配置环境变量5. 验证安装6. 创建并测试简单的 Java 程序6.1 创建 Java 程序:6.2 编译和运行程序:6.3 在显示或更改文件的…...

Shell特殊状态变量以及常用内置变量总结

目录 1. 特殊的状态变量 1.1 $?(上一个命令的退出状态) 1.2 $$(当前进程的 PID) 1.3 $!(后台进程的 PID) 1.4 $_(上一条命令的最后一个参数) 2.常用shell内置变量 2.1 echo&…...

【4Day创客实践入门教程】Day4 迈向高手之路——进一步学习!

Day4 迈向高手之路——进一步学习! 目录 Day4 迈向高手之路——进一步学习!更多的开发板外壳制作 Day0 创想启程——课程与项目预览Day1 工具箱构建——开发环境的构建Day2 探秘微控制器——单片机与MicroPython初步Day3 实战演练——桌面迷你番茄钟Day4…...

EtherCAT-快速搭建

EtherCAT-快速搭建 快速简介 快速简介 EtherCAT现场总线协议是由德国倍福公司在2003年提出的,该通讯协议拓扑结构十分灵活,数据传输速度快,同步特性好,可以形成各种网络拓扑结构。倍福公司推出了自己的ASIC专用芯片有ET1100和ET1…...

【设计测试用例自动化测试性能测试 实战篇】

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 设计测试用例…...

DBeaver连接MySQL提示Access denied for user ‘‘@‘ip‘ (using password: YES)的解决方法

在使用DBeaver连接MySQL数据库时,如果遇到“Access denied for user ip (using password: YES)”的错误提示,说明用户认证失败。此问题通常与数据库用户权限、配置错误或网络设置有关。本文将详细介绍解决此问题的步骤。 一、检查用户名和密码 首先&am…...

【MySQL — 数据库增删改查操作】深入解析MySQL的 Update 和 Delete 操作

1. 测试数据 mysql> select* from exam1; ----------------------------------------- | id | name | Chinese | Math | English | ----------------------------------------- | 1 | 唐三藏 | 67.0 | 98.0 | 56.0 | | 2 | 孙悟空 | 87.0 | 78.…...

04树 + 堆 + 优先队列 + 图(D1_树(D1_基本介绍))

目录 一、什么是树? 二、相关术语 根结点 边 叶子结点 兄弟结点 祖先结点 结点的大小 树的层 结点的深度 结点的高度 树的高度 斜树 一、什么是树? 树是一种类似于链表的数据结构,不过链表的结点是以线性方式简单地指向其后继结…...

【Proteus仿真】【51单片机】多功能计算器系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、LCD1602液晶显示 2、矩阵按键​ 3、加减乘除,开方运算 4、带符号运算 5、最大 999*999 二、使用步骤 基于51单片机多功能计算器 包含:程序&…...

Solon Cloud Gateway 开发:Route 的配置与注册方式

路由的配置与注册有三种方式:手动配置;自动发现配置;代码注册。 1、手动配置方式 solon.cloud.gateway:routes: #!必选- id: demotarget: "http://localhost:8080" # 或 "lb://user-service"predicates: #?可选- &quo…...

jstat命令详解

jstat 用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT 编译等运行数据。 命令的使用格式如下。 jstat [option] LVMID [interval] [count]各个参数详解: option:操作参数LVMID:本…...

[Collection与数据结构] B树与B+树

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…...

Ubuntu 24.04 安装 NVIDIA Container Toolkit 全指南:让Docker拥抱GPU

Ubuntu 24.04 安装 NVIDIA Container Toolkit 全指南:让Docker拥抱GPU 前言一、环境准备1.1 验证驱动状态 二、安装NVIDIA Container Toolkit2.1 添加官方仓库2.2 执行安装 三、配置Docker运行时3.1 更新Docker配置 四、验证安装结果4.1 运行测试容器 五、实战应用 …...

17.Word:李楠-学术期刊❗【29】

目录 题目​ NO1.2.3.4.5 NO6.7.8 NO9.10.11 NO12.13.14.15 NO16 题目 NO1.2.3.4.5 另存为手动/F12Fn光标来到开头位置处→插入→封面→选择花丝→根据样例图片,对应位置填入对应文字 (手动调整即可)复制样式:开始→样式对话框→管理…...

图漾相机——C++语言属性设置

文章目录 前言1.SDK API功能介绍1.1 Device组件下的API测试1.1.1 相机工作模式设置(TY_TRIGGER_PARAM_EX)1.1.2 TY_INT_FRAME_PER_TRIGGER1.1.3 TY_INT_PACKET_DELAY1.1.4 TY_INT_PACKET_SIZE1.1.5 TY_BOOL_GVSP_RESEND1.1.6 TY_BOOL_TRIGGER_OUT_IO1.1.…...

跨设备滚动优化:Scroll Reverser让macOS操作效率提升80%的效率工具

跨设备滚动优化:Scroll Reverser让macOS操作效率提升80%的效率工具 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 在当今多设备办公环境中,Mac用户常常面…...

Lenovo Legion Toolkit深度解析:5大场景硬件优化与性能调校实战指南

Lenovo Legion Toolkit深度解析:5大场景硬件优化与性能调校实战指南 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit …...

Swin2SR模型可解释性:理解超分决策过程

Swin2SR模型可解释性:理解超分决策过程 1. 引言 当我们使用Swin2SR这样的超分辨率模型时,经常会惊叹于它能够将模糊的低分辨率图像转换为清晰的高分辨率图像。但你是否好奇过,这个"AI显微镜"是如何做出这些决策的?它是…...

C++的std--ranges代码生成

C20引入的std::ranges库彻底改变了代码生成的范式,它将函数式编程与现代C特性结合,让开发者能以声明式语法高效生成和处理数据流。这一特性不仅提升了代码可读性,还通过编译期优化显著提升性能。下面从三个关键角度解析其代码生成能力。范围适…...

Qwen3-ASR-1.7B语音转文字实战:播客剪辑→静音段自动切除+有效语音精准切分

Qwen3-ASR-1.7B语音转文字实战:播客剪辑→静音段自动切除有效语音精准切分 1. 引言:播客剪辑的痛点与解决方案 做播客的朋友都知道,剪辑是最耗时的工作之一。一段60分钟的录音,真正有价值的内容可能只有40分钟,剩下的…...

OpenClaw网关配置详解:Qwen3-32B镜像的端口与安全设置

OpenClaw网关配置详解:Qwen3-32B镜像的端口与安全设置 1. 为什么需要关注网关配置? 上周我在本地部署Qwen3-32B模型时,遇到了一个尴尬的问题:凌晨3点被安全团队电话叫醒,原因是OpenClaw的测试端口被扫描到异常流量。…...

3步快速修复Netgear路由器变砖的终极解决方案

3步快速修复Netgear路由器变砖的终极解决方案 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 路由器变砖是许多网络设备用户最头疼的问题之一,特别是当固件升级失败或意外断电导致设备无法启动…...

BongoCat:让桌面交互充满生命力的开源伴侣

BongoCat:让桌面交互充满生命力的开源伴侣 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作,每一次输入都充满趣味与活力! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 在数字化工作与娱乐…...

从零到一:小智AI嵌入式merge.bin固件制作实战解析

1. 为什么需要merge.bin文件? 第一次接触小智AI机器人开发的朋友可能会疑惑:为什么官方提供的固件是一个单独的merge.bin文件,而自己编译出来的却是多个分散的bin文件?这个问题要从嵌入式系统的启动流程说起。 想象一下电脑开机过…...

AI 模型推理容器化性能优化方案

AI模型推理容器化性能优化方案 随着AI技术的快速发展,模型推理在生产环境中的部署需求日益增长。容器化技术凭借其轻量级、可移植性和高效资源管理的优势,成为AI模型部署的主流选择。在实际应用中,如何优化容器化AI推理的性能,降…...