天天看點

K8S通過NFS實作共享存儲

一、NFS相關

1、簡介

NFS(Network File System)即網絡檔案系統,Sun公司開發,是FreeBSD支援的檔案系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的用戶端應用可以透明地讀寫位于遠端NFS伺服器上的檔案,就像通路本地檔案一樣。

好處就是一台磁盤共享,其他伺服器都能共用改伺服器的磁盤空間。

2、安裝配置

2.1、環境概況(略)

2.2、安裝步驟(服務端)

關閉防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service
           

1、建立共享目錄和權限設定

[root@k8s-master ~]# mkdir -p /data/k8s
[root@k8s-master ~]# chown -R 755 /data/k8s/
[root@k8s-master ~]# ll /data/
total 0
drwx--x--- 13 root root 167 Apr 21 17:08 docker
drwxr-xr-x  2  755 root   6 Apr 22 18:02 k8s
           

2、通過yum進行安裝

[root@k8s-master ~]#yum -y install nfs-utils rpcbind
           

3、配置 nfs,nfs 的預設配置檔案在 /etc/exports 檔案下,在該檔案中添加下面的配置資訊:

[root@k8s-master ~]# vim /etc/exports 
/data/k8s  *(rw,sync,no_root_squash)
           

####備注相關配置說明

/data/k8s:是共享的資料目錄

*:表示任何人都有權限連接配接,當然也可以是一個網段,一個 IP,也可以是域名

rw:讀寫的權限

sync:表示檔案同時寫入硬碟和記憶體

no_root_squash:當登入 NFS 主機使用共享目錄的使用者是 root 時,其權限将被轉換成為匿名使用者,通常它的 UID 與 GID,都會變成 nobody 身份

[root@k8s-master ~]# systemctl enable rpcbind
[root@k8s-master ~]# systemctl start rpcbind
[root@k8s-master ~]# systemctl status rpcbind
####在啟動nfs
[root@k8s-master ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@k8s-master ~]# systemctl start  nfs
[root@k8s-master ~]# systemctl status  nfs
           
##nfs相關資訊
[root@k8s-master ~]# rpcinfo -p|grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
 ###檢視挂載資訊
 [root@k8s-master ~]# cat /var/lib/nfs/etab 
/data/k8s        *(rw,sync,wdelay,hide,nocrossmnt,secure,no_root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,no_root_squash,no_all_squash)   
           
1、關閉防火牆
systemctl stop firewalld.service
systemctl disable firewalld.service

2、安裝nfs
yum -y install nfs-utils rpcbind

3、建立自啟動服務
 systemctl enable rpcbind
 systemctl start rpcbind
 systemctl enable nfs
 systemctl start nfs
 
 4、檢視可以登入的nfs位址
[root@k8s-node1 ~]# showmount -e 172.16.4.169
Export list for 172.16.4.169:
/data/k8s *

5、挂載和檢視
[root@k8s-node1 ~]# mkdir /data/k8s/ -p
[root@k8s-node1 ~]# mount -t nfs 172.16.4.169:/data/k8s /data/k8s
[root@k8s-node1 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 3.9G     0  3.9G   0% /dev
tmpfs                    3.9G     0  3.9G   0% /dev/shm
tmpfs                    3.9G  5.4M  3.9G   1% /run
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/centos-root   50G   29G   21G  58% /
/dev/sda1               1014M  209M  806M  21% /boot
/dev/mapper/centos-home  447G   33M  447G   1% /home
tmpfs                    797M     0  797M   0% /run/user/0
172.16.4.169:/data/k8s    50G   49G  1.7G  97% /data/k8s

6、驗證
[root@k8s-node1 ~]# echo 4444 >> /data/k8s/2.log
[root@k8s-node1 ~]# cat /data/k8s/2.log 
444
##在服務端驗證
[root@k8s-master ~]# cat /data/k8s/2.log 
4444
           

繼續閱讀