k8s、nfs、mysql、changing ownership of '/var/lib/mysql/': Operation notpermitted

在k8s环境下安装mysql,磁盘挂载到nfs配置,结果kubectl logs -f 到pod后,看到changing ownership of '/var/lib/mysql/': Operation notpermitted错误,百度了良久,终于有了答案

在搜索这个问题时,在Stack Overflow中找到如下内容:

k8s、nfs、mysql、changing ownership of '/var/lib/mysql/': Operation notpermitted_第1张图片
image

提示说确实是与NFS的配置有关,NFS默认是squash_all模式,但是要想使用NFS目录,将目录映射到docker容器中,必须要配置成no_root_squash模式才行,否则root用户无权限使用nfs的volume来映射docker容器中的目录!!!

no_root_squash模式:是登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!

这正是我遇到的问题,之前一直在排查k8s master节点的问题,查找资料有说是

kube-controller-manager的问题,但是排查一圈,没有发现问题。原来是NFS的问题啊,于是果断在NFS配置文件中增加了no_root_squash:

[root@dev252 etc]# more exports

/home/centos7/ 192.168.1.0/24(insecure,rw,sync,fsid=0)

/home/centos7/nfs192.168.1.0/24(insecure,rw,sync,no_root_squash,fsid=0)

这样,再重启nfs后,再次通过k8s启动mysql service,就一切都正常了,可以正常创建pod,也可在240上正常创建容器了!

参考文章:https://www.jianshu.com/p/d1ab286e68d2

你可能感兴趣的:(k8s、nfs、mysql、changing ownership of '/var/lib/mysql/': Operation notpermitted)