搭建NFS Server
Kubetrain K8S在線直播培訓,內推機會 不滿意可無條件退款 現在就去廣告
#背景
Kubernetes 對 Pod 進行調度時,以當時集群中各節點的可用資源作為主要依據,自動選擇某一個可用的節點,並將 Pod 分配到該節點上。在這種情況下,Pod 中容器數據的持久化如果存儲在所在節點的磁盤上,就會產生不可預知的問題,例如,當 Pod 出現故障,Kubernetes 重新調度之后,Pod 所在的新節點上,並不存在上一次 Pod 運行時所在節點上的數據。
為了使 Pod 在任何節點上都能夠使用同一份持久化存儲數據,我們需要使用網絡存儲的解決方案為 Pod 提供 數據卷。常用的網絡存儲方案有:NFS/cephfs/glusterfs。
本文介紹一種使用 centos 搭建 nfs 服務器的方法。此方法僅用於測試目的,請根據您生產環境的實際情況,選擇合適的 NFS 服務。
#配置要求
- 兩台 linux 服務器,centos 7
- 一台用作 nfs server
- 另一台用作 nfs 客戶端
#配置NFS服務器
TIP
本章節中所有命令都以 root 身份執行
- 執行以下命令安裝 nfs 服務器所需的軟件包
yum install -y nfs-utils
已復制到剪貼板!1
- 執行命令
vim /etc/exports
,創建 exports 文件,文件內容如下:/root/nfs_root/ *(insecure,rw,sync,no_root_squash)
已復制到剪貼板!1
- 執行以下命令,啟動 nfs 服務
# 創建共享目錄,如果要使用自己的目錄,請替換本文檔中所有的 /root/nfs_root/ mkdir /root/nfs_root systemctl enable rpcbind systemctl enable nfs-server systemctl start rpcbind systemctl start nfs-server exportfs -r
已復制到剪貼板!1
2
3
4
5
6
7
8
9
- 檢查配置是否生效
exportfs # 輸出結果如下所示 /root/nfs_root /root/nfs_root
已復制到剪貼板!1
2
3
#在客戶端測試nfs
TIP
本章節中所有命令都以 root 身份執行
-
執行以下命令安裝 nfs 客戶端所需的軟件包
yum install -y nfs-utils
已復制到剪貼板!1
-
執行以下命令檢查 nfs 服務器端是否有設置共享目錄
# showmount -e $(nfs服務器的IP) showmount -e 172.17.216.82 # 輸出結果如下所示 Export list for 172.17.216.82: /root/nfs_root *
已復制到剪貼板!1
2
3
4
5
-
執行以下命令掛載 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
已復制到剪貼板!1
2
3
4
5
-
在 nfs 服務器上執行以下命令,驗證文件寫入成功
cat /root/nfs_root/test.txt
已復制到剪貼板!1