如何在Kubernetes里使用NFS存储
431 字
2 分钟
如何在Kubernetes里使用NFS存储
nfs 无法空间限额,相当于有个 provisioner 远程帮忙挂载
1 安装 nfs 客户端
最好每个节点都安装
yum -y install nfs-utils
1.1 测试
showmount -e 10.1.1.1Export list for 10.1.1.1:/data/nfs_data *2 部署驱动
2.1 修改配置
cat deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: nfs-client-provisioner labels: app: nfs-client-provisioner namespace: nfsspec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: nfs-client-provisioner template: metadata: labels: app: nfs-client-provisioner spec: serviceAccountName: nfs-client-provisioner containers: - name: nfs-client-provisioner image: willdockerhub/nfs-subdir-external-provisioner:v4.0.2 volumeMounts: - name: nfs-client-root mountPath: /persistentvolumes env: - name: PROVISIONER_NAME value: k8s-sigs.io/nfs-subdir-external-provisioner - name: NFS_SERVER value: 10.1.1.1 # nfs地址 - name: NFS_PATH value: /data/nfs_data # nfs目录 volumes: - name: nfs-client-root nfs: server: 10.1.1.1 # nfs地址 path: /data/nfs_data # nfs目录kubectl apply -f . -n nfskubectl get pod -n nfsNAME READY STATUS RESTARTS AGEnfs-client-provisioner-6fddfdfd9f-7rwh6 1/1 Running 0 6d23h3 Storageclass
创建 Storageclass
cat sc.yamlapiVersion: storage.k8s.io/v1kind: StorageClassmetadata: name: nfs-clientprovisioner: k8s-sigs.io/nfs-subdir-external-provisionerparameters: archiveOnDelete: "false"kubectl apply -f sc.yaml -n nfs4 验证
4.1 创建 pvc
cat pvc.yamlkind: PersistentVolumeClaimapiVersion: v1metadata: name: test-claimspec: storageClassName: nfs-client accessModes: - ReadWriteMany resources: requests: storage: 1Mikubectl apply -f pvc.yaml -n nfs查看
kubectl get pvc -n nfsNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEtest-claim Bound pvc-8c1a55c4-eb09-4aca-8a2a-9cbbddb12706 1Mi RWX nfs-client 6d23h4.2 创建 pod
cat pod.yamlkind: PodapiVersion: v1metadata: name: nfs-pod namespace: nfsspec: containers: - name: nfs-pod image: nginx volumeMounts: - name: pvc mountPath: "/mnt" volumes: - name: pvc persistentVolumeClaim: claimName: nfs-pvckubectl apply -f pod.yaml -n nfs查看
kubectl get pod -n nfsNAME READY STATUS RESTARTS AGEnfs-pod 1/1 Running 0 16h5 静态创建
5.1 创建 pv
apiVersion: v1kind: PersistentVolumemetadata: name: nfs-pv #pv的名字spec: accessModes: - ReadWriteMany capacity: storage: 2Mi #容量大小 nfs: path: /data/nfs_data/pvc-test #该/data/nfs_data/为nfs固定目录,不可变; server: 10.1.1.1 #nfs server地址 persistentVolumeReclaimPolicy: Retain #回收策略,默认为Retain,删除pvc后,pv可以继续用。建议手动创建pv都使用该策略。 volumeMode: Filesystem5.2 pvc 绑定 pv
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: nfs-pvcspec: volumeName: nfs-pv accessModes: ["ReadWriteOnce"] resources: requests: storage: 1Gi5.3 查看
kubectl get pvc -n gfsNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEnfs-pvc Bound nfs-pv 1Gi RWO 12m文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章 智能推荐
1
如何在Kubernetes里使用本地存储
🐳云原生 如何在Kubernetes里使用节点磁盘存储数据
2
如何在Kubernetes里使用SMB存储
🐳云原生 如何在Kubernetes里使用smb作为存储后端
3
如何在Kubernetes里使用Glusterfs存储
🐳云原生 如何在Kubernetes里使用Glusterfs作为存储后端
4
如何在Kubernetes里使用Minio存储
🐳云原生 如何在Kubernetes里使用Minio作为存储后端
5
如何在Kubernetes里使用cephrdb作为存储
🐳云原生 如何在Kubernetes里使用cephrbd作为存储后端
随机文章 随机推荐