【k8s】pvc 配置的两种方式volumeClaimTemplates 和 PersistentVolumeClaim

pvc配置实例   

实例1

在Deployment中配置 template:xxxxxxvolumeClaimTemplates:- metadata:name: dataspec:accessModes:- ReadWriteOnceresources:requests:storage: 1GistorageClassName: nfsdev-storageclass (创建好的storageClassName)

实例2

#先创建一个pvc 然后在 Deployment中引用
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nacosserver-pvcnamespace: xxxdev
spec:storageClassName: course-nfs64storageaccessModes:- ReadWriteOnceresources:requests:storage: 1Gi##################################################containers........#创建了卷pvcdata,然后挂载到容器中的某个目录volumeMounts:- name: pvcdatamountPath: /home/nacos/plugins/peer-findersubPath: peer-finder- name: pvcdatamountPath: /home/nacos/datasubPath: data- name: pvcdatamountPath: /home/nacos/logssubPath: logs# 修复点 2: volumes 定义在 Pod 级别(与 containers 同级)volumes:- name: pvcdatapersistentVolumeClaim:claimName: nacosserver-pvc

两种pvc使用的不同

     这两个配置涉及 Kubernetes 中两种不同的 PVC(PersistentVolumeClaim)使用方式,主要区别在于创建方式使用场景


1. volumeClaimTemplates (动态模板方式)

volumeClaimTemplates:       # 用于 StatefulSet 的动态 PVC 模板- metadata:name: data           # 生成的 PVC 名称前缀(如 data-0, data-1)spec:accessModes: [ "ReadWriteMany" ]  # 多节点读写storageClassName: "course-nfs64storag"  # 存储类名称(注意拼写)resources:requests:storage: 20Gi    # 请求 20GB 存储
✅ 特点:
  • 动态创建 PVC
    当 StatefulSet 被部署时,Kubernetes 会自动为每个 Pod 副本生成独立的 PVC(如 data-<pod-name>-0data-<pod-name>-1)。

  • 绑定 StatefulSet 生命周期
    删除 StatefulSet 时,关联的 PVC 默认不会被删除(需手动清理)。

  • 适用场景
    有状态应用(如 MySQL、Redis 集群),每个 Pod 需要独立的持久化存储。


2. 独立 PVC + 手动引用方式

# 先创建独立的 PVC 资源
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: nacosserver-pvc      # 固定名称的 PVCnamespace: xxxdev     # 指定命名空间
spec:storageClassName: course-nfs64storage  # 存储类名称accessModes:- ReadWriteOnce         # 单节点读写resources:requests:storage: 1Gi          # 请求 1GB 存储
---
# 在 Pod/Deployment 中引用已存在的 PVC
volumes:- name: pvcdatapersistentVolumeClaim:claimName: nacosserver-pvc  # 直接引用 PVC 名称
✅ 特点:
  • 静态创建 PVC
    手动提前创建 PVC 资源(通过 kubectl apply)。

  • 跨 Pod 共享存储
    多个 Pod 可通过 claimName 引用同一个 PVC(需访问模式支持,如 ReadWriteMany)。

  • 独立生命周期
    PVC 与 Pod 解耦,删除 Pod 不会删除 PVC。

  • 适用场景
    通用存储需求(如单实例应用、共享存储目录)。


🔍 关键区别总结:

特性volumeClaimTemplates (StatefulSet)独立 PVC + claimName
PVC 创建方式动态生成(按 Pod 副本数自动创建)手动预先创建
PVC 命名规则自动生成(如 data-0data-1固定名称(如 nacosserver-pvc
存储隔离性每个 Pod 有独立 PVC多个 Pod 可共享同一 PVC
访问模式示例中为 ReadWriteMany(多节点读写)示例中为 ReadWriteOnce(单节点读写)
适用控制器专用于 StatefulSet适用于 Pod/Deployment/StatefulSet
生命周期管理随 StatefulSet 创建/删除(PVC 需手动删)独立管理

❗ 注意事项:

  1. 访问模式冲突
    示例中 volumeClaimTemplates 使用 ReadWriteMany,而独立 PVC 使用 ReadWriteOnce
    若多个 Pod 同时挂载独立 PVC,必须使用 ReadWriteMany,否则会出现挂载错误

  2. 存储类名称拼写
    volumeClaimTemplates 中为 course-nfs64storag(少字母 e),独立 PVC 中为 course-nfs64storage
    需确保名称一致,否则可能因存储类不存在导致 PVC 挂起。

  3. 存储大小差异
    动态模板申请 20Gi,独立 PVC 申请 1Gi,根据实际需求调整。


💡 选择建议:

  • 需要 为每个 Pod 提供独立存储(如数据库集群)→ volumeClaimTemplates + StatefulSet

  • 需要 共享存储卷(如配置文件目录)→ 独立 PVC + claimName
    (确保存储类支持 ReadWriteMany,如 NFS)

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

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

相关文章

Logistic Loss Function|逻辑回归代价函数

----------------------------------------------------------------------------------------------- 这是我在我的网站中截取的文章&#xff0c;有更多的文章欢迎来访问我自己的博客网站rn.berlinlian.cn&#xff0c;这里还有很多有关计算机的知识&#xff0c;欢迎进行留言或…

计算机网络技术-知识篇(Day.1)

一、网络概述 1、网络的概念 两个不在同一地理位置的主机&#xff0c;通过传输介质和通信协议&#xff0c;实现通信和资源共享。 2、网络发展史 第一阶段&#xff08;20世纪60年代&#xff09; 标志性事件&#xff1a;ARPANET的诞生关键技术&#xff1a;分组交换技术 第二…

工业元宇宙:迈向星辰大海的“玄奘之路”

一、从认知革命到工业革命&#xff1a;文明跃迁的底层逻辑1.1 认知革命&#xff1a;人类协作的基石时间线&#xff1a;约7万年前&#xff0c;智人通过语言和想象力构建共同虚拟现实&#xff0c;形成部落协作模式。核心突破&#xff1a;虚构能力&#xff1a;创造神、国家、法律等…

9. React组件生命周期

2. React组件生命周期 2.1. 认识生命周期 2.1.1. 很多事物都有从创建到销毁的整个过程&#xff0c;这个过程称之为生命周期&#xff1b;2.1.2. React组件也有自己的生命周期&#xff0c;了解生命周期可以让我们在最合适的地方完成想要的功能2.1.3. 生命周期和生命周期函数的关系…

【单板硬件开发】关于复位电路的理解

阅读紫光同创供应商提供的FPGA单板硬件开发手册&#xff0c;发现复位电路他们家解释的很通俗易懂&#xff0c;所以分享一下。如下图&#xff0c;RST_N 是低有效的异步全芯片复位信号&#xff0c;一般外部连接电路有 3 种形式如图 3–2&#xff0c;可根据实际需要选择合适的电路…

《Unity Shader入门精要》学习笔记一

1、本书的源代码 https://github.com/candycat1992/Unity_Shaders_Book 2、第1章 Shader是面向GPU的工作方式 3、第2章 渲染流水线 Shader&#xff1a;着色器 渲染流水线&#xff1a;目标是渲染一张二维纹理&#xff0c;输入是一个虚拟摄像机、一些光源、一些Shader以及纹…

从零到一:TCP 回声服务器与客户端的完整实现与原理详解

目录 一、TCP 通信的核心逻辑 二、TCP 服务器编程步骤 步骤 1&#xff1a;创建监听 Socket 步骤 2&#xff1a;绑定地址与端口&#xff08;bind&#xff09; 步骤 3&#xff1a;设置监听状态&#xff08;listen&#xff09; 步骤 4&#xff1a;接收客户端连接&#xff08…

MyBatis-Plus核心内容

MyBatis-Plus MyBatis-Plus 是一个基于 MyBatis的增强工具&#xff0c;旨在简化开发过程&#xff0c;减少重复代码。它在MyBatis的基础上增加了CRUD操作封装&#xff0c;条件构造器、代码生成器等功能。 一、核心特性与优势 1. 核心特性 无侵入&#xff1a;只做增强不做改变&am…

计算机网络摘星题库800题笔记 第4章 网络层

第4章 网络层4.1 网络层概述题组闯关1.在 Windows 的网络配置中&#xff0c;“默认网关” 一般被设置为 ( ) 的地址。 A. DNS 服务器 B. Web 服务器 C. 路由器 D. 交换机1.【参考答案】C 【解析】只有在计算机上正确安装网卡驱动程序和网络协议&#xff0c;并正确设置 IP 地址信…

非root用户在linux中配置zsh(已解决ncurses-devel报错)

Zsh&#xff08;Z Shell&#xff09;是一款功能强大的交互式 Unix shell&#xff0c;以其高度可定制性和丰富的功能著称&#xff0c;被视为 Bash 的增强替代品。它支持智能补全、主题美化、插件扩展&#xff08;如 Oh My Zsh 框架&#xff09;、自动纠错、全局别名等特性&#…

《Foundations and Recent Trends in Multimodal Mobile Agents: A Survey》论文精读笔记

论文链接&#xff1a;https://arxiv.org/pdf/2411.02006 摘要 文章首先介绍了核心组件&#xff0c;并探讨了移动基准和交互环境中的关键代表性作品&#xff0c;旨在全面理解研究重点及其局限性。 接着&#xff0c;将这些进展分为两种主要方法&#xff1a; 基于提示的方法&a…

npm安装时一直卡住的解决方法

npm install 卡住通常是由于网络问题或缓存问题导致的。以下是几种解决方法&#xff1a; 方法1&#xff1a;清理npm缓存 npm cache clean --force npm install方法2&#xff1a;删除node_modules和package-lock.json重新安装 rm -rf node_modules package-lock.json npm instal…

[密码学实战]使用Java生成国密SM2加密证书等(四十三)

[密码学实战]使用Java生成国密SM2加密证书等(四十三) 本文将详细介绍如何通过Java代码生成符合国密标准的SM2加密证书,包括密钥对生成、证书扩展属性配置、PEM格式保存等关键步骤。 一. 运行结果示例 二. 国密算法与加密证书 国密算法(SM系列)是中国自主研发的密码算法体…

从零开始之stm32之CAN通信

从小白的视角了解并实现简单的STM32F103的CAN通信&#xff0c;直接上手。一、CAN协议简介CAN总线上传输的信息称为报文&#xff0c;当总线空闲时任何连接的单元都可以开始发送新的报文&#xff0c;有5种类型的帧&#xff1a;数据帧、遥控帧、错误帧、过载帧、帧间隔。数据帧有两…

Java 课程,每天解读一个简单Java之利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, * 60分以下

package ytr250812;/*题目&#xff1a;利用条件运算符的嵌套来完成此题&#xff1a;学习成绩>90分的同学用A表示&#xff0c;60-89分之间的用B表示&#xff0c;* 60分以下*/import java.util.Scanner;public class GradeEvaluator {public static void main(String[] args) …

Word XML 批注范围克隆处理器

该类用于处理 Word 文档&#xff08;XML 结构&#xff09;中被批注标记的文本范围&#xff0c; 实现指定内容的深度克隆&#xff0c;并将其插入到目标节点之后。 适用于在生成或修改 .docx 文件时复制批注内容块。/*** Word XML 批注范围克隆处理器* * 该类用于处理 Word 文档&…

MQTT:Java集成MQTT

目录Git项目路径一、原生java架构1.1 导入POM文件1.2 编写测试用例二、SpringBoot集成MQTT2.1 导入POM文件2.2 在YML文件中增加配置2.3 新建Properties配置文件映射配置2.4 创建连接工厂2.5 增加入站规则配置2.6 增加出站规则配置2.7 创建消息发送网关2.8 测试消息发送2.9 项目…

day 16 stm32 IIC

1.IIC概述1基于对话的形式完成&#xff0c;不需要同时进行发送和接收所以删掉了一根数据线&#xff0c;变成半双工2为了安全起见添加了应答机制3可以接多个模块&#xff0c;且互不干扰4异步时序&#xff0c;要求严格&#xff0c;发送过程中不能暂停&#xff0c;所以需要同步时序…

AMD KFD的BO设计分析系列 0:开篇

开启我始终不敢碰的GPU存储系列&#xff0c;先上个图把核心关系表达下&#xff0c;以此纪念。注&#xff1a;图中kfdm_mm误写&#xff0c;应该为kfd_mm&#xff0c;不修改了&#xff0c;请大家不要介意。

EUDR的核心内容,EUDR认证的好处,EUDR意义

近年来&#xff0c;全球森林退化问题日益严峻&#xff0c;毁林行为不仅加剧气候变化&#xff0c;还威胁生物多样性和原住民权益。为应对这一挑战&#xff0c;欧盟于2023年6月正式实施《欧盟零毁林法案》&#xff08;EU Deforestation-free Regulation, EUDR&#xff09;&#x…