K8s:kubernetes.io~csi 目录介绍

目录标题

    • 查看POD对应的目录
    • [**1. 进入 CSI 相关目录**](#1. 进入 CSI 相关目录)
    • [**2. PVC 相关目录操作**](#2. PVC 相关目录操作)
    • [**3. 挂载点相关操作**](#3. 挂载点相关操作)
    • [**4. CSI PVC 的使用流程**](#4. CSI PVC 的使用流程)
    • [**5. 总结**](#5. 总结)

在 Kubernetes(K8s)中,容器存储接口(CSI) 是一种标准,用于将存储系统暴露给 K8s 中的容器化工作负载。持久卷声明(PVC) 是用户对存储的请求。

以下是结合图片中的目录对其使用的分析:

查看POD对应的目录

bash 复制代码
kubectl get pods --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,UID:.metadata.uid,containerID:.status.containerStatuses[].containerID | head

1. 进入 CSI 相关目录

首先,通过以下命令进入与 CSI 相关的目录:

bash 复制代码
cd /var/lib/kubelet/pods/999af003-35de-45fe-adf9-85b427785af7/volumes/kubernetes.io~csi/

这表明 K8s 在 kubelet 管理的 Pod 相关路径下存储与 CSI 卷相关的信息。

2. PVC 相关目录操作

  • 进入 PVC 目录:通过以下命令进入具体的 PVC 目录:

    bash 复制代码
    cd pvc-d2528431-c2db-4dcf-b6ed-1f1e72ad655c

    每个 PVC 在 CSI 存储卷中有对应的目录,用于存储该 PVC 绑定的存储相关数据。

  • 查看 PVC 目录内容 :使用 ls 命令查看 PVC 目录内容,其中可能包含 mountvol_data.json 等文件或目录。

    • mount 目录可能是实际挂载存储的位置。

    • vol_data.json 可能包含与该卷相关的元数据。

3. 挂载点相关操作

  • 进入挂载点:通过以下命令进入挂载点目录:

    bash 复制代码
    cd mount/

    在这个目录下,可以看到 archivedatalost+found 等子目录,这些是存储系统实际的数据存储结构。

  • 查看数据目录 :进入 data 目录后,可以看到与数据库相关的文件和目录,如 confinnodb_tslog 等(从文件名推测可能是 MySQL 数据库相关)。这表明该 PVC 已经成功挂载,并且应用程序正在使用它存储数据。

4. CSI PVC 的使用流程

  1. PVC 创建:用户定义 PVC 对象,声明所需的存储资源(如容量、访问模式等)。

  2. 存储供给:K8s 通过 CSI 插件与存储提供商交互,根据 PVC 的要求创建或分配对应的存储卷(Persistent Volume,PV)。

  3. 绑定:K8s 将 PVC 与合适的 PV 进行绑定,建立逻辑连接。

  4. 挂载:在 Pod 中通过 CSI 驱动将绑定的 PV 挂载到容器内指定的路径,使得容器可以像访问本地文件系统一样访问存储,如图片中展示的在容器内对挂载点目录进行操作。

5. 总结

通过 CSI 和 PVC 的结合,K8s 提供了一种灵活且可扩展的方式来管理存储,支持多种存储系统,并且使得应用程序与底层存储解耦。

在实际操作中,您可以通过以下步骤来创建和使用 PVC:

  1. 创建 PVC:定义所需的存储资源。

  2. 创建 Pod:在 Pod 的配置中引用 PVC。

  3. 验证挂载:确保 Pod 启动后,存储卷已成功挂载到容器内指定路径。

通过以上步骤,您可以在 K8s 中有效地管理持久化存储,满足应用程序对存储的需求。

相关推荐
密瓜智能11 小时前
国产 GPU 如何丝滑融入 K8s?燧原科技的全栈云原生实践
云原生·kubernetes·ai算力
Cat_Rocky21 小时前
k8s-持久化存储,粗浅学习
java·学习·kubernetes
ILL11IIL1 天前
k8s的pod管理及优化
云原生·容器·kubernetes
埃菲尔铁桶1 天前
踩坑一周|OpenSandbox + AI Agent 冷启动从 2 分钟降到 1 秒,我们做了这些事
kubernetes
沧州刺史1 天前
k8s 拉取镜像时,请求提前断开(EOF)导致拉取失败
云原生·容器·kubernetes
牛奶咖啡131 天前
k8s容器编排技术实践——k8s的介绍及其整体运行架构
云原生·kubernetes·k8s是什么?有啥用?·k8s的应用场景·k8s的优缺点边界·k8s的重要概念·k8s的整体运行架构
小坏讲微服务1 天前
小白搭建K8S集群0基础教程实战
docker·云原生·容器·kubernetes
xingfujie1 天前
Ubuntu K8s 1.28 kubeadm 高可用集群部署实战
linux·运维·服务器·docker·kubernetes
9命怪猫1 天前
[K8S小白问题集] - K8S为什么选择etcd而不是别的key-value DB?比如Redis
云原生·容器·kubernetes
小夏子_riotous1 天前
Kubernetes学习路径——3. Kubernetes 1.25 高可用集群部署实战:从 Docker 到 Calico 全链路详解
linux·运维·学习·docker·容器·kubernetes·centos