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

在Ubuntu服务器K8s部署Milvus集群遇PVC未绑定问题求助

解决Milvus集群部署中etcd的PVC绑定失败问题

问题现象

在Ubuntu服务器上通过Helm使用Milvus官方仓库部署集群,配置etcd参数后出现Pod启动失败,错误为:Pod存在未绑定的即时PersistentVolumeClaims;查看PVC时提示:

no persistent volumes available for this claim and no storage class is set

用户提供的etcd配置片段:

etcd:
  enabled: true
  name: etcd
  replicaCount: 3
  pdb:
    create: false
  image:
    repository: "milvusdb/etcd"
    tag: "3.5.0-r7"
    pullPolicy: IfNotPresent
service:
  type: ClusterIP
  port: 2379
  peerPort: 2380
auth:
  rbac:
    enabled: false
persistence:
  enabled: true
  storageClass:
    accessMode: ReadWriteOnce
    size: 10Gi
# Enable auto compaction
# compaction by every 1000 revision
autoCompactionMode: revision
autoCompactionRetention: "1000"
# Increase default quota to 4G
extraEnvVars:
  - name: ETCD_QUOTA_BACKEND_BYTES
    value: "4294967296"
  - name: ETCD_HEARTBEAT_INTERVAL
    value: "500"
  - name: ETCD_ELECTION_TIMEOUT
    value: "2500"

原因分析

从配置可以看到,persistence.storageClass字段仅定义了accessMode和size,但未指定具体的存储类名称;同时你的Kubernetes集群中没有设置默认存储类,导致PVC无法自动匹配可用的PersistentVolume(PV)。

解决方案

1. 指定集群中已存在的存储类

  • 先查看集群内可用的存储类:
    kubectl get storageclasses
    
  • 修改etcd的persistence配置,添加存储类名称(替换为实际存在的存储类名):
    persistence:
      enabled: true
      storageClass: "your-storageclass-name"  # 替换为查询到的存储类名称
      accessMode: ReadWriteOnce
      size: 10Gi
    
  • 重新执行Helm部署:
    helm upgrade milvus milvus/milvus -f your-values.yaml
    

2. 创建默认存储类(无可用存储类时)

如果集群中没有现成的存储类,可以创建一个默认存储类,示例以本地存储为例(仅适合单节点测试环境,生产建议使用分布式存储方案):

  • 创建存储类配置文件local-storageclass.yaml:
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: local-storage
      annotations:
        storageclass.kubernetes.io/is-default-class: "true"
    provisioner: kubernetes.io/no-provisioner
    volumeBindingMode: WaitForFirstConsumer
    
  • 应用配置到集群:
    kubectl apply -f local-storageclass.yaml
    
  • 重新部署Milvus,PVC会自动绑定到匹配的PV。

3. 临时禁用持久化(仅用于测试)

如果只是临时测试集群功能,可暂时关闭etcd的持久化(重启Pod后数据会丢失):

  • 修改etcd的persistence配置:
    persistence:
      enabled: false
    
  • 重新部署Milvus即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:35:13