解決したいこと
k8sのマルチノード開発環境を作るために、minikubeでNFS persistent volumeをマルチノードで使おうとしたところ、Podがうまく動かなくなりました。どうやらNFSの設定に問題がありそうなので、minikube ssh
を実行し、まずノード内でmount
コマンドでnfsディレクトリを手動でマウントしようとしたのですが、うまくいきませんでした。
sudo mount -t nfs 192.168.xx.xx(=macpcのIP):/PATH/TO/EXPORTED/DIR/ON/MACPC /PATH/TO/MOUNT/POINT/IN/MINIKUBE/NODE
上記をminikubeノード内で実行し、出力は
mount.nfs: requested NFS version or transport protocol is not supported
でした。解決したいのはこのエラーであり、つまりゴールはminikubeノード上でのmount
コマンドが成功し、私のMac PCのnfsディレクトリを正しくマウントすることです。
前提条件は以下の通りです。
NFSクライアント:minikubeノード
NFSサーバ: 私のMac PC
minikubeドライバ:Docker
クラスターは3ノードで構成されています。(マスターノード1台、ワーカーノード2台)
現在、クラスタにはk8sのリソース(deployment、pv、pvcなど)はありません。
minikubeノードのOSはUbuntuなので、"nfs-utils"パッケージは関係ないと思ったので、インストールしていません。"nfs-common"はminikubeにプリインストールされています。
今までにやったことは
NFSサーバー側にて:
mac pcに/etc/exportsファイルを作成。内容は以下のようなものです。
/PATH/TO/EXPORTED/DIR/ON/MACPC -mapall=user:group 192.168.xx.xx(=the output of "minikube ip")
そしてnfsd update
を実行してからshowmount -e
を実行し、出力は
Exports list on localhost: /PATH/TO/EXPORTED/DIR/ON/MACPC 192.168.xx.xx(=the output of "minikube ip")
rpcinfo -p
を実行し、tcp と udp で rpcbind (= linux では portmapper), status, nlockmgr, rquotad, nfs, mountd がすべて稼働していることを確認しました。
ping 192.168.xx.xx(=the output of "minikube ip")
の出力は
Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout for icmp_seq 2 and continues
でした。
ホストからminikubeにアクセスできていないようです。
NFSクライアント側にて:
全ての minikube ノードで systemctl
コマンド を使って nfs-common と rpcbind のサービスを起動しました。sudo systemctl status rpcbind
と sudo systemctl status nfs-common
を実行して、rpcbind と nfs-common が動作していることを確認しました。
minikube ssh
の出力が
Last login: Mon Mar 28 09:18:38 2022 from 192.168.xx.xx(=おそらくminikube cluster側から見たmacpcのIP)
だったので、
sudo mount -t nfs 192.168.xx.xx(=macpcのIP):/PATH/TO/EXPORTED/DIR/ON/MACPC /PATH/TO/MOUNT/POINT/IN/MINIKUBE/NODE
をminikubeのマスターノードで実行しました。出力は、
mount.nfs: requested NFS version or transport protocol is not supported
でした。
rpcinfo -p
では、portmapperとstatusだけが動いていることがわかります。これで大丈夫なのか判断できていません。
ping 192.168.xx.xx (=macpcのIP)
は正常に動作しています。
ping host.minikube.internal
は正常に動作しています。
nc -vz 192.168.xx.xx(=macpcのIP) 2049
の出力はconnection refused.
でした。
nc -vz host.minikube.internal 2049
の出力はsucceeded!
でした。
よろしくお願いいたします。
あなたの回答
tips
プレビュー