k8s-nfs实现创建sc的两种方式

法一:基于 官方 NFS CSI 插件
法二:基于 nfs-subdir-external-provisioner

法一 官方 NFS CSI 插件

大致步骤


# 安装 NFS
sudo apt update
sudo apt install -y nfs-kernel-server
# 创建共享目录
sudo mkdir -p /data/nfs
sudo chmod 777 /data/nfs
# 配置 NFS 导出
echo "/data/nfs *(rw,sync,no_subtree_check,no_root_squash)" | sudo tee -a /etc/exports
# 应用配置
sudo exportfs -rav
# 启动并开机自启
sudo systemctl enable --now nfs-kernel-server
# 验证
showmount -e localhost# 安装nfs csi驱动,可以通过提前将镜像下载到本地
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/v4.6.0/rbac-csi-nfs.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/v4.6.0/csi-nfs-driverinfo.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/v4.6.0/csi-nfs-controller.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/deploy/v4.6.0/csi-nfs-node.yaml#创建sc
cat nfs-sc.yamlapiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-csi
provisioner: nfs.csi.k8s.io
parameters:server: 192.168.10.100  #你的nfsshare: /data/nfs
reclaimPolicy: Retain
volumeBindingMode: Immediate# 创建
kubectl apply -f nfs-sc.yaml# 使用pod验证
cat nginx.yamlapiVersion: apps/v1
kind: StatefulSet
metadata:name: web
spec:serviceName: "nginx"replicas: 2selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginxports:- containerPort: 80name: webvolumeMounts:- name: wwwmountPath: /usr/share/nginx/htmlvolumeClaimTemplates:- metadata:name: wwwspec:accessModes: [ "ReadWriteOnce" ]resources:requests:storage: 5GistorageClassName: nfs-csi    # 启动pod
kubectl apply -f nginx.yaml
# 验证
kubectl get pv,pvc,sc,pod

参考:https://blog.csdn.net/weixin_49343462/article/details/121831380

法二 nfs-subdir-external-provisioner

步骤:

git clone https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner.git
cd nfs-subdir-external-provisioner/deploy
root@ubuntu-new:/tmp/nfs-subdir-external-provisioner-master/deploy# ls
class.yaml  deployment.yaml  kustomization.yaml  objects  rbac.yaml  test-claim.yaml  test-pod.yaml# 然后编辑deploy.yamlcontainers:- name: nfs-client-provisioner
#         image: registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2image: registry.cn-beijing.aliyuncs.com/pylixm/nfs-subdir-external-provisioner:v4.0.0volumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: k8s-sigs.io/nfs-subdir-external-provisioner  #可以修改value,修改后,需要将class.yaml文件中的provisioner也进行修改- name: NFS_SERVERvalue: 192.168.10.x- name: NFS_PATHvalue: /nfsvolumes:- name: nfs-client-rootnfs:server: 192.168.10.xpath: /nfs# 创建资源
kubectl apply -f rbac.yaml
kubectl apply -f deployment.yaml
kubectl apply -f class.yaml
kubectl apply -f pvc-test.yaml  # 测试文件
# 通过kubectl get pvc 查看是否成功

参考:https://www.bilibili.com/video/BV1MT411x7GH/?spm_id_from=333.788.videopod.episodes&p=67

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

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

相关文章

n8n 入门指南:更适合跨境出海搞钱的AI智能体

如果你最近刷到 AI 圈的分享应该会发现——n8n 又火起来了。其实 n8n 早在 2020 年左右就被程序员玩过一波,当时很多人拿它做网站自动发邮件、消息转发之类的“流程自动化”。但那时候 AI 还没这么卷,大家也没觉得多有用。n8n为什么最近又翻红&#xff1…

【数据分享】各省农业土地流转率(2010-2023)

数据介绍土地流转是推动农业规模化、现代化发展的关键机制。为助力相关研究,现分享一份覆盖全国30个省级行政区、时间跨度为2010-2023年的农业土地流转率面板数据集。本数据直接提取自权威统计年报,具有较高的参考价值。一、数据概览覆盖范围&#xff1a…

音视频时间戳获取与同步原理详解

引言:为什么音视频同步如此重要? 在音视频技术领域,"同步"是决定用户体验的核心要素。想象一下观看电影时画面与声音错位0.5秒的场景:角色说话时嘴唇动作与声音不匹配,爆炸场景的视觉冲击先于音效到达——这…

Day38--动态规划--322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结

Day38–动态规划–322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结 今天的是几道经典的“完全背包”题目。前两道题目,要区分求的是“价值”,还…

应用层Http协议(1)

应用层Http协议(1) 在互联网世界中,HTTP(HyperText Transfer Protocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传…

elementui input无法输入问题

背景。开发小程序。自定义表单在pc段设置好input输入框属性后。 在小程序端无法输入原因:长度受限制,导致input组件的maxlength属性认为长度是0导致无法输入任何值。看解释是应为遇到空字符串等情况会设置为0解决。因为未找到设置maxlength为0处&#xf…

算法_python_学习记录_02

算法学习和视频学习过程中,有许多前几天还不知道的知识点,现在一点一点归纳整理出来,稳步前进,前进~ 20_贪心算法系列题 00_参考文档 详解贪心算法(Python实现贪心算法典型例题)_顺序贪婪算法-CSDN博客P…

Meta AI水印计划的致命缺陷——IEEE Spectrum深度文献精读

一、原文信息 标题: Metas AI Watermarking Plan Is Flimsy, at Best 中文译名: Meta的AI水印计划脆弱不堪 作者: David Evan Harris(加州大学伯克利分校)、Lawrence Norden(纽约大学法学院) 发表日期: 2024年3月5日 发表期刊: IEEE Spectrum 二、原文全文翻译 Met…

gpt-oss 全量技术解读

一、概述 gpt-oss 是 OpenAI 发布的开放权重(open-weight)模型系列,面向强推理、Agent 能力与多样化应用场景。 提供两种规格: gpt-oss-120b:面向生产与高推理需求,单卡 80GB GPU(如 NVIDIA …

实现EtherNet/IP网络与Modbus TCP网络之间数据互通

硬件连接与配置使用工业以太网网关(如ENE-350)作为桥接设备,通过以太网交换机实现硬件互联。 网关需根据应用场景配置为EtherNet/IP从站或Modbus TCP主/从站模式。案例1:EtherNet IP主站PLC和Modbus TCP主站PLC的互联网关配置&…

zookeeper因jute.maxbuffer启动异常问题排查处理

#作者:程宏斌 文章目录一、前言二、问题描述三、定位过程四、问题根因五、解决方案根本解决方案应急处理方案调大参数可能出现的问题六、总结为什么超出会报错官方对于jute.maxbuffer的解释注意事项官方建议一、前言 在分布式系统中,ZooKeeper作为关键的…

Java基础十三: List

目录 1.Java LinkedList 的高级应用与示例 1.1 LinkedList的基本使用 基本操作示例 1.2 LinkedList独有的方法 特定方法示例 1.3 队列模式(先进先出) 队列模式示例 1.4 栈模式(先进后出) 栈模式示例 总结 2.Java Vecto…

[机器学习]03-基于核密度估计(KDE)的鸢尾花数据集分类

关键点:使用核密度估计(KDE) 估计类别条件概率密度(高斯核,带宽0.2)采用最大后验概率(MAP) 决策准则进行分类程序代码:import random import matplotlib from sklearn.ne…

jmeter怎么实现多个请求真正的同时发送

1.首先在插件管理器Plugins Manager中搜索插件Parallel Controller&Sampler,勾选上对应的插件后,在右下角点击Apply Changes and Restart JMeter,安装插件2.插件安装完毕后,然后在线程组上面右击,点击添加--逻辑控…

复杂环境下车牌识别准确率↑29%:陌讯动态特征融合算法实战解析

原创声明本文为原创技术解析,核心技术参数与架构设计引用自《陌讯技术白皮书》,转载需注明来源。一、行业痛点:车牌识别的现实挑战在智慧交通、停车场管理等场景中,车牌识别作为关键技术环节,长期面临多重环境干扰。据…

Express中间件和路由及响应方法

1.中间件分类 应用程序级别中间件 通过 app.use() 或 app.METHOD()(如 app.get)绑定的中间件,作用于整个应用程序。例如 记录请求日志、解析请求体等全局功能。例如: app.use((req, res, next) > {console.log(Request URL:…

Dokcer创建中间件环境

简而言之,用docker来搞中间件环境比价好使,不用关心各种环境了 rabbitmqsudo docker run -d \--name rabbitmq \-p 5672:5672 \-p 15672:15672 \rabbitmq:3.8-managementredis 5.0.3 docker start my-redisdocker run --name my-redis -d -p 6379:6379 \…

Linux高级编程-文件操作

1.Linux下的文件类型7种文件类型:b 块设备文件 -------> 存储类设备(硬盘) c 字符设备文件 ------->如输入输出设备(鼠标键盘显示器...) d 目录文件 ------->文件夹 - 普通文件 -------&g…

web:vue中import *** from 和import {***} from的区别

在Vue.js中,import语句用于导入模块、组件或变量等。使用带花括号{}和不带花括号的区别主要在于导入的内容是具名导出(named exports)还是默认导出(default export)。 默认导入 (Default Import) - 不带花括号 import Vue from vue; import MyComponent from ./MyCompone…

Mysql如何优化my.conf配置文件?

优化 MySQL 的 my.cnf 配置文件,可以显著提升数据库性能,特别是在高并发或大数据量场景下。以下是优化 my.cnf 的方法和建议,涵盖 常见配置项、参数说明 和 优化技巧。1. 优化前的准备工作在修改 my.cnf 之前,需了解以下内容&…