Kubernetes 使用 NFS 存储动态供给
Kubernetes 使用 NFS 存储动态供给
nfs-subdir-external-provisioner 可以通过此插件实现现有的 NFS 存储对集群的 PersistentVolumeClaims 进行动态供给。其官方网站为:https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
安装步骤
-
配置好 NFS 或 NAS 存储
-
在管理主机安装好 helm 工具
-
执行以下命令进行安装
-
添加 helm 仓库
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/ -
下载安装包
helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner ]# ls nfs-subdir-external-provisioner-4.0.14.tgz -
解压修改 values.yaml 配置文件
image: repository: registry.cn-hangzhou.aliyuncs.com/liy36/nfs-subdir-external-provisioner tag: v4.0.2 pullPolicy: IfNotPresent ... nfs: server: # NFS 服务器地址或域名 path: /nfs-storage # 存储数据的路径,需要提前创建 mountOptions: volumeName: nfs-subdir-external-provisioner-root # Reclaim policy for the main nfs volume reclaimPolicy: Retain ... storageClass: create: true # Set a provisioner name. If unset, a name will be generated. # provisionerName: # Set StorageClass as the default StorageClass # Ignored if storageClass.create is false defaultClass: true # 修改为true ... # 这里的按需配置即可 resources: {} # 资源限制 # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m # memory: 128Mi nodeSelector: {} # 节点选择器 tolerations: [] # 污点容忍度 affinity: {} # 亲和性配置 # Additional labels for any resource created labels: {} # 标签 -
部署到集群中
# 进入到解压之后的目录 nfs-subdir-external-provisioner helm install nfs-storage ./ -n ops -f values.yaml # -n 部署到 ops 名称空间, -f 指定 values.yaml 文件 -
查看部署状态
# 检查 Pod kubectl get pods -n ops # 检查 storageClass # 集群级别资源,不需要指定名称空间。 kubectl get storageclass # 若 values.yaml 文件中 defaultClass 设置为 true 结果应显示.*(default)。 -
验证存储类是否可用
cat << test-claim.yaml > EOF apiVersion: v1 kind: PersistentVolumeClaim metadata: name: test-claim namespace: ops spec: accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 1Gi limits: storage: 1Gi storageClassName: nfs-storage # 需要填写第五步查看存储类时返回的 name EOF # 先验证语法 kubectl apply -f test-claim.yaml --dry-run=client # 客户端验证 kubectl apply -f test-claim.yaml --dry-run=server # 服务端验证 # 部署 kubectl apply -f test-claim.yaml # 查看 kubectl describe -f test-claim.yaml # 在 nfs 服务端查看创建的文件夹, 文件夹以 <namespace>-<pvc-name>-pvc-<uuid> 命名 ls -dl ops-test-claim-pvc-5e256b35-cf93-4987-a0d0-04f80e61a431 -
后续如有 Pod 需要使用存储时,创建 PVC 挂载即可。
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」