You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Helm部署GitLab至Kubernetes时PVC Pending问题求助

解决Helm部署GitLab时PVC持续Pending的问题

问题分析

从你提供的信息来看,核心矛盾很明确:你已经在values.yaml里指定了gluster-heketi作为存储类,但GitLab生成的PVC却仍然带着volume.alpha.kubernetes.io/storage-class: default的旧注解,而且PVC的StorageClass字段是空的。这就导致Kubernetes找不到对应存储类去绑定PV,最终抛出no persistent volumes available for this claim and no storage class is set的错误。

这种情况大概率是Helm GitLab chart的模板逻辑没正确读取你配置的存储类值,或者你的Kubernetes版本已经不再兼容旧的alpha存储类注解,转而使用标准的storageClassName字段了。

解决步骤

1. 先确认存储类本身没问题

第一步先排查存储类状态,确保gluster-heketi是正常可用的:

kubectl get storageclass

如果输出里能看到gluster-heketi且状态为Available,说明存储集群本身没问题,问题出在PVC的配置生成环节。

2. 修正values.yaml的存储类配置

很多旧版GitLab Helm chart会用volume.alpha.kubernetes.io/storage-class这个过时注解,而新版Kubernetes推荐直接用spec.storageClassName字段。你可以调整values.yaml,优先通过全局配置统一指定存储类,避免逐个组件配置遗漏:

## Storage Class Options
gitlabConfigStorageClass: gluster-heketi
gitlabDataStorageClass: gluster-heketi
gitlabRegistryStorageClass: gluster-heketi
postgresStorageClass: gluster-heketi
redisStorageClass: gluster-heketi
# 新增全局存储类配置,覆盖默认逻辑
global:
  storageClass: gluster-heketi

3. 清理现有无效的PVC

先把已经处于Pending状态的PVC删掉,避免后续部署复用旧配置:

kubectl delete pvc gitlab1-gitlab-data gitlab1-gitlab-etc gitlab1-postgresql gitlab1-redis

4. 重新部署GitLab

用修正后的配置重新部署Helm release:

# 如果是升级现有release
helm upgrade --install gitlab1 gitlab/gitlab -f values.yaml
# 如果是首次部署
helm install gitlab1 gitlab/gitlab -f values.yaml

5. 验证PVC绑定状态

部署完成后,再次查看PVC状态:

kubectl get pvc

正常情况下,这些PVC应该会快速绑定到GlusterFS提供的PV上,状态变为Bound。

额外排查点

如果还是不行,检查新生成的PVC YAML是否正确设置了storageClassName:

kubectl get pvc gitlab1-gitlab-data -o yaml

查看spec部分是否存在:

spec:
  storageClassName: gluster-heketi

如果仍然没有,可能需要手动修改chart的PVC模板,把旧的注解逻辑替换成标准字段。比如找到模板里类似这样的代码:

annotations:
  volume.alpha.kubernetes.io/storage-class: {{ .Values.gitlabDataStorageClass | default "default" }}

替换为:

storageClassName: {{ .Values.gitlabDataStorageClass | default "default" }}

重新打包chart后再部署即可。

内容的提问来源于stack exchange,提问作者Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:06:45