首页 > 其他分享 >在K8S中,什么是PV和PVC?

在K8S中,什么是PV和PVC?

时间:2024-08-08 17:40:07浏览次数:13  
标签:存储 PV 绑定 PVC 存储资源 Pod K8S

在Kubernetes(K8S)中,PV(PersistentVolume)和PVC(PersistentVolumeClaim)是两个核心概念,用于实现数据的持久化存储。它们之间的关系是一种动态匹配和绑定关系,用于实现Pod与存储资源的解耦。以下是对PV和PVC的详细解释:

1. PV(PersistentVolume)

定义
PV是Kubernetes集群中的一块网络存储,它独立于Pod存在。PV可以被视为集群级别的资源,用于存储Pod产生的数据。PV可以是各种存储系统,如云提供商的存储、NFS、iSCSI、本地存储等。

特点

  • 静态创建:通常由集群管理员手动创建并配置其属性,如容量、访问模式(ReadWriteOnce、ReadOnlyMany、ReadWriteMany)、存储类别等。
  • 生命周期:PV有自己的生命周期,包括可用(Available)、绑定(Bound)、释放(Released)、回收(Retained)等状态。
  • 存储抽象:PV是对存储资源的抽象,使得用户无需关心具体的存储实现细节。

用途
提供稳定的存储资源给Pod使用,确保Pod即使在被重新调度或删除后,其数据也能保持不变。

2. PVC(PersistentVolumeClaim)

定义
PVC是Kubernetes中的持久化存储卷声明,是用户对存储的请求。PVC可以指定所需的存储容量、访问模式以及所需的PV的属性,如存储类、访问模式和标签等。

特点

  • 动态绑定:当Pod需要使用持久化存储时,可以通过PVC来请求PV。K8S会自动将PVC与合适的PV进行绑定。
  • 灵活性:PVC使得用户无需关心具体的PV细节,只需声明对存储资源的需求即可。
  • 按需分配:通过PVC,可以实现存储资源的按需分配,提高资源利用率。

用途
定义Pod对存储资源的需求,确保Pod能够获取到所需的持久存储资源。

3. PV与PVC的关系
  • 动态匹配与绑定:PVC声明了对持久卷的需求,而PV则提供了实际的存储资源。K8S会自动将PVC与合适的PV进行匹配和绑定。
  • 解耦:PV和PVC的设计实现了Pod与存储资源的解耦,使得Pod可以独立于存储资源的变化而运行。
  • 生命周期管理:PV和PVC的生命周期管理由K8S负责,包括资源的创建、绑定、使用和回收等阶段。

综上所述,PV和PVC是Kubernetes中实现数据持久化存储的核心组件。它们通过动态匹配和绑定的方式,实现了Pod与存储资源的解耦和按需分配,从而提高了资源利用率和系统的稳定性、可靠性。

标签:存储,PV,绑定,PVC,存储资源,Pod,K8S
From: https://www.cnblogs.com/huangjiabobk/p/18349396

相关文章

  • 在K8S中,是怎么实现数据持久化的?
    在K8S中,数据持久化主要通过PersistentVolumes(PV)、PersistentVolumeClaims(PVC)和StorageClass等组件实现。以下是K8S如何实现数据持久化的详细解释:PersistentVolumes(PV):PV是集群级别的资源,代表一段预先配置的存储空间,独立于Pod的生命周期存在。PV的存在确保了数据的持......
  • 在K8S中,DaemonSet类型的资源特性有哪些?
    在Kubernetes(K8S)中,DaemonSet是一种控制器资源对象,它具有一系列独特的资源特性,这些特性使得DaemonSet特别适用于在集群的每个节点上运行守护进程或服务。以下是DaemonSet类型资源特性的详细阐述:1.确保每个节点上运行Pod副本节点级部署:DaemonSet确保集群中的每个节点(或满足特定......
  • ipv4与ipv6的联系与区别
    原文链接:https://www.cnblogs.com/dagegedegege/p/16724664.htmlhttps://www.cnblogs.com/qtqbky/p/16728967.html 联系:(1)IP协议是互联网最重要的通信协议之一,目前的IP协议具备IPv4和IPv6两个版本(2)随着互联网的进一步发展,全球IPv4地址已于2019年11月已全数耗尽。IPv6是由IEIF......
  • k8s集群访问外部域名不稳定
    pod网络模式为default时,可以访问外部域名,网络模式为clusterfirst时可以访问集群中域名,但是访问公司内网域名时时通时不通,有时不能完全解析。处理方法:在coredns的cm中,需要添加forward./etc/resolv.conf{max_concurrent1000policysequential......
  • 基于K8S部署安装Jenkins
    基于K8S部署安装Jenkins1.JenkinsKubernetes清单文件2.KubernetesJenkins部署1:为Jenkins创建Namespace。最好将所有DevOps工具分类为与其他应用程序分开的命名空间。2:创建“serviceAccount.yaml”文件并复制以下管理员服务帐户清单。1.kubectl创建服务帐户。3......
  • 【Kubernetes】k8s集群资源调度
    目录一.k8s的List-Watch机制二.scheduler的调度过程三.指定节点调度Pod1.通过nodeName调度Pod2.通过节点标签选择器调度Pod3.通过亲和性调度Pod3.1.节点亲和性硬策略软策略当软、硬策略同时存在3.2.Pod亲和性Pod亲和性(podAffinity)Pod反亲和性(podAntiAffinity)......
  • yapi 部署k8s
    apiVersion:v1kind:Namespacemetadata:name:yapi-ns---apiVersion:v1kind:Servicemetadata:name:mongonamespace:yapi-nslabels:app:mongospec:ports:-port:27017targetPort:27017name:mongoselector:app:......
  • k8s学习笔记之CoreDNS
    一、CoreDNSconfigMap配置参数及说明主要讲解CoreDNSconfigMap及其他关键配置部署文件(需要替换其中一些变量):https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/coredns/coredns.yaml.base1.configMap配置apiVersion:v1kind:ConfigMapmetadat......
  • K8S云原生-高可用集群部署V1.28.2
    一、环境准备K8S集群角色IP主机名安装相关组件master10.1.16.160hqiotmaster07lapiserver、controller-manager、scheduler、kubelet、etcd、docker、kube-proxy、keepalived、nginx、calicomaster10.1.16.161hqiotmaster08lapiserver、controller-manager、sc......
  • 在K8S中,Deployment的升级过程是什么?
    在Kubernetes中,Deployment提供了一种非常强大的方式来更新应用,同时保持应用的可用性。以下是使用Deployment进行应用升级的过程,包括滚动更新、回滚、暂停和恢复更新等操作。1.升级过程准备工作:确保你有一个现有的Deployment。准备新的容器镜像或者其他需要更改的配置......