日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

kubernetes 实战 使用 nfs 作为动态 storageClass 存储

發布時間:2025/3/11 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kubernetes 实战 使用 nfs 作为动态 storageClass 存储 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

kubernetes 實戰 使用 nfs 作為動態 storageClass 存儲
概述
之前有介紹過 Kubernetes 實戰 pv and pvc, 相信使用過的pv和pvc的同學或者有過虛擬化經驗的人來說肯定會想到很多問題,比如每次申請 pvc 都需要手動添加pv,這豈不是太不方便了。那我們如何實現類似于公有云或者私有云的共享存儲模式呢?kubernetes 提供了 storageclass 的概念,接下來我們來一探究竟。
本文通過 nfs 來講解,首先需要注意的是 nfs默認不支持動態存儲,使用了第三方的NFS插件 external-storage, kubernetes
官網也有會叫詳細的解析。

先上一張圖大家就比較清楚了:


基礎環境
nfs 存儲
pv、pvc 的基礎
kubernetes 集群
操作步驟
保證基礎環境部分就緒

1. 準備
clone external-storage

git clone https://github.com/kubernetes-incubator/external-storage.git

部署 rbac

cd external-storage/nfs-client/deploy
kubectl apply -f rbac.yaml
1
2
2. 部署 nfs client 插件
修改deployment.yml配置, 修改 nfs 配置信息。

? spec:
? ? ? serviceAccountName: nfs-client-provisioner
? ? ? containers:
? ? ? ? - name: nfs-client-provisioner
? ? ? ? ? image: quay.io/external_storage/nfs-client-provisioner:latest
? ? ? ? ? volumeMounts:
? ? ? ? ? ? - name: nfs-client-root
? ? ? ? ? ? ? mountPath: /persistentvolumes
? ? ? ? ? env:
? ? ? ? ? ? - name: PROVISIONER_NAME
? ? ? ? ? ? ? value: fuseim.pri/ifs
? ? ? ? ? ? - name: NFS_SERVER
? ? ? ? ? ? ? value: 192.168.8.220 # nfs 服務器ip
? ? ? ? ? ? - name: NFS_PATH?
? ? ? ? ? ? ? value: /root/work/storage/nfs # 存儲地址
? ? ? volumes:
? ? ? ? - name: nfs-client-root
? ? ? ? ? nfs:
? ? ? ? ? ? server: 192.168.8.220 ?# nfs 服務器ip?
? ? ? ? ? ? path: /root/work/storage/nfs ?# 存儲地址

創建客戶端

kubectl apply -f deployment.yaml

創建storage class

kubectl apply -f class.yaml

查看 nfs 客戶端 和 storage class:

客戶端
[root@node3 deploy]# kubectl ?get pod
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?READY ? STATUS ? ?RESTARTS ? AGE
nfs-client-provisioner-7695c66c6b-56sbw ? 1/1 ? ? Running ? 0 ? ? ? ? ?10m

storage class
[root@node3 deploy]# kubectl ?get sc
NAME ? ? ? ? ? ? ? ? ?PROVISIONER ? ? ?AGE
managed-nfs-storage ? fuseim.pri/ifs ? 10m

3. 創建pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
? name: test-claim
? annotations:
? ? volume.beta.kubernetes.io/storage-class: "managed-nfs-storage"
spec:
? accessModes: # 策略
? ? - ReadWriteMany
? resources:?
? ? requests:
? ? ? storage: 1Mi # 請求空間大小

創建

kubectl ?apply -f test-claim.yaml

查看 pvc

[root@node3 deploy]# kubectl ?get pvc
NAME ? ? ? ? STATUS ? VOLUME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CAPACITY ? ACCESS MODES ? STORAGECLASS ? ? ? ? ?AGE
test-claim ? Bound ? ?pvc-2febc25a-d2b0-11e9-9623-000c29b3776e ? 1Mi ? ? ? ?RWX ? ? ? ? ? ?managed-nfs-storage ? 14s

4. 部署測試pod
kind: Pod
apiVersion: v1
metadata:
? name: test-pod
spec:
? containers:
? - name: test-pod
? ? image: nginx
? ? command:
? ? ? - "/bin/sh"
? ? args:
? ? ? - "-c"
? ? ? - "touch /mnt/SUCCESS && exit 0 || exit 1"
? ? volumeMounts:
? ? ? - name: nfs-pvc # 綁定pvc
? ? ? ? mountPath: "/mnt"
? restartPolicy: "Never"
? volumes:
? ? - name: nfs-pvc #pvc 通過pvc 動態創建pv
? ? ? persistentVolumeClaim:
? ? ? ? claimName: test-claim

創建 測試 pod

kubectl ?apply -f test-pod.yaml
1
查看pod

[root@node3 deploy]# kubectl ?get pod | grep pod
test-pod ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0/1 ? ? Completed ? 0 ? ? ? ? ?81s
1
2
查看 pv 是否動態創建:

[root@node3 deploy]# kubectl ?get pv
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? CAPACITY ? ACCESS MODES ? RECLAIM POLICY ? STATUS ? CLAIM ? ? ? ? ? ? ? ?STORAGECLASS ? ? ? ? ?REASON ? AGE
pvc-e78d0817-d2b0-11e9-9623-000c29b3776e ? 1Mi ? ? ? ?RWX ? ? ? ? ? ?Delete ? ? ? ? ? Bound ? ?default/test-claim ? managed-nfs-storage ? ? ? ? ? ?22m
1
2
3
好了是不是用起來很方便,還有其他的很多存儲可以測試自己搞一套試試。

github 地址

總結

以上是生活随笔為你收集整理的kubernetes 实战 使用 nfs 作为动态 storageClass 存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。