Kubernetes存储搭建NFS挂载失败处理

news/2024/7/4 7:38:37 标签: kubernetes, 容器, 云原生

搞NFS存储时候发现如下问题:

Events:
  Type     Reason       Age                  From               Message
  ----     ------       ----                 ----               -------
  Normal   Scheduled    5m1s                 default-scheduler  Successfully assigned dev/volume-nfs to node2
  Warning  FailedMount  2m58s                kubelet            Unable to attach or mount volumes: unmounted volumes=[logs-volume], unattached volumes=[logs-volume kube-api-access-k2tc8]: timed out waiting for the condition
  Warning  FailedMount  50s (x10 over 5m1s)  kubelet            MountVolume.SetUp failed for volume "logs-volume" : mount failed: exit status 32
Mounting command: mount
Mounting arguments: -t nfs 192.168.75.129:/root/data/nfs /var/lib/kubelet/pods/7fbfb3b5-f1e4-4eec-8a52-ecbf21dbf014/volumes/kubernetes.io~nfs/logs-volume
Output: mount.nfs: access denied by server while mounting 192.168.75.129:/root/data/nfs
  Warning  FailedMount  41s  kubelet  Unable to attach or mount volumes: unmounted volumes=[logs-volume], unattached volumes=[kube-api-access-k2tc8 logs-volume]: timed out waiting for the condition
问题:为卷"logs-volume"挂载失败,退出状态为32。挂载命令为:mount,挂载参数为:-t nfs 192.168.75.129:/root/data/nfs /var/lib/kubelet/pods/7fbfb3b5-f1e4-4eec-8a52-ecbf21dbf014/volumes/kubernetes.io~nfs/logs-volume。输出为:mount.nfs: access denied by server while mounting 192.168.75.129:/root/data/nfs。警告:FailedMount 41s kubelet Unable to attach or mount volumes: unmounted volumes=[logs-volume], unattached volumes=[kube-api-access-k2tc8 logs-volume]: timed out waiting for the condition。

已经检查如下:

1. 检查NFS服务器的配置,确保NFS共享目录已正确配置并且具有适当的权限。确保NFS服务器允许来自Kubernetes节点的访问。

2. 确保Kubernetes节点具有正确的网络访问权限,可以从Kubernetes节点ping通NFS服务器。

3. 检查Kubernetes节点上的防火墙设置,确保防火墙未阻止与NFS服务器的通信。

4. 检查Kubernetes节点上的NFS挂载点目录是否存在,并且具有适当的权限。

5. 重新尝试挂载NFS卷,确保挂载命令和参数正确,并且NFS服务器配置正确。

进行处理:

1、重新搭建NFS实验环境

#在master安装
[root@master ~]# yum install -y nfs-utils rpcbind
#在每个node安装
[root@node1 ~]# yum install -y nfs-utils 
[root@node2 ~]# yum install -y nfs-utils 

2、准备共享目录

[root@master ~]# mkdir -p /root/data/nfs

3、修改权限

#修改权限
[root@master ~]# chmod -R 777 /root/data/nfs

4、暴露主机

将共享目录以读写权限暴露给192.168.75.0/24网段中的所有主机

[root@master ~]# vim /etc/exports
/root/data/nfs 192.168.75.0/24(rw,no_root_squash)
192.168.75.0/24:这个是运行访问NFS的IP范围,根据自己的k8s主机网段设置。
(rw,no_root_squash,no_all_squash,sync):
可以设定的参数主要有以下这些:
rw:可读写的权限;
ro:只读的权限;
no_root_squash:登入到NFS主机的用户如果是root,该用户即拥有root权限;
root_squash:登入NFS主机的用户如果是root,该用户权限将被限定为匿名使用者nobody;
all_squash:不管登陆NFS主机的用户是何权限都会被重新设定为匿名使用者nobody。
anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。
anongid:同anonuid,但是变成group ID就是了!
sync:资料同步写入存储器中。
async:资料会先暂时存放在内存中,不会直接写入硬盘。
insecure:允许从这台机器过来的非授权访问。

 5、启动nfs服务&&设置服务随机自启

[root@master ~]# systemctl start nfs
[root@master ~]# systemctl enable nfs
[root@master ~]# systemctl start rpcbind

rpcbind是一个系统服务,它负责在NFS(Network File System)和其他RPC(Remote Procedure Call)服务之间建立连接。当客户端需要访问NFS服务器上的文件时,它会先与rpcbind建立连接,然后rpcbind会将客户端的请求转发给NFS服务器,从而实现文件的访问和共享。

因此,rpcbind在NFS中起着连接和协调的作用,是NFS服务的重要组成部分。 

2、创建volume-nfs.yml文件

apiVersion: v1
kind: Pod
metadata:
  name: volume-nfs
  namespace: dev
spec:
  containers:
  - name: nginx
    image: nginx:1.17.1
    ports:
    - containerPort: 80
    volumeMounts: 
    - name: logs-volume
      mountPath: /var/log/nginx
  - name: busybox
    image: busybox:1.30
    command: ["/bin/sh","-c","tail -f /logs/access.log"] 
    volumeMounts:  
    - name: logs-volume
      mountPath: /logs
  volumes: 
  - name: logs-volume
    nfs:
      server: 192.168.75.129      
      path: /root/data/nfs       

1、创建pod

[root@master ~]# kubectl create -f volume-nfs.yml 

2、查看pod详细信息

[root@master ~]# kubectl get po volume-nfs -n dev -o wide

3、查看master节点的nfs目录

 可以看到数据已经同步到挂载目录中

4、访问测试

[root@master ~]# curl 10.122.104.30:80 

查看日志内容


http://www.niftyadmin.cn/n/5237735.html

相关文章

C++ 系列 第四篇 C++ 数据类型上篇—基本类型

系列文章 C 系列 前篇 为什么学习C 及学习计划-CSDN博客 C 系列 第一篇 开发环境搭建(WSL 方向)-CSDN博客 C 系列 第二篇 你真的了解C吗?本篇带你走进C的世界-CSDN博客 C 系列 第三篇 C程序的基本结构-CSDN博客 前言 面向对象编程(OOP)的…

不瞒各位,不安装软件也能操作Xmind文档

大家好,我是小悟 作为搞技术的一个人群,时不时就要接收产品经理发过来的思维脑图,而此类文档往往是以Xmind编写的,如果你的电脑里面没有安装Xmind的话,不好意思,是打不开这类后缀结尾的文档。 打不开的话…

GitHub项目推荐-Deoldify

有小伙伴推荐了一个老照片上色的GitHub项目,看了简介,还不错,推荐给大家。 项目地址 GitHub - SpenserCai/sd-webui-deoldify: DeOldify for Stable Diffusion WebUI:This is an extension for StableDiffusions AUTOMATIC1111 w…

本地存储与复杂数据类型转换

1. 本地存储介绍 2.1 本地存储分类 - localStorage // 存储一个名字localStorage.setItem(uname, abc)// 获取名字console.log(localStorage.getItem(uname));// 删除本地存储 只删名字// localStorage.removeItem(uname)// 改localStorage.setItem(uname, aaa)// 存一个年龄 …

第四章 | 计算机网络原理 谢希仁(第八版)_ 习题答案(下)

文章目录 计算机网络原理 谢希仁(第八版)第四章 网络层 习题答案4-31 ~ 4-404-41 ~ 4-504-51 ~ 4-604-61 ~ 4-69 计算机网络原理 谢希仁(第八版) 第四章 网络层 习题答案 4-31 ~ 4-40 4-31 已知地址块中的一个地址是140.120.84.…

工程师业余生活之制作蔬菜盆景

工程师业余生活陶冶情操之制作蔬菜盆景 (蔬 果 盆 景 裝 點 家 居) 市場上好多蔬菜瓜果,稍用一些心思,將一些價廉的蔬果製成別致的盆景, 便能使家居充滿自然氣息,增添生活情趣。以下介紹幾種製作方法: 【番薯盆景】 (番薯又名地…

python提取通话记录中的时间信息

您需要安装适合中文的SpaCy模型。您可以通过运行 pip install spacypython -m spacy download zh_core_web_sm来安装和下载所需的模型。 import spacy# 加载中文模型 nlp spacy.load(zh_core_web_sm)# 示例电话记录文本 text """ Agent: 今天我们解决一下这…

springboot教师进修培训管理系统设计与实现java+jsp

2.1研究目标 目前全国各地都陆续开展了中小学教师进修培训工作,以不断丰富中小学教师的专业知识,提高教学水平。针对传统进修培训管理模式效率低下,数据资料存储分散、混乱、易丢失的问题,以Java Web技术为基础,设计并…