安裝nfs-utils rpcbind
yum install nfs-utils rpcbind
nfs-utils所有節點都需要安裝
啟動
systemctl restart rpcbind nfs
編輯共享配置檔案
在主機節點編輯
vim /etc/exports
寫入:/mnt/share *(rw)
(如果沒有這個目錄那就mkdir一下)
然後把許可權給到最大
chmod 777 /mnt/share
在這裡可能會出現關於nfs的問題
showmount -e nfs伺服器ip
可檢視掛載目錄
更多關於nfs操作
遇到clnt_create: rpc: program not registered
用這個方法重啟可解決
解決辦法:
1.在伺服器上先停止rpcbind,
service rpcbind stop
然後在停止nfs
service nfs stop
最後在重啟rpcbind和nfs,一定要按順序啟動和停止
service rpcbind start
service nfs start
k8s中pod在掛載volume時出現failedmount錯誤(exit status 32)
warning failedmount 2m42s kubelet, k8s-node01 mountvolume.setup failed for v…
這個問題跟nfs有關,可能是掛載出現錯誤
vim pv1.yaml
apiversion: v1
kind: persistentvolume
metadata:
name: nfs
spec:
storageclassname: manual
capacity:
storage: 1gi
accessmodes:
- readwritemany
nfs:
server: 192.168.134.131
path: "/mnt/share"
這裡的server是伺服器ip位址,即主機ip應用
檢視
kubectl get pv
kubectl describe pv nfs
vim pvc1.yaml
apiversion: v1
kind: persistentvolumeclaim
metadata:
name: nfs
spec:
accessmodes:
- readwritemany
storageclassname: manual
resources:
requests:
storage: 1gi
應用 檢視
kubectl get pvc
vim nginx-nfs.yaml
apiversion: v1
kind: pod
metadata:
name: nginx-nfs
labels:
role: web-frontend
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerport: 80
volumemounts:
- name: nfs
mountpath: "/usr/share/nginx/html" #這個是掛載到pod裡的某個目錄
volumes:
- name: nfs
persistentvolumeclaim:
claimname: nfs
1.在nfs共享目錄下建立乙個檔案cd /mnt/share
vim test
2.進入到nginx-nfs這個pod裡檢視kubectl exec -it nginx-nfs bsh
在掛載的目錄裡檢視有沒有那個檔案
cat /usr/share/nginx/html/test
3.刪除這個pod驗證
刪除這個pod,在master上檢視是否還有這個檔案。以此證明pvc不受pod的刪除而受影響
kubectl delete pod nginx-nfs
4.重新建立這個pod
看看那個檔案還存在
對於這種基於nfs的持久化pv儲存,就是在主機一端的本地目錄裡建立nfs遠端目錄,掛載到pod的目錄裡,然後pod被排程到某個節點上,從而實現無論在哪個節點裡pod都能訪問這個主機目錄,並且能新增刪除檔案,即儲存到遠端主機的磁碟中,而且不會隨著這個pod的存在與否影響這個檔案目錄,即實現持久化儲存。
參考教程
K8S持久化儲存PV PVC筆記
kubernetes 使用persistent volume和persistent volume claim 兩種api資源來管理儲存。可以通過兩種方式配置pv 靜態或動態。關於persistentvolume的訪問方式 在cli 命令列介面 中,訪問模式縮寫為 特別注意 卷只能一次使用一種訪問模式...
k8s 資料持久化儲存
pod重啟,資料依然存在 1 找一台伺服器作為nfs服務端 1 安裝nfs yum install y nfs utils 2 設定掛載路徑 vi etc exports data nfs rw,no root squash 3 設定的掛載路徑首先保證有這個路徑,沒有則建立 mkdir data m...
K8S 使用cephfs 作為持久化儲存
1 檢視ceph的key 進入ceph集群的管理主機 ceph auth get key client.admin base64 得到這個串,下面使用 2 k8s裡面新增乙個密碼 cat apiversion v1 kind secret metadata name ceph secret data...