无法创建 GlusterFS PersistentVolumeClaim
无法创建 GlusterFS PersistentVolumeClaim (PVC)。
原因
PVC 名称太长。 如果 PVC 服务端点的名称长度超过 63 个字符,就无法绑定它。 当 GlusterFS 创建服务端点名称时,会将 glusterfs-dynamic 添加到 PVC 名称,这些增加的字符可能导致 PVC 名称超出限制。
例如,当您使用 volumeClaimTemplates 在 StatefulSet 中创建 PVC 时,创建的 PVC 会自动命名为 <pvc name>-<statefulset name>-<ordinal>。 例如,如果 PVC 和 StatefulSet 的名称都是 default-mq-stocktrader-m,那么新的 PVC 可能名为 default-mq-stocktrader-m-default-mq-stocktrader-m-0。
如果使用 GlusterFS 创建此 PVC,系统会将 glusterfs-dynamic- 前缀添加到 PVC 名称以创建服务端点。 服务端点名称 glusterfs-dynamic-default-mq-stocktrader-m-default-mq-stocktrader-m-0 超过了 63 个字符,于是 PVC 绑定失败。
当您创建 PVC 时,可能会看到 Status: Pending。 您还会在命令输出的 Events: 部分中看到类似于下列消息的消息。
Service "glusterfs-dynamic-default-mq-stocktrader-m-default-mq-stocktrader-m-0" is invalid: \
metadata.name: Invalid value: \
"glusterfs-dynamic-default-mq-stocktrader-m-default-mq-stocktrader-m-0": \
must be no more than 63 characters
解决问题
如果您使用 GlusterFS,请将 PVC 名称限制在 45 个字符以内。 如果在 StatefulSet 中使用 volumeClaimTemplates,请对 StatefulSet 名称和 PVC 名称都使用短名称。
如果 PVC 绑定失败,请缩短 StatefulSet 名称或 PVC 名称的长度,使 GlusterFS 服务端点名称 glusterfs-dynamic-<pvc name>-<statefulset name>-<ordinal> 的总长度不超过 63 个字符。
有关此问题的更多信息,请参阅 Kubernetes 社区中的 GlusterFS 创建 PVC 失败 问题。