首页 > 其他分享 >在K8S中,PVC创建和挂载失败原因有哪些?

在K8S中,PVC创建和挂载失败原因有哪些?

时间:2024-02-04 09:11:36浏览次数:36  
标签:PV Kubernetes 创建 PVC 失败 挂载 K8S

在Kubernetes (K8S) 中,Persistent Volume Claim (PVC) 创建和挂载失败的原因可能有多种。以下是可能导致 PVC 创建或挂载失败的常见原因:

  1. 存储资源不足

    • 如果集群中的可用存储资源(PersistentVolume)不足以满足 PVC 的请求容量或者访问模式(例如 ReadWriteOnce、ReadOnlyMany 或 ReadWriteMany),PVC 将无法绑定到合适的 PV。
  2. PV 和 PVC 不匹配

    • PVC 中的参数(如存储类、访问模式、存储容量等)与现有的 PersistentVolume 不匹配,导致 Kubernetes 无法自动将它们绑定在一起。
  3. 存储类配置问题

    • PVC 指定了一个不存在或者未正确配置的 StorageClass,这会导致 Kubernetes 无法动态地创建相应的 PV 来满足 PVC 的需求。
  4. 配额限制

    • 集群对特定命名空间设置了存储配额,而 PVC 超过了该命名空间允许的最大存储量。
  5. 权限问题

    • 用户或服务账户没有足够的权限来创建或使用指定的存储资源。
  6. 云服务商问题

    • 当使用云托管的 Kubernetes 时,如果云提供商的相关服务出现故障或者资源配置出现问题(比如磁盘库存不足、网络问题等),也可能导致 PVC 创建失败。
  7. 动态卷供应器故障

    • 当使用动态卷供应功能时,对应的动态卷供应器可能出现故障,无法按需创建 PV。
  8. PVC 状态错误

    • PVC 可能由于先前的操作未能成功清理,处于“Pending”、“Lost”或其他非正常状态,从而无法被重新绑定或创建新的 PV。
  9. API 调用失败

    • 在执行 PVC 相关操作时,若与 Kubernetes API Server 的通信有问题,也可能导致 PVC 创建失败。
  10. CephFS 或其他网络存储系统故障

    • 如果使用的是 CephFS、NFS、GlusterFS 等网络文件系统作为后端存储,并且这些系统的配置或连接存在问题,PVC 创建和挂载也会失败。
  11. PVC一直Pending的原因:
    • PVC的空间申请大小大于PV的大小。
    • PVC的StorageClassName没有和PVStorageClassName(storage class name)的一致。
    • PVC的accessModes(访问模式)和PVaccessModes(访问模式)的不一致。
  12. 挂载PVC的Pod一直处于Pending:
    • PVC没有创建成功/PVC不存在
    • PVC和Pod不在同一个Namespace

综上所述,针对以上情况,通常需要检查 PVC、PV、StorageClass、Namespace 配置以及相关的日志和事件信息,以便找到具体失败的原因并进行修复。

标签:PV,Kubernetes,创建,PVC,失败,挂载,K8S
From: https://www.cnblogs.com/huangjiabobk/p/18005567

相关文章

  • Rancher管理K8S集群
    Rancher是一个Kubernetes管理工具,让你能在任何地方和任何提供商上部署和运行集群。Rancher可以创建来自Kubernetes托管服务提供商的集群,创建节点并安装Kubernetes,或者导入在任何地方运行的现有Kubernetes集群。Rancher基于Kubernetes添加了新的功能,包括统一所有集群的......
  • 在K8S中,Pod网络访问与Docker容器端口映射有何不同?
    在Kubernetes和Docker原生端口映射之间,主要区别在于:1.Docker原生端口映射:Docker容器在启动时可以通过-p参数指定宿主机端口到容器内部端口的映射,例如:dockerrun-p8080:80nginx,这意味着外部通过宿主机的8080端口可以访问到容器内运行的nginx服务的80端口。Docker使用NAT技......
  • 在K8S中,发布应用流程是什么?
    在Kubernetes(简称K8s)中发布应用的基本流程通常包括以下几个步骤:编写YAML或JSON配置文件:创建一个或多个YAML文件,例如deployment.yaml、service.yaml等,来定义应用所需的资源对象。对于部署一个Tomcat应用,你可能需要定义Deployment资源,指定容器镜像、端口映射、副本数量等属......
  • 在k8s中,有哪些存储?
    在Kubernetes(简称K8s)中,有多种内置和外部的存储解决方案,它们可以满足不同场景下的持久化存储需求。以下是一些常见的存储类型:PersistentVolume(PV):PersistentVolume是集群管理员创建并提供的存储资源,它具有一定的容量和访问模式。PersistentVolumeClaim(PVC):用户通......
  • 在K8S中,内置的污点主要有哪些?
    在Kubernetes(K8S)中,内置的污点(Taints)主要用于自动化的节点亲和性和反亲和性管理。当集群中的节点出现某种问题或满足特定条件时,kubelet会自动给这些节点添加内置污点。以下是一些常见的内置污点:node.kubernetes.io/not-ready:当节点尚未通过健康检查,即节点尚处于未就绪状态时,k......
  • 在K8s中,提供的DNS组件是什么?有什么特性?
    在Kubernetes(K8s)集群中,用于内部DNS服务的组件已经从早期的kube-dns过渡到了coredns。kube-dns(已弃用):在Kubernetes1.10版本之前,kube-dns是默认的集群内部DNS解决方案。它包含以下组件:etcd:存储DNS记录。kube2sky:在较早的版本中用于将Kubernetes服务转换为DNS记录,但在kube......
  • 新主机加入k8s 1.24.4集群
    配置静态IP[root@localhost~]#cat/etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR......
  • K8S-污点和容忍
    一、污点(Taint)污点是用来配置节点亲和性的,是Pod的一种属性(偏好),它使Pod被吸引到某一类特点的节点,也就是说我想让Pod被调度到指定的节点应用场景:把Nginx服务调度到Node1节点,Tomcat服务调度到Node2节点,其它服务在没有配置容忍的情况下,不会被调度到Node1和Node2具体方法:1、在Node1......
  • k8s 怎么手动拉取docker镜像
    在Kubernetes中,要手动拉取Docker镜像,您可以按照以下步骤进行操作:找到所需的Docker镜像:在DockerHub(https://hub.docker.com/)或其他Docker镜像仓库中找到所需的镜像。在与Kubernetes集群连接的机器上打开终端或命令行界面。运行以下命令来手动拉取Docker镜像:dockerpull<镜像名称>:......
  • 在K8S中,calico工作原理与网络模式是什么?
    在Kubernetes(简称K8S)中,Calico是一个强大的网络和网络策略解决方案。它的工作原理与网络模式主要包括以下内容:工作原理:节点配置:Calico在每个Kubernetes节点上安装并运行一个名为Felix的守护进程。Felix监听etcd中存储的网络策略和配置信息,并根据这些信息更新本地网......