记一次busybox-mountPath简单但容易忽略的问题open /proc/self/fd: no such file or directory

目录

一.设备条件介绍 

二.我的目的

三.问题所在

1.在用以下pod进行测试的时候出现问题

2.报错

3.解决

4.解决完成


一.设备条件介绍 

[root@k8s-master pv]# containerd --version
containerd containerd.io 1.6.25 d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f
​
[root@k8s-master pv]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"28", GitVersion:"v1.28.2", GitCommit:"89a4ea3e1e4ddd7f7572286090359983e0387b2f", GitTreeState:"clean", BuildDate:"2023-09-13T09:34:32Z", GoVersion:"go1.20.8", Compiler:"gc", Platform:"linux/amd64"}

二.我的目的

1.创建pv、nfs,再创建pvc,并且通过pvc和nfs去存储pod产生的信息(以nginx的访问日志为例的)。在myns命名空间里创建好了my-pv1、my-pv2,并且创建好了my-pvc1、my-pvc2,都绑定好了。

[root@k8s-master pv]# cat /etc/exports
/root/pv/pv1 192.168.2.0/24(rw,no_root_squash)
/root/pv/pv2 192.168.2.0/24(rw,no_root_squash)[root@k8s-master pv]# kubectl get pv,pvc -n myns
NAME                      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM          STORAGECLASS   REASON   AGE
persistentvolume/my-pv1   1G         RWX            Retain           Bound    myns/my-pvc1                           4m22s
persistentvolume/my-pv2   1G         RWX            Retain           Bound    myns/my-pvc2                           4m22s
NAME                            STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/my-pvc1   Bound    my-pv1   1G         RWX                           4m14s
persistentvolumeclaim/my-pvc2   Bound    my-pv2   1G         RWX                           4m14s

2.这是我的pv,pvc文件

[root@k8s-master pv]# cat pv.yaml 
apiVersion: v1
kind: Namespace
metadata:name: myns---apiVersion: v1
kind: PersistentVolume
metadata:name: my-pv1namespace: myns
spec:capacity:storage: 1GaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Retainnfs:path: /root/pv/pv1server: 192.168.2.150---apiVersion: v1
kind: PersistentVolume
metadata:name: my-pv2namespace: myns
spec:capacity: storage: 1GaccessModes:- ReadWriteManypersistentVolumeReclaimPolicy: Retainnfs:path: /root/pv/pv2server: 192.168.2.150

这些内容能绑定应该都是正确的

[root@k8s-master pv]# cat pvc.yaml 
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: my-pvc1namespace: myns
spec:accessModes:- ReadWriteManyresources:requests:storage: 500M---apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: my-pvc2namespace: myns
spec:accessModes:- ReadWriteManyresources:requests:storage: 600M

三.问题所在

1.在用以下pod进行测试的时候出现问题

[root@k8s-master pv]# cat pod.yaml 
apiVersion: v1
kind: Pod
metadata: name: my-pod1namespace: myns
spec:containers:- name: my-nginx1image: nginxports:- name: nginx-port1containerPort: 80volumeMounts:- name: my-volumemountPath: /var/log/nginx- name: my-busybox1image: busyboxcommand: ["/bin/sh","-c","tail -f /access.log"]volumeMounts:- name: my-volumemountPath: /volumes:- name: my-volumepersistentVolumeClaim:claimName: my-pvc1---apiVersion: v1
kind: Pod
metadata:name: my-pod2namespace: myns
spec:containers:- name: my-nginx2image: nginxports:- name: nginx-port2containerPort: 80volumeMounts:- name: my-volumemountPath: /var/log/nginx- name: my-busybox2image: busyboxcommand: ["/bin/sh","-c","tail -f /access.log"]volumeMounts:- name: my-volumemountPath: /volumes:- name: my-volumepersistentVolumeClaim:claimName: my-pvc2

2.报错

Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error closing exec fds: open /proc/self/fd: no such file or directory: unknown

[root@k8s-master pv]# kubectl describe pod my-pod1 -n myns
Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error closing exec fds: open /proc/self/fd: no such file or directory: unknown

3.解决

将上文pod的yaml中mountPath改来尽量不使用“/”

原因:在 BusyBox 容器中使用 / 作为 volume 的 mountPath 通常会失败,因为该路径本身不存在。如果你想要在 BusyBox 容器中使用 volume,可以考虑使用非根目录作为 mountPath,比如 /root/mnt 等等,这些目录一般存在于 BusyBox 的文件系统结构中,可以正常使用。所以在精简的镜像中尽量不要使用“/”作为挂载目录。

[root@k8s-master pv]# cat pod.yaml 
apiVersion: v1
kind: Pod
metadata: name: my-pod1namespace: myns
spec:containers:- name: my-nginx1image: nginxports:- name: nginx-port1containerPort: 80volumeMounts:- name: my-volumemountPath: /var/log/nginx- name: my-busybox1image: busyboxcommand: ["/bin/sh","-c","tail -f /logs/access.log"]volumeMounts:- name: my-volumemountPath: /logsvolumes:- name: my-volumepersistentVolumeClaim:claimName: my-pvc1---apiVersion: v1
kind: Pod
metadata:name: my-pod2namespace: myns
spec:containers:- name: my-nginx2image: nginxports:- name: nginx-port2containerPort: 80volumeMounts:- name: my-volumemountPath: /var/log/nginx- name: my-busybox2image: busyboxcommand: ["/bin/sh","-c","tail -f /logs/access.log"]volumeMounts:- name: my-volumemountPath: /logsvolumes:- name: my-volumepersistentVolumeClaim:claimName: my-pvc2

4.解决完成

[root@k8s-master pv]# kubectl apply -f pod.yaml 
pod/my-pod1 created
pod/my-pod2 created
[root@k8s-master pv]# kubectl get pods -n myns
NAME      READY   STATUS    RESTARTS   AGE
my-pod1   2/2     Running   0          8s
my-pod2   2/2     Running   0          8s[root@k8s-master pv]# kubectl get pv,pvc,pod -n myns -o wide
NAME                      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM          STORAGECLASS   REASON   AGE   VOLUMEMODE
persistentvolume/my-pv1   1G         RWX            Retain           Bound    myns/my-pvc1                           40m   Filesystem
persistentvolume/my-pv2   1G         RWX            Retain           Bound    myns/my-pvc2                           40m   FilesystemNAME                            STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE   VOLUMEMODE
persistentvolumeclaim/my-pvc1   Bound    my-pv1   1G         RWX                           40m   Filesystem
persistentvolumeclaim/my-pvc2   Bound    my-pv2   1G         RWX                           40m   FilesystemNAME          READY   STATUS    RESTARTS   AGE     IP               NODE        NOMINATED NODE   READINESS GATES
pod/my-pod1   2/2     Running   0          4m12s   10.244.107.197   k8s-node3   <none>           <none>
pod/my-pod2   2/2     Running   0          4m12s   10.244.36.69     k8s-node1   <none>           <none>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728044.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos9环境部署MySQL的PXC

前期理解 pxc就是将多个mysql数据库整合为一个集群&#xff0c;每台服务器上的mysql数据库会实时同步&#xff0c;而且节点与节点之间&#xff0c;他们相互的关系是对等的。PXC 最关注的是数据的一致性&#xff0c;对待事物的行为时&#xff0c;要么在所有节点上执行&#xff…

爬虫(四)

1.图片验证码 import requestsres requests.get(https://www.gushiwen.cn/RandCode.ashx)with open("code.png", "wb") as f:f.write(res.content)2.打码平台 网址&#xff1a;http://www.ttshitu.com/&#xff0c;找到开发文档点击Python,没有钱了要用我…

Day 53 |● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和

1143.最长公共子序列 class Solution { public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size()1,vector<int>(text2.size()1,0));int res 0;for(int i 1; i < text1.size(); i){for(int j 1; j <…

Leetcode148 排序链表

排序链表 题解1 线性表题解2 自顶向下归并排序题解3 自底向上归并排序 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回排序后的链表 。 题解1 线性表 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* L…

网络编程第1天

OSI的七层网络模型有哪些&#xff0c;每一层有什么作用&#xff1f; &#xff08;1&#xff09;应用层 负责处理不同应用程序之间的通信&#xff0c;需要满足提供的协议&#xff0c;确保数据发送方和接收方的正确 应用层提供的协议&#xff1a; HTTP&#xff1a;超文本传输…

React-Redux简单使用

1.配置环境 1.1开启项目 npx create-react-app react-redux-pro 1.2安装配套工具 说明&#xff1a;安装Redux Toolkit和react-redux。Redux Toolkit(RTK)~官方推荐编写Redux逻辑的方式&#xff0c;是一套工具的集合集&#xff0c;简化书写方式&#xff1b;react-redux-用来…

【Leetcode】3028.边界上的蚂蚁

题目描述 思路 题目中要求我们返回 蚂蚁返回到边界的次数。简单来想&#xff0c;就是蚂蚁原来的位置的一维坐标为0&#xff0c;然后经过&#xff0c;若干次移动&#xff0c;统计有几次坐标再次变为0的个数。 我们利用前缀和&#xff0c;像定义一个数组&#xff0c;算出前缀和数…

CleanMyMac X 4.14.6 2024核心功能详解 CleanMyMac X中文官网安装包 Mac电脑系统清理软件

CleanMyMac 是 macOS 上久负盛名的系统清理工具&#xff0c;2018 年&#xff0c;里程碑式版本 CleanMyMac X 正式发布。不仅仅是命名上的变化&#xff0c;焕然一新的 UI、流畅的动画也让它显得更加精致。新增的系统优化、软件更新等功能&#xff0c;使得在日常使用 macOS 时有了…

JavaEE之volatile关键字

一.内存可见性问题 什么是内存可见性问题 计算机运行的程序/代码&#xff0c;往往需要访问数据。这些数据往往存在于内存中。 cup使用此变量时&#xff0c;就会把内存中的数据先读出来&#xff0c;加载到cpu寄存器中&#xff0c;再去参与运算。 但是&#xff0c;关键是cpu读…

Flink实时数仓同步:实时表实战详解

一、背景 在大数据领域&#xff0c;初始阶段业务数据通常被存储于关系型数据库&#xff0c;如MySQL。然而&#xff0c;为满足日常分析和报表等需求&#xff0c;大数据平台采用多种同步方式&#xff0c;以适应这些业务数据的不同存储需求。这些同步存储方式包括离线仓库和实时仓…

细说券商VIP快速交易通道与交易所报单一文看懂

最近的行情渐入佳境&#xff0c;很多朋友都喜欢做短线或者打板交易。可以往往发现打板进去的要么就是量能不足没有封住的&#xff0c;或者说是炸板的&#xff0c;想要交易一字板又打板不进去&#xff0c;这种就很让人苦恼。今天我们就来解答下这种到底该怎么处理&#xff1f;首…

98、小册内容总结

恭喜你,如果你是从头到尾按照顺序看过来的,那么关于小册的内容基本上就看完了(time at: 2024-02-25)。 先备注几点: 按照原来的设想,会写 100 篇左右的文章,实际写了 98 篇(后面还会补几篇代码仓库的使用介绍)。 如果你从头看过来,会发现有些文章篇幅短,而有些文章篇…

Vue中如何处理组件间的耦合问题?

在Vue中处理组件间的耦合问题是前端开发中常见的挑战之一。耦合问题指的是组件之间的依赖关系过于紧密&#xff0c;一旦某个组件发生改动&#xff0c;则可能导致其它组件也需要作出相应调整。为了解决这个问题&#xff0c;我们可以采取以下几种方法&#xff1a; 使用事件总线&…

【软考】图的定义

目录 1. 定义2. 有向图2.1 定义2.2 举个例子 3. 无向图4. 完全图5. 出度6. 入度7. 度8. 路径9. 简单路径10. 回路 1. 定义 1.图&#xff08;Graph&#xff09;是由顶点的有穷非空集合和顶点之间边的集合组成&#xff0c;图G是由集合V和E构成的二元组&#xff0c;记作G(VE)2.V是…

[笔记] 使用 Java Swing 实现一个简单的窗口

Java Swing 是一个用于构建图形用户界面&#xff08;GUI&#xff09;的Java库&#xff0c;它提供了丰富的组件和工具&#xff0c;用于创建交互式的桌面应用程序。Swing 是 Java Foundation Classes&#xff08;JFC&#xff09;的一部分&#xff0c;它是 Java 平台的一种标准用户…

金三银四求职季,这个AI神器助你斩获高薪Offer!

金三银四将至&#xff0c;又到了求职的高峰季&#xff0c;不管是招聘方&#xff0c;还是求职者&#xff0c;肉眼可见都会忙到飞起。 过去准备招聘 JD 或求职简历&#xff0c;都依赖人工编辑和包装&#xff0c;而眼下已进入 AI 时代&#xff0c;善用 AI 的人&#xff0c;无形中…

在矩池云上使用CogVLM的具体方法(附与GPT4、Gemini测试效果对比)

CogVLM 是由智谱AI&清华KEG基于对视觉和语言信息之间融合的理解&#xff0c;所推出的多模态大模型。在本文中&#xff0c;我们将展示在矩池云上使用CogVLM的方法。 硬件要求 使用 CogVLM 需要 CUDA 11.8 及以上环境&#xff0c;推理总显存需要40G以上&#xff0c;可以直接…

评估需求优先级的方法

Kano模型&#xff1a; 1.前言 在大量的需求需要进行迭代时&#xff0c;由于时间、人力、财力等相关因素干扰&#xff0c;无法在有限的时间内容对所有的需求进行满足&#xff0c;此时需要我们对需求进行优先级的排列。最大化的合理的提高有限资源的使用。 在常见的产品优先级…

【笔记】Android Telephony 漫游SPN显示定制(Roaming Alpha Tag)

一、功能名词简介和显示规则 Alpha Tag&#xff1a;运营商名称标识符&#xff0c;也是用于标识运营商的一个名称。客户需求描述常用名词&#xff0c;对开发而言都是SPN/PLMN功能模块的内容&#xff0c;状态栏左上角的运营商名称显示。 SPN相关文章&#xff1a; 【笔记】SPN和…

重装系统后正版office如何安装

前言 重装系统后&#xff0c;正版office如何安装 登录官网 https://www.microsoft.com 下载office https://account.microsoft.com/services