背景
公司开始使用一台服务器大家了microk8s,nfs-server也搭建到这个node上,搭建部署nfs客户端到k8s中的时候,指定的NFS_SERVER的IP:127.0.0.1。添加了新节点到k8s集群中,同时修改了原Node主机的IP。这样4个node组成一个k8s集群。然后修改了nfs-provisioner.yaml文件中的NFS_SERVER
--------------------------
containers:
- name: nfs-client-provisioner
image: gmoney23/nfs-client-provisioner
volumeMounts:
- name: nfs-client-root
mountPath: /persistentvolumes
env:
- name: PROVISIONER_NAME
value: nfs-client
- name: NFS_SERVER
value: 10.*.*.*
- name: NFS_PATH
value: /root/nfs
volumes:
- name: nfs-client-root
nfs:
server: 10.*.*.*
path: /root/nfs
-----------------------------
修改过后的结果:
因为原来nfs-server地址是:127.0.0.1 ,所以原来的nfs创建的pv以及pvc连接的server地址都是127.0.0.1,原来的Pod挂载到这些pvc的,都只能在调度到node上(nodeName); 但是问题在于修改了nfs-server地址以及nfs-provisioner.yaml。所以新建的pod(甚至原Pod重启后调度到其他node),如果使用了原来的pvc,那么你就你的pod就无法正常启动,提示你无法挂载127.0.0.1:/nfs_path;
解决办法:
第一步、新加入的节点需要安装nfs客户端:
centos: yum install nfs-utils rpcbind
ubuntu: sudo apt -y install nfs-common
第二步、新建pvc
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: test
namespace: default
spec:
storageClassName: nfs-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1024Gi
新建的pod就接入到新pvc中,不然无法挂载nfs;
补充:
查看nfs的版本: nfsstat -s 查看服务端 nfsstat -c 查看客户端
网友评论