需要先準備好3臺虛擬機
系統CentOS7
IP 192.168.200.128 master
IP 192.168.200.129 node1
IP 192.168.200.130 node2
問題描述
在學習數據管理的時候創建完pv和pvc以后,創建了pod使用pvc,但是pod創建不成功。
查看pod描述
kubectl describe pod mypod1
描述有錯誤信息:
Normal Scheduled 22m default-scheduler Successfully assigned default/mypod1 to k8s-node2Warning FailedMount 22m kubelet, k8s-node2 MountVolume.SetUp failed for volume "mypv1" : mount failed: exit status 32
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/2637337e-f53f-4b97-883b-1c7cdbb7e497/volumes/kubernetes.io~nfs/mypv1 --scope -- mount -t nfs 192.168.200.128:/nfsdata/pv1 /var/lib/kubelet/pods/2637337e-f53f-4b97-883b-1c7cdbb7e497/volumes/kubernetes.io~nfs/mypv1
Output: Running scope as unit run-28836.scope.
mount: 文件系統類型錯誤、選項錯誤、192.168.200.128:/nfsdata/pv1 上有壞超級塊、缺少代碼頁或助手程序,或其他錯誤(對某些文件系統(如 nfs、cifs) 您可能需要一款 /sbin/mount.<類型> 助手程序)有些情況下在 syslog 中可以找到一些有用信息- 請嘗試dmesg | tail 這樣的命令看看。
是因為在安裝完master節點的nfs以后我并沒有在node1和node2上安裝nfs。所以完整安裝一遍nfs以后就可以正常測試nfs了。
1.0 命令安裝nfs
yum -y install nfs-utils rpcbind
會提示找不到鏡像,所以就手動安裝了一遍。
1.1 手動安裝nfs
先下載nfs所需要的文件。
百度網盤下載安裝包:
鏈接:https://pan.baidu.com/s/1ORc1cXa042tP5DDRJgbuXw?pwd=1234
提取碼:1234
下載上述nfs離線包,把包上傳到centos7服務器,使用下列命令按順序執行命令。
# 1.創建文件夾
mkdir -p /root/nfs
# 2.上傳到當前目錄
# 3. 安裝:
rpm -ivh *.rpm --force --nodeps
執行安裝命令。
[root@k8s-node2 nfs]# rpm -ivh *.rpm --force --nodeps
警告:tcp_wrappers-7.6-48.mga7.x86_64.rpm: 頭V4 RSA/SHA256 Signature, 密鑰 ID 80 420f66: NOKEY
準備中... ################################# [100%]
正在升級/安裝...1:libverto-0.2.5-4.el7 ################################# [ 6%]2:libtirpc-0.2.4-0.16.el7 ################################# [ 12%]3:rpcbind-0.2.0-49.el7 ################################# [ 18%]4:libref_array-0.1.5-32.el7 ################################# [ 24%]5:libevent-2.0.21-4.el7 ################################# [ 29%]6:libcollection-0.7.0-32.el7 ################################# [ 35%]7:libbasicobjects-0.1.1-32.el7 ################################# [ 41%]8:libverto-libevent-0.2.5-4.el7 ################################# [ 47%]9:tcp_wrappers-7.6-48.mga7 ################################# [ 53%]10:quota-nls-1:4.01-19.el7 ################################# [ 59%]11:quota-1:4.01-19.el7 ################################# [ 65%]12:libpath_utils-0.2.1-32.el7 ################################# [ 71%]13:libini_config-1.3.1-32.el7 ################################# [ 76%]14:gssproxy-0.7.0-30.el7_9 ################################# [ 82%]15:libnfsidmap-0.25-19.el7 ################################# [ 88%]16:keyutils-1.5.8-3.el7 ################################# [ 94%]17:nfs-utils-1:1.3.0-0.68.el7.2 ################################# [100%]
1.2 啟動nfs
服務端:
開機啟動
systemctl enable rpcbind.service
systemctl enable nfs-server.service
啟動nfs
systemctl start rpcbind.service
systemctl start nfs-server.service
service nfs start
檢查啟動項
chkconfig nfs on
客戶端:
systemctl enable rpcbind.service
systemctl start rpcbind.service
注意:客戶端不需要啟動nfs服務
1.3配置NFS服務端
1.創建共享目錄
mkdir -p /nfsdata
mkdir -p /nfsdata/pv1
2.修改exports文件
# 1.編輯配置文件
vi /etc/exports# 修改配置文件,增加下面這一行數據,指定的ip地址為客戶端的地址,ip可設置為*表示所有服務器可訪問
/nfsdata *(rw,all_squash)
/nfsdata/pv1 *(rw,all_squash)
# 2.加載配置文件
exportfs -arv
3.目錄授權
chmod o+w /nfsdata
chmod o+w /nfsdata/pv1
4.重啟服務
systemctl restart rpcbind.service
systemctl restart nfs-server.service
1.4 客戶端掛載
在其中一個node節點上執行showmount ,查看master可掛載的目錄
[root@k8s-node1 ~]# showmount -e 192.168.200.128
Export list for 192.168.200.128:
/nfsdata/pv1 *
/nfsdata *
執行掛載
[root@k8s-node1 ~]# mkdir /root/mcw/
[root@k8s-node1 ~]# mount -t nfs 192.168.200.128:/nfsdata/ /root/mcw/
[root@k8s-node1 ~]# df -h|tail -1
192.168.200.128:/nfsdata 27G 3.7G 24G 14% /root/mcw
[root@k8s-node1 ~]# df -h
192.168.200.128:/nfsdata 27G 3.7G 24G 14% /root/mcw
創建文件,查看掛載結果
[root@k8s-node1 ~]# touch /root/mcw/test.txt
[root@k8s-node1 ~]# ls /root/mcw/
mypv1 pv1 test.txt
[root@k8s-node1 ~]# df -h|grep mcw
192.168.200.128:/nfsdata 27G 3.7G 24G 14% /root/mcw
掛載/nfsdata/pv1
[root@k8s-node1 ~]# mount -t nfs 192.168.200.128:/nfsdata/pv1 /root/mcw/
mount.nfs: /root/mcw is busy or already mounted
[root@k8s-node1 ~]# umount /root/mcw
[root@k8s-node1 ~]# mount -t nfs 192.168.200.128:/nfsdata/pv1 /root/mcw/
設置開機自動掛載
mount -t nfs 192.168.200.128:/nfsdata/pv1 /root/mcw/
切換到master
[root@k8s-master ~]# ls /nfsdata/pv1/
[root@k8s-master ~]# ls /nfsdata
mypv1 pv1 test.txt
[root@k8s-master ~]# ls /nfsdata/pv1/
test.txt
可以看到在node節點創建的文件,到此就按照成功了。