k8s持久化儲存PV PVC部署

2021-10-05 06:53:40 字數 2749 閱讀 2096

安裝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...