搭建NFS Server
阿新 • • 發佈:2020-10-20
#背景
Kubernetes 對 Pod 進行排程時,以當時叢集中各節點的可用資源作為主要依據,自動選擇某一個可用的節點,並將 Pod 分配到該節點上。在這種情況下,Pod 中容器資料的持久化如果儲存在所在節點的磁碟上,就會產生不可預知的問題,例如,當 Pod 出現故障,Kubernetes 重新排程之後,Pod 所在的新節點上,並不存在上一次 Pod 執行時所在節點上的資料。
為了使 Pod 在任何節點上都能夠使用同一份持久化儲存資料,我們需要使用網路儲存的解決方案為 Pod 提供資料卷。常用的網路儲存方案有:NFS/cephfs/glusterfs。
本文介紹一種使用 centos 搭建 nfs 伺服器的方法。此方法僅用於測試目的
#配置要求
- 兩臺 linux 伺服器,centos 7
- 一臺用作 nfs server
- 另一臺用作 nfs 客戶端
#配置NFS伺服器
TIP
本章節中所有命令都以 root 身份執行
- 執行以下命令安裝 nfs 伺服器所需的軟體包
yum install -y nfs-utils
- 執行命令
vim /etc/exports
,建立 exports 檔案,檔案內容如下:/root/nfs_root/ *(insecure,rw,sync,no_root_squash)
- 執行以下命令,啟動 nfs 服務
# 建立共享目錄,如果要使用自己的目錄,請替換本文件中所有的 /root/nfs_root/ mkdir /root/nfs_root systemctl enable rpcbind systemctl enable nfs-server systemctl start rpcbind systemctl start nfs-server exportfs -r
- 檢查配置是否生效
已複製到剪貼簿!exportfs # 輸出結果如下所示 /root/nfs_root /root/nfs_root
#在客戶端測試nfs
TIP
- 本章節中所有命令都以 root 身份執行
- 伺服器端防火牆開放111、662、875、892、2049的 tcp / udp 允許,否則遠端客戶無法連線。
-
執行以下命令安裝 nfs 客戶端所需的軟體包
已複製到剪貼簿!yum install -y nfs-utils
-
執行以下命令檢查 nfs 伺服器端是否有設定共享目錄
已複製到剪貼簿!# showmount -e $(nfs伺服器的IP) showmount -e 172.17.216.82 # 輸出結果如下所示 Export list for 172.17.216.82: /root/nfs_root *
-
執行以下命令掛載 nfs 伺服器上的共享目錄到本機路徑
/root/nfsmount
已複製到剪貼簿!mkdir /root/nfsmount # mount -t nfs $(nfs伺服器的IP):/root/nfs_root /root/nfsmount mount -t nfs 172.17.216.82:/root/nfs_root /root/nfsmount # 寫入一個測試檔案 echo "hello nfs server" > /root/nfsmount/test.txt
-
在 nfs 伺服器上執行以下命令,驗證檔案寫入成功
https://kuboard.cn/learning/k8s-intermediate/persistent/nfs.html#%E8%83%8C%E6%99%AFcat /root/nfs_root/test.txt