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

能否为Bitnami/etcd配置自定义AWS EFS类型PV/PVC?

问题原因及解决步骤

核心问题

你的配置存在两个关键错误,导致PVC无法匹配到EFS类型的PV:

  1. PV标签不匹配:你用name作为selector的匹配键,但PV的metadata.name是资源名称,并非标签字段,PVC的selector无法通过这个字段匹配到目标PV。
  2. 存储类配置冲突:你的PV指定了storageClassName: "gp3"(这是AWS EBS的存储类),而PVC配置storageClass: ""时,会自动绑定集群默认存储类(大概率是EBS的gp3),因此会调用EBS的CSI驱动创建存储。

解决步骤

1. 修正EFS PV的配置

更新PV配置,添加用于匹配的标签,并修正存储类设置(建议设为空,避免和EBS存储类混淆):

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: some-test-pv
  labels:
    pv-name: some-test-pv  # 添加专属标签,供PVC selector匹配
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce  # EFS也支持ReadWriteMany,单节点etcd用RWO即可
  storageClassName: ""  # 设为空,标记为无存储类PV
  persistentVolumeReclaimPolicy: Retain
  csi:
    driver: efs.csi.aws.com
    volumeHandle: fs-[ID which I got from AWS console]

应用更新:

kubectl apply -f your-pv-file.yaml

2. 修正Helm values.yaml的PVC配置

调整selector匹配PV的标签,同时保持存储类配置一致:

persistence:
  enabled: true
  storageClass: ""  # 和PV的storageClassName保持一致
  annotations: {}
  accessModes:
    - ReadWriteOnce
  size: 1Gi
  selector:
    matchLabels:  # 用matchLabels匹配PV的标签,更简洁直接
      pv-name: some-test-pv

3. 重新部署etcd Helm chart

执行Helm命令重新安装或升级:

helm upgrade --install etcd bitnami/etcd -f your-values.yaml

额外说明

  • EFS本身支持ReadWriteMany访问模式,如果你的etcd是多节点集群,建议将PV和PVC的accessModes改为ReadWriteMany,更契合EFS的共享存储特性。
  • 若需要使用EFS专属存储类,可提前创建:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: efs-sc
provisioner: efs.csi.aws.com
parameters:
  provisioningMode: efs-ap
  fileSystemId: fs-[你的EFS ID]
  directoryPerms: "700"
mountOptions:
  - tls

创建完成后,将PV和PVC的storageClassName都设为efs-sc即可。

内容的提问来源于stack exchange,提问作者prosto.vint

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:17:37