Kubernetes中Gluster Heketi存储类与PVC配置异常求助
问题:Kubernetes中GlusterFS动态存储配置失败,PVC持续Pending
问题现象
配置GlusterFS+Heketi动态存储后,PersistentVolumeClaim(PVC)始终处于Pending状态,关联Pod报错:
0/5 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/5 nodes are available: 5 No preemption victims found for incoming pod..
配置文件
glusterfs-sc.yaml
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: gluster-heketi provisioner: kubernetes.io/glusterfs reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true parameters: resturl: "http://server_ip:8080" restuser: "admin" restuserkey: "key" volumetype: "replicate:3" volumenameprefix: "vol" clusterid: "cluster_id"
glusterfs-pvc.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gluster-pvc spec: storageClassName: gluster-heketi accessModes: - ReadWriteMany resources: requests: storage: 1Gi
pod.yaml
apiVersion: v1 kind: Pod metadata: name: gluster-pod labels: name: gluster-pod spec: containers: - name: gluster-pod image: busybox command: ["sleep", "60000"] volumeMounts: - name: gluster-vol mountPath: /usr/share/busybox readOnly: false volumes: - name: gluster-vol persistentVolumeClaim: claimName: gluster-pvc
排查与解决步骤
- 验证Heketi服务可用性
在集群任意节点执行curl http://server_ip:8080/hello,确认服务正常响应;再用管理员账号测试权限:curl -u admin:key http://server_ip:8080/clusters,确保能返回集群信息,检查restuserkey是否正确。 - 检查GlusterFS集群资源
确认集群至少有3个可用节点(满足replicate:3副本要求),且节点有足够空闲磁盘。通过heketi-cli cluster info cluster_id查看集群节点、设备的在线状态。 - 核对StorageClass参数
确认clusterid与实际GlusterFS集群ID一致;若节点数量不足3个,需调整volumetype的副本数(如改为replicate:2)或添加节点。 - 查看事件日志定位具体错误
执行kubectl describe pvc gluster-pvc,查看PVC事件中的详细报错(如Heketi调用失败、权限问题等);执行kubectl describe storageclass gluster-heketi确认存储类配置无语法错误。 - 节点环境检查
确保所有K8s节点已安装glusterfs-client包,且节点能访问GlusterFS集群的端口(默认24007、24008及49152-49251区间)。
内容的提问来源于stack exchange,提问作者Stepan Kutaj
相关产品推荐
相关产品推荐

