news 2026/6/26 3:21:31

Kubernetes 存储与配置管理核心精要

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kubernetes 存储与配置管理核心精要

一、Volume 存储卷类型

类型特点生命周期典型场景
emptyDir临时空目录,Pod 内多容器共享Pod 删除即清除缓存、临时数据交换
hostPath挂载宿主机目录Pod 删除数据保留(节点级)单节点测试、访问宿主机文件
NFS挂载网络共享存储Pod 删除数据保留多 Pod 共享持久数据

关键参数

  • volumeMounts.mountPath:容器内挂载路径
  • volumeMounts.readOnly:是否只读(默认 false)
  • hostPath.path:宿主机目录路径
  • nfs.server/nfs.path:NFS 服务端地址和共享目录

二、PersistentVolume(PV)与 PersistentVolumeClaim(PVC)

架构关系

  • PV:集群级存储资源(由管理员创建)
  • PVC:命名空间级存储请求(由用户创建)
  • 绑定:PVC 根据accessModes容量storageClassName匹配 PV,一一绑定

关键属性

属性说明
accessModesRWO(单节点读写)、ROX(多节点只读)、RWX(多节点读写)
volumeModeFilesystem(文件系统,默认) / Block(原始块设备)
persistentVolumeReclaimPolicyRetain(保留,默认)、Recycle(已弃用)、Delete(删除后端存储)
storageClassName用于动态供给或分类匹配

常用操作

# 查看 PV/PVCkubectl getpvkubectl get pvc# 删除 PVC 后,PV 状态变为 Released,需手动清理 claimRef 才能复用(Retain 策略下)kubectl editpv<pv-name># 删除 claimRef 字段

注意事项

  • 访问模式互斥:同一时刻只能以一种模式挂载(即使支持多种)。
  • 默认回收策略为 Retain,数据不会自动删除。
  • NFS 等常见存储支持 RWX,适合多 Pod 共享。

三、ConfigMap(非敏感配置)

创建方式

方式命令示例
键值对kubectl create configmap mysql --from-literal=password=redhat
单个文件kubectl create configmap web1 --from-file=./index.html
目录kubectl create configmap web2 --from-file=./web2

引用方式

  1. 环境变量(容器级)
env:-name:MYSQL_ROOT_PASSWORDvalueFrom:configMapKeyRef:name:mysqlkey:password
  1. Volume 挂载(Pod 级)
  • 挂载全部键:mountPath: /dir,每个键变为文件
  • 挂载特定键:使用itemssubPath

动态更新

  • 以 Volume 方式挂载的 ConfigMap 内容会自动更新(kubelet 周期性同步),但需应用自行感知(如重载配置)。

容量限制

  • 单个 ConfigMap 上限1 MiB,不适合存大文件。

四、Secret(敏感信息)

与 ConfigMap 区别

  • Secret 对数据做Base64 编码(非加密),ConfigMap 明文。
  • Secret 适合密码、令牌、证书等敏感数据。

常用类型

类型用途
generic(Opaque)通用键值对
docker-registry镜像仓库认证凭据
tlsTLS 证书/私钥对

创建示例

# generic 键值对kubectl create secret generic mysecret --from-literal=user=tom --from-literal=password=redhat# docker-registrykubectl create secret docker-registry regcred --docker-username=user --docker-password=pass --docker-email=email@example.com# tlskubectl create secret tls tls-secret--cert=path/to/cert.crt--key=path/to/key.key

引用方式(同 ConfigMap)

  • 环境变量:secretKeyRef
  • Volume 挂载:secret.secretName,支持itemssubPath
  • 默认文件权限 644,可通过defaultModemode调整

动态更新

  • Volume 挂载的 Secret 内容也会自动更新,但需应用支持热加载。

五、综合案例参考(haproxy + nginx)

  • 使用 ConfigMap 保存 haproxy.cfg
  • 使用 ConfigMap 保存各 webapp 的静态页面
  • 通过 Volume 挂载到对应容器,实现配置与镜像分离

六、环境清理

kubectl delete ns<namespace># 删除实验命名空间,释放资源

总结:Volume 解决容器数据持久化与共享问题;PV/PVC 提供存储资源抽象与解耦;ConfigMap/Secret 实现配置与敏感信息的分离管理,是 Kubernetes 云原生应用配置的标准实践。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 3:21:04

G-Helper终极指南:如何让华硕笔记本性能翻倍,续航提升30%

G-Helper终极指南&#xff1a;如何让华硕笔记本性能翻倍&#xff0c;续航提升30% 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivoboo…

作者头像 李华
网站建设 2026/6/26 3:20:42

Multisim数据库连接故障排查:从权限修复到系统化解决方案

1. 问题现象与核心影响分析“Multisim无法访问主数据库”&#xff0c;这个报错弹窗对于很多电子电路设计工程师和电子专业的学生来说&#xff0c;绝对是一个能瞬间让人血压升高的画面。你正全神贯注地绘制一个复杂的模拟电路&#xff0c;准备进行至关重要的仿真来验证设计&…

作者头像 李华
网站建设 2026/6/26 3:16:27

原神自动化脚本:5大核心功能让你轻松畅游提瓦特

原神自动化脚本&#xff1a;5大核心功能让你轻松畅游提瓦特 【免费下载链接】genshin-impact-script 原神脚本&#xff0c;包含自动钓鱼、自动拾取、自动跳过对话等多项实用功能。A Genshin Impact script includes many useful features such as automatic fishing, automatic…

作者头像 李华
网站建设 2026/6/26 3:14:56

港大EMBA背景提升有效性及机构选择攻略

开篇&#xff1a;港大EMBA背景提升到底有没有用&#xff1f; 在评估港大EMBA项目申请时&#xff0c;背景提升是许多申请人反复权衡的环节。对于管理年限尚浅、学历背景不突出或职业故事缺乏亮点的申请人来说&#xff0c;单凭现有履历直接冲击港大EMBA往往存在一定风险。从过往…

作者头像 李华
网站建设 2026/6/26 3:10:32

农业物联网中的精准灌溉与作物生长模型

农业物联网中的精准灌溉与作物生长模型 随着全球水资源短缺和气候变化加剧&#xff0c;传统农业灌溉方式正面临巨大挑战。农业物联网技术的兴起为精准灌溉和作物生长优化提供了全新解决方案。通过传感器、大数据和人工智能技术&#xff0c;农业物联网能够实时监测土壤湿度、气…

作者头像 李华