PVC 绑定但未被 GKE 上的 pods 找到

PVC bound but not found by pods on GKE

我将 GKE 机器升级到更大的新机器。所有应用程序看起来都很好,直到一个 pod 仍处于 pending 状态。在警戒线和排水管设置为旧 pods 后,我的 prometheus pod 仍在等待中。

在 pod describe 上显示

我已经重新创建部署和 PVC,但结果还是一样。在 PVC 上显示..

描述上说是prometheus部署使用的PVC。事实上,部署仍处于挂起状态。如何解决这个问题?任何建议将不胜感激

PVC 的待定状态可能意味着您没有对应的 PV。如果您使用 PersistentVolumeClaim,您通常需要一个用于动态卷配置的卷配置器

除非你用 dynamic volume provisioning 配置你的集群,否则你每次都必须手动制作 PV。

您必须定义一个 PersistentVolume 提供磁盘 space 以供 PersistentVolumeClaim 使用。如果匹配的 PersistentVolume 不存在,PersistentVolumeClaims 将无限期保持未绑定状态。

当使用 storageClass 时,Kubernetes 将启用 “动态卷配置”,它不适用于本地文件系统。

动态卷配置允许创建存储卷on-demand。如果没有动态配置,集群管理员必须手动调用他们的云或存储提供商来创建新的存储卷,然后创建 PersistentVolume objects 以在 Kubernetes 中表示它们。

解决您的问题:

  • 提供满足声明约束的 PersistentVolume(大小 >= 100Mi)。
  • PersistentVolumeClaim 中删除 storageClass 或为其提供一个空值 ("")。
  • 从集群中删除 StorageClass

还要确保 PV 容量 >= PVC 容量然后 PVC 应该绑定到 PV。 PV 中的容量需要与声明中的容量相同,以解决未绑定的即时 PersistentVolumeClaims 问题。如果不是,那么我们将在 pod 级别收到未绑定的即时 PersistentVolumeClaims 错误,并且在描述 PVC 时没有卷插件匹配名称。

参考 Configure a Pod to Use a PersistentVolume for Storage which describes how to create a PersistentVolume with a hostPath and refer 了解更多关于 pod has unbound PersistentVolumeClaims 错误的信息。