CI/CD(三) 安装nfs并指定k8s默认storageClass

一、NFS 服务端安装(主节点 10.60.0.20)

1. 安装 NFS 服务端

sudo apt update
sudo apt install -y nfs-kernel-server

2. 创建共享目录并配置权限

sudo mkdir -p /data/k8s sudo chown nobody:nogroup /data/k8s

# 允许匿名访问

sudo chmod 777 /data/k8s

3. 配置 NFS 导出规则

编辑 /etc/exports 文件:

sudo nano /etc/exports

添加以下内容(允许从节点读写):

/data/k8s *(rw,sync,no_subtree_check,no_root_squash)

4. 启动并验证 NFS 服务

sudo systemctl restart nfs-kernel-server

sudo systemctl enable nfs-kernel-server

# 检查导出列表

sudo exportfs -v

二、NFS 客户端安装(所有节点)

1. 所有节点安装 NFS 客户端

sudo apt update sudo apt install -y nfs-common

2. 手动挂载测试(可选)

# 在从节点测试挂载

sudo mkdir -p /mnt/nfs

sudo mount 10.60.0.20:/data/k8s /mnt/nfs

# 验证挂载

df -h | grep nfs

3. 配置持久化挂载(所有节点)

sudo nano /etc/fstab

添加:

10.60.0.20:/data/k8s /mnt/nfs nfs defaults 0 0

执行挂载:

sudo mount -a

三、Kubernetes 配置 NFS 存储类

1. 创建 ServiceAccount 和 RBAC 权限
# nfs-rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-provisioner
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: nfs-provisioner-binding
subjects:- kind: ServiceAccountname: nfs-provisionernamespace: default
roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io

应用配置:

kubectl apply -f nfs-rbac.yaml
2. 部署 NFS Provisioner
# nfs-provisioner.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nfs-client-provisioner
spec:replicas: 1selector:matchLabels:app: nfs-provisionertemplate:metadata:labels:app: nfs-provisionerspec:serviceAccountName: nfs-provisionercontainers:- name: nfs-clientimage: registry.cn-beijing.aliyuncs.com/mydlq/nfs-subdir-external-provisioner:v4.0.0env:- name: PROVISIONER_NAMEvalue: fuseim.pri/ifs- name: NFS_SERVERvalue: 10.60.0.20  # 主节点 IP- name: NFS_PATHvalue: /data/k8s    # 共享目录路径volumeMounts:- name: nfs-rootmountPath: /persistentvolumesvolumes:- name: nfs-rootnfs:server: 10.60.0.20path: /data/k8s
应用配置:
kubectl apply -f nfs-provisioner.yaml
3. 创建默认 StorageClass
# nfs-storageclass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-storageannotations:storageclass.kubernetes.io/is-default-class: "true"
provisioner: fuseim.pri/ifs
parameters:archiveOnDelete: "false"

应用配置:

kubectl apply -f nfs-storageclass.yaml

四、验证存储类

检查存储类状态

kubectl get sc
# 输出应显示 nfs-storage 为 DEFAULT

测试 PVC 创建

# test-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: test-pvc
spec:accessModes:- ReadWriteManystorageClassName: nfs-storageresources:requests:storage: 1Gi

应用并验证:

kubectl apply -f test-pvc.yaml
kubectl get pvc test-pvc  # 状态应为 Bound

常见问题处理

  • 挂载失败:检查主节点防火墙是否开放 2049(NFS)、111(RPC)端口 
     
  • PVC 未绑定:检查 nfs-provisioner Pod 日志:
    kubectl logs -l app=nfs-provisioner
  • 权限拒绝:确保共享目录权限为 777,且 /etc/exports 中配置了 no_root_squash 

    通过以上步骤,可为 Kubernetes 集群提供基于 NFS 的持久化存储支持,解决 "没有存储类" 的问题。

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

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

相关文章

【redis】主从复制:单点问题、配置详解、特点详解

文章目录 单点问题什么是主从复制主从模式能解决的问题并发量有限可用性问题 配置建立复制通过配置文件来指定端口配置主从查看集群结构 断开复制 特点安全性只读传输延迟 单点问题 分布式系统中,涉及到一个非常关键的问题:单点问题 某个服务器程序&…

VSCode 生成HTML 基本骨架

在VSCode 新建html文件中敲一个英文感叹号 ! <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…

STM32定时器-01定时器概述

内容概述 定时器是STM32中功能最强大、结构最复杂的一个外设&#xff0c;分为四部分&#xff1a; 一部分&#xff1a;定时中断功能 二部分&#xff1a;定时器输出比较&#xff0c;常见的用途&#xff1a;产生PWM波形&#xff0c;驱动电机&#xff08;如驱动舵机和直流电机&…

在 Ubuntu 中用 Docker 安装 RAGFlow

一、安装 1.前提条件 CPU > 4 核 RAM > 16 GB Disk > 50 GB Docker > 24.0.0 & Docker Compose > v2.26.1 安装docker&#xff1a;在Ubuntu中安装Docker并配置国内镜像 2.设置 vm.max_map_count #设置 vm.max_map_count 不小于 262144# 查看 sysctl vm.…

17153 班级活动

17153 班级活动 ⭐️难度&#xff1a;简单 &#x1f31f;考点&#xff1a;2023、思维、国赛 &#x1f4d6; &#x1f4da; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class Main {static int N 10…

Java IO 流:从字节到字符再到Java 装饰者模式(Decorator Pattern),解析与应用掌握数据流动的艺术

在 Java 编程中&#xff0c;IO&#xff08;输入输出&#xff09;流是处理数据输入输出的核心工具。无论是读取文件、网络通信&#xff0c;还是处理用户输入&#xff0c;IO 流都扮演着重要角色。本文将深入探讨 Java IO 流的核心概念、分类、经典代码实例及其应用场景&#xff0…

HTTPS

目录 一 HTTPS是什么 二 加密 三 加密方案 四 CA机构/证书 五 最终方案(对称密钥/非对称密钥/CA证书)和总体流程 一 HTTPS是什么 在应用层存在SSL&#xff0c;TLS(HTTP之下&#xff0c;传输层之上)加密/解密安全协议&#xff0c;如果HTTP经过这个协议&#xff0c;对端也走…

StarRocks 主键(Primary Key)深度解析

一、StarRocks 产品简介 StarRocks 是一款高性能分析型数据库&#xff0c;专为海量数据的实时分析而设计。作为新一代湖仓&#xff08;Lakehouse&#xff09;加速引擎&#xff0c;StarRocks 融合了 MPP 架构和列式存储引擎的优势&#xff0c;能够支持亿级数据秒级查询响应。 …

(学习总结30)Linux 进程优先级、进程切换和环境变量

Linux 进程优先级、进程切换和环境变量 进程优先级基本概念查看系统进程PRI 和 NI 解释进程优先级调整命令行调整进程优先级调整新进程调度优先级命令 nice调整已运行进程调度优先级命令 renice 使用 top 调整进程优先级使用系统调用调整进程优先级 进程的竞争、独立、并行、并…

《Manus学习手册》.pdf(文末附完整版下载地址)

大家好&#xff0c;我是吾鳴。 吾鳴今天要给大家分享的一份比较全面详细的Manus学习手册&#xff0c;该学习手册主要包含Manus产品概述与核心理念、Manus功能与使用场景、Manus技术架构与工作流、Manus案例库与用户实践、邀请码获取与内测信息、Manus与传统AI对比与优势、用户评…

【MySQL】从零开始:掌握MySQL数据库的核心概念(三)

人生碌碌&#xff0c;竞短论长&#xff0c;却不道枯荣有数&#xff0c;得失难量。 前言 这是我自己学习MySQL数据库的第二篇博客总结。后期我会继续把MySQL数据库学习笔记开源至博客上。 上一期笔记是关于MySQL数据库的数据类型&#xff0c;没看的同学可以过去看看&#xff1a…

Web3智能合约与数据交互安全性探讨

Web3智能合约与数据交互安全性探讨 随着区块链技术的飞速发展&#xff0c;Web3的概念已经成为技术圈的热门话题。Web3不仅仅是技术迭代&#xff0c;它代表了一种全新的互联网交互方式&#xff0c;其中智能合约扮演着核心角色。智能合约是自动执行、控制或文档化法律事件和行动…

人工智能赋能山西乡村振兴:智能空间规划与可持续发展

摘要&#xff1a;随着人工智能技术的快速发展&#xff0c;山西乡村振兴面临着从传统农业到智能化现代化转型的重大机遇。本文探讨了人工智能在山西乡村振兴中的具体应用&#xff0c;重点分析了智能空间规划、生态保护与环境治理、产业转型以及基础设施升级的可能路径。文章从数…

QT三 自定义控件

一 自定义控件 现在的需求是这样&#xff1a; 假设我们要在QWidget 上做定制&#xff0c;这个定制包括了关于 一些事件处理&#xff0c;意味着要重写QWidget的一些代码&#xff0c;这是不实际的&#xff0c;因此我们需要自己写一个MyWidget继承QWidget&#xff0c;然后再MyWi…

【C++ 进阶】语句:从基础到实践

目录 一、输入输出体系的范式革命 1.1 C语言的格式化 1.2 C的流抽象革命 二、字符串处理的抽象跃迁 2.1 C语言的字符指针 2.2 C的string类革命 三、结构体到类的类型系统进化 3.1 C语言的结构体局限 3.2 C类的革命性演进 四、基础控制语句差异 4.1 条件语句&#xf…

C语言操作符

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…

PostgreSQL:语言基础与数据库操作

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

KMP算法

KMP算法 为什么叫做KMP呢。 因为是由这三位学者发明的&#xff1a;Knuth&#xff0c;Morris和Pratt&#xff0c;所以取了三位学者名字的首字母。所以叫做KMP next数组就是一个前缀表&#xff08;prefix table&#xff09;。 前缀表是用来回退的&#xff0c;它记录了模式串与…

3D点云数据处理中的聚类算法总结

1.欧式聚类&#xff1a; 基于点的空间距离&#xff08;欧几里得距离&#xff09;来分割点云&#xff0c;将距离较近的点归为同一簇。 欧式聚类需要的参数&#xff1a;邻域半径R,簇的最小点阈值minPts&#xff0c;最大点数阈值maxPts。 实现效率&#xff1a; O(n * log n) 实现…

WRC世界机器人大会-2024年展商汇总

2024世界机器人大会 时间&#xff1a;2024年8月21日至25日 地点&#xff1a;北京经济技术开发区北人亦创国际会展中心 大会主题&#xff1a;共育新质生产力&#xff0c;共享智能新未来 2024世界机器人博览会亮点纷呈&#xff0c;20余款人形机器人整机将亮相博览会&#xff…