K8s: 持久化存储之卷, NFS卷

k8s数据持久化之NFS 目录 NFS 部署nfs 测试 k8s中使用nfs示例 测试数据共享 测试数据持久化 NFS NFS是主流的k8s数据持久化解决方案与pod共享存储解决方案 NFS数据卷:提供对NFS挂载支持,可以自动将NFS共享路径挂载到Pod中 NFS:是一个主流的文件共享服务器 部署nfs 1、实施nfs(所有节点) yum install nfs-utils -y 2、选择一台nfs-utils服务器作为数据节点,并进行配置 修改nfs服务器配置 阅读详情

卷 Volume


1 ) 概述

  • 容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题
    • 首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失——因为容器会以干净的状态重建
    • 其次,当在一个 Pod 中同时运行多个容器时,常常需要在这些容器之间共享文件
  • K8s 抽象出 Volume 对象来解决这两个问题
  • Docker 也有 Volume 的概念,但对它只有少量且松散的管理
  • 在 Docker 中,Volume 是磁盘上或者另外一个容器内的一个目录
  • 直到最近,Docker 才支持对基于本地磁盘的 Volume 的生存期进行管理
  • 虽然 Docker 现在也能提供 Volume 驱动程序,但是目前功能还非常有限
    • 每个容器只允许有一个 Volume 驱动程序,并且无法将参数传递给卷
  • 另一方面,K8s 卷具有明确的生命周期——与包裹它的 Pod 相同
  • 因此,卷比 Pod 中运行的任何容器的存活期都长,在容器重新启动时数据也会得到保留
  • 当然,当一个 Pod 不再存在时,卷也将不再存在, 也许更重要的是
  • K8s 可以支持许多类型的卷,Pod 也能同时使用任意数量的卷
  • 卷的核心是包含一些数据的目录,Pod 中的容器可以访问该目录
  • 特定的卷类型可以决定这个目录如何形成的
  • 并能决定它支持何种介质,以及目录中存放什么内容
  • 使 用 卷 时 , Pod 声 明 中 需 要 提 供 卷 的 类 型 (.spec.volumes 字 段 )
  • 和 卷 挂 载 的 位 置(.spec.containers.volumeMounts 字段)
  • K8s 提供了众多的volume类型,包括emptyDir、hostPath、nfs、glusterfs、cephfs、ceph,

2 ) 关于 emptyDir

  • 当 Pod 指定到某个节点上时,首先创建的是一个 emptyDir 卷
  • 并且只要 Pod 在该节点上运行,卷就一直存在
  • 就像它的名称表示的那样,卷最初是空的
  • 尽管 Pod 中的容器挂载 emptyDir 卷的路径可能相同也可能不同
  • 但是这些容器都可以读写 emptyDir 卷中相同的文件
  • 当 Pod 因为某些原因被从节点上删除时
  • emptyDir 卷中的数据也会永久删除
  • 说明
    • 容器崩溃并不会导致 Pod 被从节点上移除
    • 因此容器崩溃时 emptyDir 卷中的数据是安全的
  • emptyDir 的一些用途
    • 缓存空间,例如基于磁盘的归并排序
    • 为耗时较长的计算任务提供检查点
    • 以便任务能方便地从崩溃前状态恢复执行
    • 在 Web 服务器容器服务数据时,保存内容管理器类型容器获取的文件

3 )关于 hostPath

  • hostPath卷能将主机节点文件系统上的文件或目录挂载到Pod中

  • 虽然这不是大多数Pod需要的

  • 但是它为一些应用程序提供了强大的持久化能力

  • 现在写一个应用 $ vi vol-hostpath.yaml

    apiVersion: v1
    kind: Pod
    metadata:
      name: hostpath-pod
    spec:
      containers:
      - name: test-container
        image: nginx
        volumeMounts:
        - mountPath: /test-nginx
          name: myhostpath
      volumes:
      - name: myhostpath
        hostPath:
          path: /tmp/nginx
          type: DirectoryOrCreate # 不存在目录则创建
    
  • $ kubectl apply -f vol-hostpath.yaml

    pod/hostpath-pod created
    
  • $ kubectl get pod

    NAME           READY   STATUS    RESTARTS   AGE
    hostpath-pod   1/1     Running   0          18m
    
  • $ kubectl exec -it hostpath-pod -- sh 进入 pod

  • $ ls | grep test

    test-nginx
    
  • $ cd test-nginx

  • $ touch a.txt

  • $ echo 1 > a.txt

  • 这时候在pod内 /test-nginx/a.txt 中写入了 1

  • 现在,退出 pod, $ exit

  • 查看pod被部署到了哪台node节点上,$ kubectl describe pod hostpath-pod | grep Node

    Node:         node1.k8s/10.211.55.11
    Node-Selectors:              <none>
    
  • 好,定位到这个node机器上,执行 $ cat /tmp/nginx/a.txt

    1
    
  • 可以看到,数据是同步的了,当然 hostPath 仍然是有局限的

    • 也就是和work node绑定了,如果应用服务多了,就麻烦了
    • 在一台work node存在,但是在另一台却不存在

NFS 卷


1 )概述

  • Network File System 简称 NFS
  • 很多应用需要在集群内部有一个统一的地方在存储文件,比如图片,日志等等
  • 而使用 hostPath 方式并不灵活,因为你需要指定 host 的地址
  • 如果在node1上上传的,在node2上就找不到了,所以,hostPath不适合一般传统业务场景
  • 我们需要,文件存储后,让所有应该都能访问到,而且要兼顾管理的便捷性
  • NFS 是一个成熟的技术,NFS 在大规模使用下会有性能问题
  • 如果文件量存储较大,建议还是用对象存储
  • 如果上传文件不多,也不大,可以推荐使用NFS
  • 可见,NFS解决了hostPath的问题
  • 一般,在 master 节点上装nfs服务专门管理文件存储
  • 在node1或node2上挂nfs服务器,写文件时,会写入 master 节点上

2 ) 安装 nfs 服务

  • 在 Master 和 所有Worker Node 安装 nfs 服务

    • $ yum install -y nfs-utils rpcbind centos 8 可以用 yum, centos 9已经使用dnf来
    • $ sudo dnf install nfs-utils rpcbind centos 9 安装
    • 注意,在centos9 上使用 yum 安装可能会出问题
    • 下面就使用 dnf 和 centos 9 作为安装的环境
  • 在 Master 节点配置 $ vi /etc/exports 修改配置

    /nfsdata *(rw,sync,no_root_squash)
    
  • 在 Master 节点 $ sudo exportfs -ra 修改了/etc/exports,需要重新激活配置

    sudo exportfs -ra
    
  • 在 Master 节点启动 NFS 服务和 rpcbind,并设置它们在系统启动时自动运行

    sudo systemctl start rpcbind
    sudo systemctl start nfs-server
    sudo systemctl enable rpcbind
    sudo systemctl enable nfs-server
    
  • 在 Master节点检查 NFS 服务和 rpcbind 是否运行正常

    sudo systemctl status rpcbind
    sudo systemctl status nfs-server
    
    • 检查Active的状态为: active
  • 在 Master 节点查看挂载效果 $ showmount -e master

    Export list for master:
    /nfsdata *
    
    • 目前这样即为挂载/nfsdata成功

3 ) 在 node 节点 运行服务

  • $ vi nfs-demo1.yaml 编写yaml文件进行测试
    apiVersion: v1
    kind: Pod
    metadata:
      name: nfs-pd
    spec:
      containers:
      - name: test-container
        image: nginx
        volumeMounts: # 上面的容器内挂载目录为
        - mountPath: /usr/share/nginx/html
          name: test-volume
      volumes: # 物理机
      - name: test-volume
        nfs:
          server: master.k8s # 这里配置的是 master 节点的 hostname
          path: /nfsdata
    
  • $ kubectl get po -w 监控 nfs pod 的状态
    NAME           READY   STATUS    RESTARTS       AGE
    nfs-pd         1/1     Running   0              36s
    
  • $ kubectl exec -it nfs-pd -- sh 进入pod
  • $ mount 执行 mount 看容器起来后,挂载哪些卷,这里是全部的
    overlay on / type overlay (rw,relatime,lowerdir=/var/lib/docker/overlay2/l/TGJN2AK5DUCHXGQSXLTICMH6CV:/var/lib/docker/overlay2/l/4EYRGAW5MFRGLIJKCOJFKWNRDT:/var/lib/docker/overlay2/l/Y5QO2NJ6REXYEVRYLCHKIWZOLG:/var/lib/docker/overlay2/l/T5HUWMG4LKHET6APDBVJ25QIPE:/var/lib/docker/overlay2/l/PCJEGNJOYLSPYYP5TJBFNNAPF6:/var/lib/docker/overlay2/l/4EUOTLMHJJFA2AXOALXRHNAIOA:/var/lib/docker/overlay2/l/7WCTJFFWY4TZNAN3GM4JWTIBSV:/var/lib/docker/overlay2/l/UI7F22MIRB2NZSHHGF6U6IJU2U,upperdir=/var/lib/docker/overlay2/f3010a94dda626c9b3f8249c61f03b3e6caf6557b1193d7f9979308f7bf8d4e5/diff,workdir=/var/lib/docker/overlay2/f3010a94dda626c9b3f8249c61f03b3e6caf6557b1193d7f9979308f7bf8d4e5/work)
    proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
    tmpfs on /dev type tmpfs (rw,nosuid,size=65536k,mode=755,inode64)
    devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)
    sysfs on /sys type sysfs (ro,nosuid,nodev,noexec,relatime)
    cgroup on /sys/fs/cgroup type cgroup2 (ro,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
    mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
    shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k,inode64)
    /dev/mapper/cs-root on /dev/termination-log type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
    /dev/mapper/cs-root on /etc/resolv.conf type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
    /dev/mapper/cs-root on /etc/hostname type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
    /dev/mapper/cs-root on /etc/hosts type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
    master.k8s:/nfsdata on /usr/share/nginx/html type nfs4 (rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.211.55.12,local_lock=none,addr=10.211.55.13)
    tmpfs on /run/secrets/kubernetes.io/serviceaccount type tmpfs (ro,relatime,size=1704516k,inode64)
    proc on /proc/asound type proc (ro,nosuid,nodev,noexec,relatime)
    proc on /proc/bus type proc (ro,nosuid,nodev,noexec,relatime)
    proc on /proc/fs type proc (ro,nosuid,nodev,noexec,relatime)
    proc on /proc/irq type proc (ro,nosuid,nodev,noexec,relatime)
    proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime)
    proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime)
    tmpfs on /proc/acpi type tmpfs (ro,relatime,inode64)
    tmpfs on /proc/kcore type tmpfs (rw,nosuid,size=65536k,mode=755,inode64)
    tmpfs on /proc/keys type tmpfs (rw,nosuid,size=65536k,mode=755,inode64)
    tmpfs on /proc/timer_list type tmpfs (rw,nosuid,size=65536k,mode=755,inode64)
    tmpfs on /proc/scsi type tmpfs (ro,relatime,inode64)
    tmpfs on /sys/firmware type tmpfs (ro,relatime,inode64)
    
  • $ mount | grep nfs 查看 nfs 挂载效果
    master.k8s:/nfsdata on /usr/share/nginx/html type nfs4 (rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.211.55.12,local_lock=none,addr=10.211.55.13)
    
  • 在 node 节点上创建文件并写入数据
    • $ cd /usr/share/nginx/html
    • $ touch x.txt
    • $ echo nfs > x.txt
    • $ cat x.txt
      nfs
      

4 )回到 master 节点上检查

  • 现在回到 master.k8s 这个 master 节点上查看

    • $ cat /nfsdata/x.txt
      nfs
      
  • 现在,可以看到,nfs 服务正常工作了

5 ) 总结

  • 文件共享,静态资源共享, 图片上传,…
  • 一切需要统一存储的地方,都适合 nfs
k8s之挂载NFS到POD中 NFS全称network file system,是一种允许我们像使用本地磁盘一样,使用远端某机器的磁盘的一种技术,采用cs架构,所以其本质上可以看做是一种数据存储解决方案。 阅读详情

相关推荐

使用 docker 的方式部署 NFS server 提供文件共享能力

从 Linux 2.2开始,Linux 将传统上与超级用户相关的特权划分为不同的单元,称为 Capabilities,可以独立启用和禁用。

以梦为马|越骑越傻 2226

搭建NFS服务器,部署k8s集群,并在k8s中使用NFS作为持久化储存

本文旨在探讨如何搭建NFS服务器,并将其集成到Kubernetes(K8s)集群中作为持久化存储的解决方案。我们将首先介绍NFS的基本原理和优势,随后详细阐述NFS服务器的搭建过程,包括安装NFS软件包、配置NFS共享目录以及启动NFS服务。接着,我们将探讨如何安装k8s集群并在K8s中部署NFS客户端。

博客虽小,世界尽在其中 9282

Kubernetes(k8s) po 配置持久化挂载(nfs)

本文介绍了在Kubernetes中使用NFS实现持久化存储的配置方法。主要内容包括:NFS作为共享存储的作用,解决Pod数据丢失问题;配置思路着重于NFS目录权限处理,提供777、基于用户组ID和指定容器用户ID三种方案;并详细展示了创建PV、PVC及挂载到Pod的具体yaml配置示例。文章建议开发环境可用777权限,生产环境应采用更安全的用户组或指定UID方式,同时提供了快速验证部署状态的命令。该方案实现了计算与存储解耦,确保数据持久化和多Pod共享访问。

杨杨杨~~的博客 1518

史上最全之K8s使用nfs作为存储卷的五种方式

文章目录史上最全之K8s使用nfs作为存储卷的五种方式在`deployment/statefulset`中直接使用创建类型为nfs的持久化存储卷NFS CSI Driver安装使用pv/pvc 使用(静态配置)存储类使用(动态配置)NFS Subdir External Provisioner安装创建存储类验证集群模式nfs-ganesha-server-and-external-provisioner安装使用集群模式总结 史上最全之K8s使用nfs作为存储卷的五种方式 我们能将 NFS (网络文件系统)

琦彦 1万+

ECMWF等大气数据批量下载(Python API)详细步骤

ECMWF等大气数据批量下载(Python API) 遥感方向做热红外温度反演,不可避免的要用到大气廓线数据,大气数据具有实时性,比如2018年9月1日的早上8点的影像,为了提高反演精度就需要用到时间上与其相差尽可能接近的大气数据,用于消除大气的影响,如果数据量较少我们可以查看影像的时间和空间范围进行下载,但是如果处理某个较大区域时可能涉及到大量的影像,如果一景一景对应查找去下载会很麻烦,因此针对大量数据的自动批量下载很有必要。本文根据 https://cds.climate.copernicus.eu/#

liuxiaojiangtobeno1的博客 1万+

[数据转换]将NetCDF(NC)文件转换成单个GeoTIFF文件

有时候要提取tif格式数据中的气象数据,但从气象网站上下载的却是NC格式的文件。这就需要我们将NC格式的文件转换成TIF格式的文件。

G_sea_young的博客 1004

K8s(12)——存储之volumes

在K8S中,volume是kubernetes Pod中多个容器访问的共享目录。volume被定义在pod上,被这个pod的多个容器挂载到相同或不同的路径下。volume的生命周期与pod的生命周期相同,pod内的容器停止和重启时一般不会影响volume中的数据。所以一般volume被用于持久化pod产生的数据。Pod 中的每个容器必须独立地指定每个卷的挂载位置。k8s支持的常见Volume类型如下: 基本存储:EmptyDir、HostPath、NFS 高级存储emptyDir卷。

m0_46652469的博客 1414

手把手教你用U盘制作Win11启动盘:从PE工具到系统安装全流程

本文提供了一份详尽的Windows 11启动盘制作与系统安装全流程指南。从选择合适的U盘和PE工具开始,重点讲解了如何正确制作包含EFI引导分区的启动盘,并详细演示了在PE环境下进行GPT分区、使用CGI工具安装系统镜像,以及首次启动后的关键设置步骤,帮助用户轻松完成从零到一的系统安装。

weixin_28475533的博客 1294

Kubernetes Volume(卷)精讲

Volume 就是给容器接外部存储,解决容器数据丢失、多容器共享文件两大问题;临时共享用 emptyDir,注入配置用 ConfigMap/Secret,节点本地用 hostPath,共享持久化用 NFS;生产统一用 PV+PVC 解耦存储管理和使用,配合 StorageClass 实现自动供给;排障先看 Pod 事件,再看节点 kubelet 日志,最后手动测试存储连通性。

2301_77398968的博客 254

【Docker】如何让docker容器正常使用nvidia显卡

描述了如何在docker容器中使用英伟达显卡的过程和问题解决方法。

NameLoadingFailed的博客 8372

基于Dify实现对Excel的数据分析

在dify部署完成后,大家就可以基于此进行各种应用场景建设,目前dify支持聊天助手(包括对话工作流)、工作流、agent等模式的场景建设,我们在日常工作中经常会遇到各种各样的数据清洗、格式转换处理、数据统计成图等数据分析工作,本次主要基于对话工作流模式对Excel文件、csv文件进行解析处理,并进行成图等数据分析工作。主要用到的插件有LLM节点,文档提取器、参数提取器、自定义代码节点、echart插件等。实现解析Excel数据,经过上述不同节点的处理分析流程,最终实现数据统计图展示。

hhue2007的专栏 1万+

k8s之emptyDir、hostPath、NFS

emptyDir emptyDir类型的Volume在Pod分配到Node上时被创建,Kubernetes会在Node上自动分配一个目录,因此无需指定宿主机Node上对应的目录文件。 这个目录的初始内容为空,当Pod从Node上移除时,emptyDir中的数据会被永久删除。emptyDir Volume主要用于某些应用程序无需永久保存的临时目录,多个容器的共享目录等 容器的crashing事件并不会导致emptyDir中的数据被删除,因此容器崩溃期间 emptyDir 卷中的数据是安全的 emptyDir

jiayu的博客 2182

DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)

【代码】DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)

baidu_34971492的博客 976

关于k8s集群的存储卷

从节点中删除 Pod 时,emptyDir中的数据将被永久删除。

2402_83805984的博客 1428

vue2 - elementUI表格table树形结构复选框勾选父子联动示例,el-table树状表格tree复选框checkbox多选框全选/反选取消children(当子级全选中,父级自动勾选)

vue2,elementui,el-table树状表格多选,树形结构结合多选框使用,实现单选父子联动全选反选,勾选联动父级勾选,表格多选check父子联动,table表格children如何嵌入复选框,el-table使用多选框与树形数据写一个有半选全选功能的表格,el-table树形表格实现复选框多选效果,表格树状结构多选,每一个row都可以选中并且联动全选按钮,table选父带子选子带父,树形数据与懒加载,Table表格树形结构多选框选中父级时会选中子级,elementUI表格里树形结构嵌套复选框全选全

✅ 精选推荐文章 1万+

【沃顿商学院学习笔记】商业基础——Financing:05 名义利率和实际利率 APR& EAR

商业基础——名义利率和实际利率 本章主要是从名义利率和实际利率的相关概念和计算方法进行学习。 名义利率和实际利率 APR&amp;amp; EAR 根据下图可以直到: APR,QUOTED RATE在精算中又叫名义利率,比如一个房产贷款quoted rate or APR是12%,且按月复利,那么说明它的月实际利率是12%/12=1% EAR是effecive annual rate,在精算中叫实际利率,...

ECNU乐扣老师——区块链、可计算情感 1万+

k8s存储卷---emptyDir、hostPath、nfs共享存储

k8s存储卷---emptyDir、hostPath、nfs共享存储一、 emptyDir 存储卷1.1 、为什么使用存储卷1.2 、 emptyDir 存储卷的作用1.3、示例二、hostPath卷2.1、 作用2.2、示例三、nfs共享存储3.1、安装配置nfs服务3.2、master节点上操作 一、 emptyDir 存储卷 1.1 、为什么使用存储卷 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时, kubelet会重启它,但是容器中的文件将丢失

weixin_51431591的博客 617

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

K8S存储之emptyDir、hostPath、NFS

emptyDir #定义yaml文件,创建容器 [root@k8s-master-01 volumeTest]# cat podEmptyDir.yaml apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: www04 name: www04 spec: volumes: - name: v1 #定义的volume的名字 emptyDir: {} #随机定义宿主机中的挂载目录

qq_39124041的博客 533

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

kubenetes从入门到上天系列第十四篇:Kubernetes的持久化存储

在 k8s 中部署的应用都是以 pod 容器的形式运行的,假如我们部署 MySQL、Redis 等数据库,需要对这些数据库产生的数据做备份。因为 Pod 是有生命周期的,如果 pod 不挂载数据卷,那 pod 被删除或重启后这些数据会随之消失,如果想要长久的保留这些数据就要用到 pod 数据持久化存储。

七叔的博客 286

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Kubernetes存储卷管理

emptyDir 随 Pod 创建而创建,Pod 在该节点上运行期间,一直存在。当 Pod 被从节点上删除时,临时卷中的数据也会被永久删除。测试:在 Pod 中增加 php 容器,与 nginx 共享同一块网卡,实现配置文件与镜像分离。注意事项 : 配置相同的Pod,可能在不同的节点上表现不同,因为不同节点上映射的文件内容不同。测试:在容器初始化之前,收集初始化信息 ,在初始化完成后交给主容器。重启 Pod 中的容器不会造成 emptyDir 数据的丢失。测试:访问需要认证登录的私有镜像仓库,

weixin_55702707的博客 685

k8s 持久化存储

我们继续来查看 k8s 的卷,上一次我们分享了将磁盘挂载到容器中,empyDir 和 gitRepo 都是会随着 pod 的启动而创建,随着 pod 的删除而销毁那么我们或许会有这样的需求,期望在 pod 上面读取节点的文件或者使用节点的文件系统来访问节点的设备。

m0_37322399的博客 827

K8S持久化存储:NFS+StorageClass实现动态供给

快速创建NFS类型的StorageClass,并验证该StorageClass正常可用 参考: k8s学习笔记之StorageClass+NFS Ubuntu 下搭建 NFS 服务 K8S中的持久化存储: K8s 中又引入了 Persistent Volumes 概念,它可以将存储和计算分离,通过不同的组件来管理存储资源和计算资源,然后解耦 pod 和 Volume 之间生命周期的关联。这样,当把 pod 删除之后,它使用的PV仍然存在,还可以被新建的 pod 复用。 又分为静态供给(Static .

Working hard and Focus 7155

Kubernetes 持久化存储之 NFS 终极实战指南

作者:运维有术星主在 Kubernetes 生态系统中,持久化存储扮演着至关重要的角色,它是支撑应用稳定运行的基石。对于那些选择自建 Kubernetes 集群的运维架构师而言,选择合适的后端持久化存储解决方案是一项至关重要的选型决策。后端持久化存储常见的解决方案有 Ceph、GlusterFS、NFS、hostPath,以及这两年新兴起的 Longhorn。当然,技术领域日新月异,还有其他优秀的解决方案我尚未了解。

KubeSphere 1914

K8S的持久化存储

定义是 Kubernetes 的一种资源对象,用来定义如何为 Persistent Volume Claim (PVC) 动态创建和配置 Persistent Volume (PV)。包含的信息通常包括存储类型、参数、供应策略等。关键属性​​: 指定用于动态创建存储的插件或驱动程序。​parameters​: 包含配置所需的参数,如存储类型、区位信息等。​​: 定义当 PVC 删除后 PV 的回收策略(如Retain和Delete​​: 指定卷绑定时间,可以是Immediate(即时)或。

xiaogengtongxu的博客 2181

k8s 中存储之 NFS 卷

HostPath可以解决数据持久化的问题,但是一旦Node节点故障了,Pod如果转移到了别的节点,又会出现问题了,此时需要准备单独的网络存储系统,比较常用的用NFS、CIFS。NFS是一个网络文件存储系统,可以搭建一台NFS服务器,然后将Pod中的存储直接连接到NFS系统上,这样的话,无论Pod在节点上怎么转移,只要Node跟NFS的对接没问题,数据就可以成功访问。

weixin_68398469的博客 1720

K8S学习之基础二十三:k8s的持久化存储之nfs

​ 在 Kubernetes (k8s) 中使用 NFS(Network File System)作为存储解决方案是一种常见的方式,特别是在需要共享存储的场景中。

云上艺旅的博客 2339
上一篇: K8s: 控制器之Job对象
下一篇: K8s: PersistantVolume, PersistentVolumeClaim, Storage Class的相关概念与应用
Wang's Blog
博客等级 码龄12年 7438粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值