k8s 进阶实战笔记 | NFS 动态存储类的部署与使用

文章目录

  • NFS 动态存储类的部署与使用
    • 演示环境说明
    • NFS subdir external provisioner
    • 准备 NFS 服务器
    • 手动部署 NFS Subdir External Provisioner
    • 部署 StorageClass
    • 验证使用
    • 更多信息

NFS 动态存储类的部署与使用

演示环境说明

演示环境信息:单机K3s 1.28.2

操作系统:CentOS Linux release 7.8.2003 (Core)

虚拟机基础信息:4C4G

NFS服务器:同1台服务器

NFS subdir external provisioner

  • k8s 不包含内部 NFS 驱动,所以需要安装外部驱动为 NFS 创建 StorageClass
  • NFS subdir external provisioner 是一种自动置备程序,它使用现有且已配置的 NFS 服务器来支持通过持久卷声明动态置备 k8s 持久卷

准备 NFS 服务器

服务端

## 安装服务端程序
yum -y install nfs-utils  rpcbind
## 配置NFS
mkdir /opt/data
## (vi /etc/exports)
/opt/data *(rw,no_root_squash,no_all_squash,anonuid=0,anongid=0,sync)
##启动服务
systemctl enable rpcbind --now
systemctl enable nfs --now

客户端

##安装客户端程序
rpm -qa |grep nfs-utils
yum -y install nfs-utils

在这里插入图片描述

手动部署 NFS Subdir External Provisioner

克隆项目

git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git

在这里插入图片描述

修改 YAML 文件

### 进入deploy目录
cd nfs-subdir-external-provisioner/deploy### 生效 rbac
kubectl apply -f rbac.yaml###修改部署文件deployment.yaml
#修改可拉取的镜像地址
sed -i 's#registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2#k8s.m.daocloud.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2#g' deployment.yaml#修改NFS服务器地址和共享路径(NFS_SERVER和NFS_PATH)
10.0.16.4
/opt/data### 部署驱动程序
kubectl apply -f deployment.yaml### 查看
kubectl get pod 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

部署 StorageClass

部署文件位置:nfs-subdir-external-provisioner/deploy/class.yaml

### class.yaml 示例文件
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-client
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
parameters:pathPattern: "${.PVC.namespace}/${.PVC.annotations.nfs.io/storage-path}"onDelete: delete### 部署
kubectl apply -f class.yaml

在这里插入图片描述

验证使用

验证文件

在这里插入图片描述

kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: test-claim
spec:storageClassName: nfs-client	### 指明动态存储类名称(上面的class.yaml的metadata字段)accessModes:- ReadWriteManyresources:requests:storage: 1Mi### 应用
kubectl apply -f test-claim.yaml

在这里插入图片描述

kind: Pod
apiVersion: v1
metadata:name: test-pod
spec:containers:- name: test-podimage: busybox:stablecommand:- "/bin/sh"args:- "-c"- "touch /mnt/SUCCESS && exit 0 || exit 1"volumeMounts:			### 声明需要挂载出去的容器路径- name: nfs-pvcmountPath: "/mnt"restartPolicy: "Never"volumes:- name: nfs-pvcpersistentVolumeClaim:claimName: test-claim### 生效
kubectl apply -f test-pod.yaml

查看效果

is ok

在这里插入图片描述

更多信息

其他部署方式参考:GitHub - kubernetes-sigs/nfs-subdir-external-provisioner: Dynamic sub-dir volume provisioner on a remote NFS server.

k8s设置默认存储类:改变默认 StorageClass | Kubernetes

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

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

相关文章

Rust-windows安装环境

文章目录 前言一、Using rustup (Recommended)二、配置vscode解决办法:在终端依次运行如下两条指令: 总结 前言 Rust学习系列,之前介绍了macOS环境下的rust安装方式macOS rust安装。这篇学习windows的rust安装方式。 提示:以下是…

注解@requestBody @requestParam@RequestHeader的区别和使用方式

总的来说,RequestBody用于接收请求体数据,RequestParam用于获取请求参数,RequestHeader用于获取请求头信息 requestBody requestBody 通常在POST请求中,用于指示一个方法参数应该绑定到Web请求的正文部分。通常用于接收JSON或XM…

几种常见的数据模型

什么式数据模型:数据如果要被存储记录或者分析,要有一个组织形式,那么,怎么把数据按照一定规律组织呢,这个就是数据模型数据模型分类 平面模型:或者称为二维模型,通过行列坐标确定数据的形式 纵…

银河麒麟桌面版操作系统密码复杂度设置

这里是桌面版的使用,资深使用者可以使用命令一键修改,这里面不涉及 1密码复杂度设置 1.1开始菜单,选择设置 快捷键wini也可以 1.2打开账户设置 1.3在安全中心的账号保护中 1.4推荐的是默认的策略 密码强度使用默认推荐的就可以&#xf…

电脑缺失XInput1_4.dll文件的解决办法

在电脑操作中,有用户遇到了XInput1_4.dll文件缺失的问题,导致一些依赖该文件的电脑应用无法正常运行,从而影响用户正常使用。接下来小编分享不同的解决方法,帮助用户轻松解决该问题,找回XInput1_4.dll文件,…

单片机文件系统

下载地址 FatFs - Generic FAT Filesystem Module (elm-chan.org)

四川尚熠电子商务有限公司抖音带货可靠吗?

在当今数字化时代,电子商务的兴起使得越来越多的企业开始涉足这一领域。四川尚熠电子商务有限公司作为其中的一员,提供抖音带货服务,吸引了众多商家的关注。那么,四川尚熠电子商务有限公司的抖音带货服务究竟可靠吗?本…

分享泰国市场的一些现状

最近和一个泰国的客户聊天,然后聊起来说从去年开始很多的中国人来到他们那边去建设工厂,因此还在当地形成了一个中国村,在这个中国村里有中国的各种商店,而且居住的也主要是中国人。 从前年开始我们都在讨论中国的一些工厂可能因为…

算法--贪心

这里写目录标题 区间问题区间选点引入算法思想例题代码 最大不相交区间的数量算法思想例题代码 区间分组算法思想例题代码 一级目录二级目录二级目录二级目录 区间问题 区间选点 引入 区间问题会给定几个区间,之后要求我们在数轴上选取尽量少的点,使得…

掌握微信小程序开发的核心要点:从基础到进阶

文章目录 掌握微信小程序开发的核心要点:从基础到进阶一、数据绑定和事件处理1.1 理解小程序的数据绑定机制,实现数据和视图的同步更新1.2 学习如何处理用户交互事件和触发相应的响应逻辑 二、网络请求和数据交互2.1 使用小程序的网络请求API与后端服务器…

智能充电桩案例分析——交流充电桩

随着电动汽车的发展,充电桩也成为当下的一个很热门的工业产品。我们初步接触充电桩,有了点滴的感受。 先简单说说容易一点的交流充电桩。就是通过市电(220V,50赫兹)给电动汽车提供充电的能源来源。很容易理解,交流…

亿道丨三防平板丨如何从多方面选择合适的三防加固平板?

在如今这个信息爆炸的时代,移动设备已经成为我们生活和工作的必备工具。然而,在一些特殊的场合中,普通的平板电脑可能无法满足需求,比如工厂车间、野外作业、极端天气等环境下。此时,三防平板就成了不二之选。那么&…

以太网中的Pause帧格式

一、PAUSE帧概念 PAUSE帧是以太网在全双工模式下,MAC控制子层发出的流量控制帧。IEEE802.3协议为MAC控制子层提供了一个全双工流量控制结构框架,MAC控制子层是介于逻辑链路控制子层和介质访问控制子层间的可选功能。 交换控制电路要防止缓冲区溢出&…

黑马瑞吉外卖练习笔记

day2 员工管理 完善登录 问题:用户不登录,直接访问系统首页,照样可以正常访问。我们希望,只有登录成功后才可以访问系统中的页面,如果没有登录则跳转到登录页面 怎么实现? 用过滤器或拦截器,在…

阿里云文件验证方式申请SSL证书的教程

文件验证方式申请SSL免费证书 ***.com.cn 下载验证文件然后解压出来 将验证文件放到通过域名的80端口能访问到的地方:E:\deploy\dygw.well-known\pki-validation 验证文件返回的内容

【代码+图解+解析】校门外的树

文章目录 问题描述输入格式输出格式输出要求输入样例输出样例解题思路图示Java代码C代码C代码Java代码输出结果 问题描述 某校大门外长度为 L的马路上有一排树,每两棵相邻的树之间的间隔都是 1米。我们可以把马路看成一个数轴,马路的一端在数轴 0 的位置…

fpmarkets澳福归类总结不同十字星K线的含义

不同的十字星K线代表了不同的含义,各位投资者你们知道这些十字星K线的含义吗?今天fpmarkets澳福就归类总结一下。 首先墓碑十字星和蜻蜓十字星归为一类,重点以墓碑十字星作为参考: 墓碑十字星是一种熊市反转烛台模式,当…

水果FL Studio21.2.3.4004里的一个动态视觉插件Fruity Dance的教程

这是一篇关于水果(FL Studio)里的一个动态视觉插件Fruity Dance的教程。前部分较多地引用了FL的帮助文档,后部分结合了我操作的一些经验。 (文中这种颜色的字可略过不看,属于一些基础操作的解释补充) 准备材…

代码随想录Leetcode377. 组合总和 Ⅳ

题目&#xff1a; 代码(首刷看解析 2024年2月27日&#xff09;&#xff1a; class Solution { public:// 思路&#xff1a;动态规划int combinationSum4(vector<int>& nums, int target) {// 1条件判断:无// 2定义dp 初始化 总和为target的数量vector<int> dp…

shiro 整合 springmvc 实战及源码详解

序言 前面我们学习了如下内容&#xff1a; 5 分钟入门 shiro 安全框架实战笔记 shiro 整合 spring 实战及源码详解 相信大家对于 shiro 已经有了最基本的认识&#xff0c;这一节我们一起来学习写如何将 shiro 与 springmvc 进行整合。 spring mvc 整合源码 maven 依赖 版…