当前位置: 首页 > news >正文

Ceph集群2025(Squid版)导出高可用NFS集群(下集 )

本次主要对接K8S和传统的一样而已,比较简单,不再过多讲解

官网
https://github.com/kubernetes-csi/csi-driver-nfs/tree/master/charts

helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
helm pull csi-driver-nfs/csi-driver-nfs --version 4.11.0

我的yaml

# egrep -v "^[[:space:]]*#|^$" values.yaml

customLabels: {}
image:
    baseRepo: registry.cn-hangzhou.aliyuncs.com
    nfs:
        repository: ccr.ccs.tencentyun.com/abcdh/abpay
        tag: nfsplugin-v4.11.0
        pullPolicy: IfNotPresent
    csiProvisioner:
        repository: registry.cn-hangzhou.aliyuncs.com/google_containers/csi-provisioner
        tag: v5.2.0
        pullPolicy: IfNotPresent
    csiResizer: 
        repository: registry.cn-hangzhou.aliyuncs.com/google_containers/csi-resizer
        tag: v1.13.1
        pullPolicy: IfNotPresent
    csiSnapshotter:
        repository: registry.cn-hangzhou.aliyuncs.com/google_containers/csi-snapshotter
        tag: v8.2.0
        pullPolicy: IfNotPresent
    livenessProbe:
        repository: registry.cn-hangzhou.aliyuncs.com/google_containers/livenessprobe
        tag: v2.15.0
        pullPolicy: IfNotPresent
    nodeDriverRegistrar:
        repository: registry.cn-hangzhou.aliyuncs.com/google_containers/csi-node-driver-registrar
        tag: v2.13.0
        pullPolicy: IfNotPresent
    externalSnapshotter:
        repository: registry.cn-hangzhou.aliyuncs.com/google_containers/snapshot-controller
        tag: v8.2.0
        pullPolicy: IfNotPresent
serviceAccount:
  create: true # When true, service accounts will be created for you. Set to false if you want to use your own.
  controller: csi-nfs-controller-sa # Name of Service Account to be created or used
  node: csi-nfs-node-sa # Name of Service Account to be created or used
rbac:
  create: true
  name: nfs
driver:
  name: nfs.csi.k8s.io
  mountPermissions: 0
feature:
  enableFSGroupPolicy: true
  enableInlineVolume: false
  propagateHostMountOptions: false
kubeletDir: /var/lib/kubelet
controller:
  name: csi-nfs-controller
  replicas: 1
  strategyType: Recreate
  runOnMaster: false
  runOnControlPlane: false
  enableSnapshotter: true
  useTarCommandInSnapshot: false
  livenessProbe:
    healthPort: 29652
  logLevel: 5
  workingMountDir: /tmp
  dnsPolicy: ClusterFirstWithHostNet  # available values: Default, ClusterFirstWithHostNet, ClusterFirst
  defaultOnDeletePolicy: delete  # available values: delete, retain
  affinity: {}
  nodeSelector: {}
  priorityClassName: system-cluster-critical
  tolerations:
    - key: "node-role.kubernetes.io/master"
      operator: "Exists"
      effect: "NoSchedule"
    - key: "node-role.kubernetes.io/controlplane"
      operator: "Exists"
      effect: "NoSchedule"
    - key: "node-role.kubernetes.io/control-plane"
      operator: "Exists"
      effect: "NoSchedule"
    - key: "CriticalAddonsOnly"
      operator: "Exists"
      effect: "NoSchedule"
  resources:
    csiProvisioner:
      limits:
        memory: 400Mi
      requests:
        cpu: 10m
        memory: 20Mi
    csiResizer:
      limits:
        memory: 400Mi
      requests:
        cpu: 10m
        memory: 20Mi
    csiSnapshotter:
      limits:
        memory: 200Mi
      requests:
        cpu: 10m
        memory: 20Mi
    livenessProbe:
      limits:
        memory: 100Mi
      requests:
        cpu: 10m
        memory: 20Mi
    nfs:
      limits:
        memory: 200Mi
      requests:
        cpu: 10m
        memory: 20Mi
node:
  name: csi-nfs-node
  dnsPolicy: ClusterFirstWithHostNet  # available values: Default, ClusterFirstWithHostNet, ClusterFirst
  maxUnavailable: 1
  logLevel: 5
  livenessProbe:
    healthPort: 29653
  affinity: {}
  nodeSelector: {}
  priorityClassName: system-cluster-critical
  tolerations:
    - operator: "Exists"
  resources:
    livenessProbe:
      limits:
        memory: 100Mi
      requests:
        cpu: 10m
        memory: 20Mi
    nodeDriverRegistrar:
      limits:
        memory: 100Mi
      requests:
        cpu: 10m
        memory: 20Mi
    nfs:
      limits:
        memory: 300Mi
      requests:
        cpu: 10m
        memory: 20Mi
externalSnapshotter:
  enabled: false
  name: snapshot-controller
  priorityClassName: system-cluster-critical
  deletionPolicy: Delete
  controller:
    replicas: 1
  resources:
    limits:
      memory: 300Mi
    requests:
      cpu: 10m
      memory: 20Mi
  customResourceDefinitions:
    enabled: true   #if set true, VolumeSnapshot, VolumeSnapshotContent and VolumeSnapshotClass CRDs will be created. Set it false, If they already exist in cluster.
volumeSnapshotClass:
  create: false
  name: csi-nfs-snapclass
  deletionPolicy: Delete
  
imagePullSecrets: []
storageClass:
  create: true
  name: nfs-csi
  parameters:
    server: 172.16.8.99
    share: /my-nfs
    mountPermissions: "0"
  reclaimPolicy: Delete
  volumeBindingMode: Immediate
  mountOptions:
    - nfsvers=4.1
    - noresvport
    - soft
    - timeo=50

安装

helm -n nfs-csi install nfs-csi csi-driver-nfs-4.11.0.tgz -f values.yaml 

在这里插入图片描述

#测试
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: nfs-csi
  ---
  kind: Pod
apiVersion: v1
metadata:
  name: nginx-smb
  namespace: default
spec:
  containers:
    - image: mcr.microsoft.com/oss/nginx/nginx:1.17.3-alpine
      name: nginx-smb
      command:
        - "/bin/sh"
        - "-c"
        - while true; do echo $(date) >> /mnt/nfs/outfile; sleep 1; done
      volumeMounts:
        - name: smb01
          mountPath: "/mnt/nfs"
          readOnly: false
  volumes:
    - name: smb01
      persistentVolumeClaim:
        claimName: nfs-pvc
http://www.dtcms.com/a/87014.html

相关文章:

  • 如何在多个GPU中训练非常大的模型?
  • 【编程】面向对象编程和函数式编程
  • 手撕C++ STL list容器:从指针缠绕到迭代器封装的实践笔记
  • 【大模型】DeepSeek攻击原理和效果解析
  • dify0.15.3升级至dify1.1.2操作步骤
  • 【DFS】羌笛何须怨杨柳,春风不度玉门关 - 4. 二叉树中的深搜
  • 高效PDF翻译解决方案:多引擎支持+格式零丢失
  • Android第六次面试总结(Java设计模式篇一)
  • Harbor镜像仓库迁移与高可用集群搭建实战指南
  • 在Centos 7环境下安装MySQL
  • C++11 auto decltype
  • 未来工程项目管理新走向:云原生软件赋能绿色可持续建设
  • 【申论】二十大报告中的申论金词金句
  • 【AI News | 20250324】每日AI进展
  • 大数据学习(82)-数仓详解
  • 【Ratis】SlideWindow滑动窗口机制
  • unity动效扫光教程
  • Linux应用:异步IO、存储映射IO、显存的内存映射
  • 常见框架漏洞攻略-Shiro篇
  • Elasticsearch:构建 AI 驱动的搜索体验
  • 嵌入式八股RTOS与Linux---进程间的通信与同步篇
  • SQL 集合运算
  • 蓝桥与力扣刷题(蓝桥 回文判定)
  • AI 浪潮下的 IT 行业变革:机遇与挑战并存
  • 08.面向对象的特性
  • 【力扣刷题实战】搜索插入位置
  • 用API解锁大模型超能力——从零构建智能体到本地知识库全链路解析
  • FFmpeg6.1.1 MSYS2+GCC 源码编译
  • 在C++ Qt中集成Halcon窗口并实现跨平台兼容和大图加载
  • 手敲NLP相关神经网络,熟悉神经网络的结构与实现!