首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

K8S学习笔记之Kubernetes数据持久化方案

),但是如果Pod从Node上被删除(Pod被删除,或者Pod发生迁移),emptyDir也会被删除,并且永久丢失。...0x01 Hostpath Hostpath会把宿主机上的指定卷加载到容器之中,如果 Pod 发生跨主机的重建,其内容就难保证了。这种卷一般DaemonSet搭配使用。...4.3 使用PVPVC 在实际的使用中,我们通常会将各存储划分成PV,然后PVC绑定给pod使用。...静态提供:管理员手动创建多个PV,供PVC使用。 动态提供:动态创建PVC特定的PV,并绑定。 绑定:用户创建pvc并指定需要的资源访问模式。在找到可用pv之前,pvc会保持未绑定状态。...使用:用户可在pod中像使用volume一样使用pvc。 释放:用户删除pvc来回收存储资源,pv将变成“released”状态。

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

Kubernetes 学习(十)Kubernetes 容器持久化存储

PVC 要真正被容器使用起来,就必须先某个符合条件的 PV 通过两个条件进行绑定: 首先是 PV PVC 的 spec 字段,比如 PV 的存储(storage)大小,必须满足 PVC 的要求...其次是 PV PVC 的 storageClassName 字段必须一样 在成功地将 PVC PV 进行绑定之后,Pod 就能够像使用 hostPath 等常规类型的 Volume 一样,在自己的...YAML 文件里声明使用这个 PVC 了,如: Pod 可以在 volumes 字段里声明自己要使用PVC 名字 接下来,等这个 Pod 创建之后,kubelet 就会把这个 PVC 所对应的...比如:上面例子里的 type=pd-ssd,指的是这个 PV 的类型是“SSD 格式的 GCE 远程磁盘” 作为应用开发者,我们只需要在 PVC 里指定要使用的 StorageClass 名字即可,如:...PVC,并且看到它们声明的是同一个 StorageClass 所以,它会把这一对 PV PVC 绑定起来,使 PVC 进入 Bound 状态 然后,用户创建了一个声明使用上述 PVCPod,并且这个

58420

kubernetes-存储卷(十二)

当一个pod因为任何原因被移除的时候,这些数据会被永久删除。...,例web服务中的数据 默认的,emptyDir 磁盘会存储在主机所使用的媒介上,可能是SSD,或者网络硬盘,这主要取决于你的环境。...由此kubernetes提出了PVPVC的概念,这样开发人员使用者就不需要关注后端存储是什么,使用什么参数等问题。如下图: ?...PVC使用逻辑:在pod中定义一个存储卷(该存储卷类型为PVC),定义的时候直接指定大小,pvc必须对应的pv建立关系,pvc会根据定义去pv申请,而pv是由存储空间创建出来的。...主机中的控制回路监视新的PVC,找到匹配的PV(如果可能),并将 PVC PV 绑定在一起。 如果为新的PVC动态配置PV,则循环将始终将该PV绑定到PVC

1.3K20

k8s基础概念及术语

(4)如果磁盘损坏,则集群里的某个节点无法正常运行,集群功 能受损 如果使用RC或Deployment的话,就会发现第一点无法满足,因为其的Pod名称都是随机生成的,并且不固定,重启之后又是另外一个名、...(3) StatefulSet里的Pod采用稳定的持久化存储卷,通过PV或PVC来 实现,删除Pod时默认不会删除StatefulSet相关的存储卷(为了保证数 据的安全)。...volumes: - name: hostpath hostpath: path: "/path" (3)gcePersistentDisk 使用谷歌公有云提供的永久磁盘(Persistent...Disk,PD)存放Volume的数据,PD上的内容会永久保存,当Pod被删除时,PD只是被卸载(Unmount),不会被删除,需要先创建一个永久磁盘(PD),才能使用gcePersistentDisk...限制条件: Node需要GCE虚拟机 这些虚拟机需要与PD存在相同的GCE项目zone中。

1K40

介绍Kubernetes 1.14的本地持久卷GAUber的使用分享

为了更好地理解本地持久卷的优点,将其HostPath卷进行比较非常有用。HostPath卷将文件或目录从主机节点的文件系统挂载到Pod中。类似地,本地永久卷将本地磁盘或分区挂载到Pod中。...但是使用本地持久卷,Kubernetes调度程序可确保始终将使用本地永久卷的Pod安排到同一节点。...虽然HostPath卷可以通过持久卷声明(PVC)引用,也可以直接在pod定义中内联,但本地永久卷只能通过PVC引用。...本地永久卷相对于远程持久存储的主要好处是性能:远程存储系统相比,本地磁盘通常提供更高的IOPS吞吐量以及更低的延迟。...从这些临时状态恢复pod意味着必须删除将pod绑定到其本地卷的PVC,然后删除该pod以便重新安排它(或等到节点磁盘再次可用)。

1.2K20

PV PVC介绍

PersistentVolumeClaim (PVC) 是用户存储的请求。它与 Pod 相似。Pod 消耗节点资源,PVC 消耗 PV 资源。Pod 可以请求特定级别的资源(CPU 内存)。...声明可以请求特定的大小访问模式(例如,可以以读/写一次或 只读多次模式挂载)。 静态 pv ​集群管理员创建一些 PV。它们带有可供群集用户使用的实际存储的细节。...绑定 ​master 中的控制环路监视新的 PVC,寻找匹配的 PV(如果可能),并将它们绑定在一起。如果为新的 PVC 动态调配 PV,则该环路将始终将该 PV 绑定到 PVC。...二、持久化卷 ​持久化卷声明的保护 ​PVC 保护的目的是确保由 pod 正在使用PVC 不会从系统中移除,因为如果被移除的话可能会导致数据丢失 # 注意 :当 pod 状态为 “pending”...当启用PVC 保护 alpha 功能时,如果用户删除了一个 pod 正在使用PVC,则该 PVC 不会被立即删除。PVC 的删除将被推迟,直到 PVC 不再被任何 pod 使用

3.4K20

(译)Kubernetes 中对持久卷进行扩容

只有从 StorageClass 中创建的 PVC 才允许使用卷扩展: apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name:...网络挂载的文件系统,例如 Glusterfs Azure File,因为不需要进行文件系统扩展,因此可以在不重启 Pod 的情况下直接进行扩展。...可以通过删除重建 Pod 的方式进行重启,也可以通过对 Deployment 的伸缩来完成这一过程。 文件系统的扩展操作完成之后,PVC 会自动更新,设置为新的容量。...这个功能可以对一个正在被 Pod 使用的卷进行文件系统的扩展。这个功能还处于 Alpha 阶段,因此需要通过 Feature gate 启用 ExpandInUsePersistentVolumes。...目前支持的有 GCE-PD、AWS-EBS、Cinder 以及 Ceph RBD。当激活这个功能后,引用被扩展的卷的 Pod 无需重启。文件系统会随着卷扩展的步骤进行扩展。

2.1K20

Kubernetes-基于StorageClass的动态存储供应

(PV: PersistentVolume); 4)系统读取存储类的信息; 5)系统基于存储类的信息,在后台自动创建PVC需要的PV; 6)用户创建一个使用PVCPod; 7)Pod中的应用通过PVC...进行数据的持久化; 8)而PVC使用PV进行数据的最终持久化处理。...管理员创建存储类对象时,会设置类的名称其它的参数,存储类的对象一旦被创建,将不能被更新。管理员能够为PVC指定一个默认的存储类。...: slow provisioner: kubernetes.io/gce-pd parameters: type: pd-standard 下面创建了一个名为“fast”的存储类,其提供类似固态磁盘的存储卷磁盘...,此存储类将会自动创建符合要求的PV storageClassName: fast resources: requests: storage: 30Gi 此声明将使用类似于固态存储磁盘

2.1K30

Kubernetes-持久化存储卷PersistentVolume

PersistentVolumeClaim (PVC)是用户对存储的请求,类似于Pod消费Node资源,PVC消费PV资源。Pod能够请求特定的资源(CPU内存),声明请求特定的存储大小访问模式。...它们存在于Kubernetes API中,并可被Pod作为真实存储使用。在静态供应的情况下,由集群管理员预先创建PV,开发者创建PVCPodPod通过PVC使用PV提供的存储。...当PVC指定了选择器,并且指定了StorageClass,则在匹配PV时,取两者之间的:即仅仅同时满足存储类带有要求标签值的PV才能被匹配上。...4.3 PVC作为存储卷 Pod通过使用PVC来访问存储,而PVC必须使用它的Pod在同一个命名空间中。...Pod会同一个命名空间中选择一个合适的PVC,并使用PVC为其获取存储卷,并将PV挂接到主机Pod上。

1.8K30

深入玩转K8S之存储资源管理

本篇我们来看下K8S中的存储资源管理,说到K8S的存储资源管理分为几个概念:Vloume、PV、PVC等,本篇我们主要侧重于PVPVC。...Kubernetes Volume 实际上就是一个目录,这一点 Docker Volume 类似。当 Volume 被 mount 到 PodPod 中的所有容器都可以访问这个 Volume。... Volume 一样,PV 具有持久性,生命周期独立于 Pod。 PersistentVolumeClaim (PVC) 是对 PV 的申请 (Claim)。PVC 通常由普通用户创建和维护。...需要为 Pod 分配存储资源时,用户可以创建一个 PVC,指明存储资源的容量大小访问模式(比如只读)等信息,Kubernetes 会查找并提供满足条件的 PV。...接下来就可以在 Pod使用存储了,Pod 配置文件 pod1.yml 如下: ? kubectl apply -f pod1.yml ? 下面来验证下PV是否可用: ?

1.1K20

「首席看容器云架构」K8s 多区域部署

当前仅自动支持GCEAWS(尽管很容易通过简单地安排将适当的标签添加到节点卷来为其他云甚至裸机添加类似的支持)。 功能 启动节点后,kubelet会自动向其添加带有区域信息的标签。...如果需要,可以使用同质区域(相同数量类型的节点)来减少不等扩展的可能性。 创建永久卷后,PersistentVolumeLabel准入控制器会自动向其添加区域标签。...特别是,通过服务的流量可能会跨越区域(即使支持该服务的某些Pod客户端位于同一区域中),这可能会导致额外的延迟成本。...卷限制 使用拓扑感知的卷绑定解决了以下限制。 当前使用动态预配置时的StatefulSet卷区域扩展当前pod关联性或反关联性策略不兼容。...在Deployment或Pod规范中指定多个PVC时,需要为特定的单个区域配置StorageClass,或者需要在特定的区域中静态设置PV。

1.4K20

k8s之PV、PVC、StorageClass详解

Pod在引用PVC时同样受Namespace的限制,只有相同Namespace中的PVC才能挂载到Pod内。 当SelectorClass都进行了设置时,系统将选择两个条件同时满足的PV之匹配。...(2)资源绑定 在定义好PVC之后,系统将根据PVC对存储资源的要求(存储空间访问模式)在已存在的PV中选择一个满足PVC要求的PV,一旦找到,就将该PV定义的PVC进行绑定,应用就可以使用这个PVC...只有PV的存储空间完成回收,才能供新的PVC绑定使用。 通过两张图分别对在静态资源供应模式动态资源供应模式下,PV、PVC、StorageClass及Pod使用PVC的原理进行说明。...在静态资源供应模式下,通过PVPVC完成绑定,并供Pod使用的存储管理机制 ?...在动态资源供应模式下,通过StorageClassPVC完成资源动态绑定(系统自动生成PV),并供Pod使用的存储管理机制 ?

12.4K22

Kubernetes-存储卷Volume

Kubernetes的存储卷有自己的生命周期,它的生命周期使用的它Pod生命周期一致。因此,相比于在Pod中运行的容器来说,存储卷的存在时间会比的其中的任何容器都长,并且在容器重新启动时会保留数据。...当然,当Pod停止存在时,存储卷也将不再存在。在Kubernetes支持多种类型的卷,而Pod可以同时使用各种类型任意数量的存储卷。...DirectoryOrCreate 如果path指定目录不存在,则会在宿主机上创建一个新的目录,并设置目录权限为0755,此目录kubelet拥有一样的组拥有者。...Directory path指定的目标必需存在 FileOrCreate 如果path指定的文件不存在,则会在宿主机上创建一个空的文件,设置权限为0644,此文件kubelet拥有一样的组拥有者。...上的永久磁盘到容器,需要 Kubernetes 运行在 GCE 的 VM 中。

4.8K40

043.集群存储-共享存储

PV由管理员创建和配置,它与共享存储的具体实现直接相关,例如GlusterFS、iSCSI、RBD或GCE或AWS公有云提供的共享存储,通过插件式的机制完成与共享存储的对接,以供应用访问使用。...Pod在引用PVC时同样受Namespace的限制,只有相同Namespace中的PVC才能挂载到Pod内。当SelectorClass都进行了设置时,系统将选择两个条件同时满足的PV之匹配。...4.4 资源绑定 在用户定义好PVC之后,系统将根据PVC对存储资源的请求(存储空间访问模式)在已存在的PV中选择一个满足PVC要求的PV,一旦找到,就将该PV用户定义的PVC进行绑定,用户的Pod...4.5 资源使用 Pod使用Volume的定义,将PVC挂载到容器内的某个路径进行使用。Volume的类型为persistentVolumeClaim。...只有PV的存储空间完成回收,才能供新的PVC绑定使用。 静态资源供应模式下,PV、PVC、StorageClass及Pod使用PVC的原理释义说明: ?

2.8K30

Running Solr on Kubernetes

又由于该信息也存储在磁盘上,它将如何知道需要复制哪些cores? 对于使用一个replication因子的集合,情况将更加糟糕,因为没有其他副本可以之同步。 这个问题并非Solr独有。...还有数据存储类应用,它的多个实例,往往会在本地磁盘存一份数据,而这些实例一旦被杀掉,即使从建起来,实例数据之间关系也会丢失,而这些实例有不对等的关系,实例外部存储有依赖的关系的应用,被称作“有状态应用...容器在/opt/solr/server/home看到的永久卷(solr-pvc)相同。...概括地说,Solr StatefulSet已根据集合名称副本序号为集群中的每个节点分配了主机名,例如solr-0,solr-1等,并为每个pod分配了20G永久volume在/opt/solr/server...重要的是,Kube在使用相同的n1-standard-4实例类型的GCE中具有基于VM的性能相当的性能。 在下一篇文章中,我们将在启用Solr复制的情况下在更大的集合上运行更长的性能负载测试。

6.2K00

(三)Kubernetes存储核心原理

volume设计解读 在Kubernetes中,volume的使用方式类似于虚拟机的磁盘,需要给pod(即一个逻辑上的虚拟机)挂一个磁盘,然后该pod里的进程(容器)才能通过volumeMounts的方式使用挂载磁盘...pvc(PersistentVolumeClaim)是用户对于某存储资源的请求,它充当了podpv之间的“中介”。...之后,Kubernetes会在创建pod时根据pvc的需求,将之可选的pv匹配,匹配成功后pod就可以使用pv所代表的volume资源。...用户使用pvcpv的流程一般包含如下几个阶段: pv创建阶段:在这个阶段中,集群的管理员可以通过Kubernetes所提供的API提前创建好多种规格的pv资源,将来供pod使用。...pod使用pvc阶段:当Kubernetes启动pod时,可以通过pod使用pvc中所持有的pv信息,找到对应的pv并挂载到pod中。

1.2K20
领券