【问题标题】:K8s dynamic volume provisioning: claim.Spec.Selector is not supported for dynamic provisioning on AWSK8s 动态卷预置:AWS 上的动态预置不支持 claim.Spec.Selector
【发布时间】:2020-04-09 21:44:22
【问题描述】:

这是我的存储类配置

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "false"
  name: gp2
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
  fsType: ext4
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true

并且持久卷是使用 AWS ebs 创建的。

部署时持久卷声明失败并出现以下错误

ProvisioningFailed     persistentvolumeclaim/storage-fabric-orderer0   Failed to provision volume with StorageClass "gp2": claim.Spec.Selector is not supported for dynamic provisioning on AWS

provisioner 在我的集群中启动并运行

ebs-csi-controller-585596ff6f-2csq4       4/4     Running   0          16m
ebs-csi-controller-585596ff6f-pw9qt       4/4     Running   0          16m
ebs-csi-node-k85xf                        3/3     Running   0          16m

Pv 文件

apiVersion: v1
kind: PersistentVolume
metadata:
  name: ec1-default-ics-dev-alz-fabric-bc-pvol-storage-uk-bcpeer
  labels: {"app.kubernetes.io/component":"fabric-bc","app.kubernetes.io/id":"uk-bcpeer","app.kubernetes.io/name":"ec1-default-ics-dev-alz-fabric-bc-pvol-storage-uk-bcpeer","app.kubernetes.io/type":"storage","fabric/organization":"org1","fabric/organization-name":"uk","failure-domain.beta.kubernetes.io/region":"eu-central-1","failure-domain.beta.kubernetes.io/zone":"eu-central-1a","replica-index":"0"}
spec:
  capacity:
    storage: 20Gi
  accessModes: 
    - ReadWriteOnce
  storageClassName: gp2
  awsElasticBlockStore:
    volumeID: vol-0b0e325a942392d7f
    fsType: ext4

PV 声明

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: {{ list "storage" . | include "fabric-orderer.pvc" }}
  labels:
    {{ include "fabric-orderer.labels" . | nindent 4 }}
spec:
  selector:
    matchLabels:
      app.kubernetes.io/component: {{ .Values.dlt.component }}
      type: storage
      fabric/organization: {{ .Values.dlt.organization }}
      replica-index: {{ .Values.dlt.organizationIndex | print | toJson }}
  storageClassName: "gp2"
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: {{ .Values.persistentVolume.storageSize }}

【问题讨论】:

  • 添加 pv 和 pvc yaml
  • 已更新输入

标签: amazon-web-services kubernetes


【解决方案1】:

spec.selector 不应在 PVC yaml 中设置以在 AWS 中进行动态配置,因为它不受支持。您需要从 PVC yaml 中删除这部分。

spec:
  selector:
    matchLabels:
      app.kubernetes.io/component: {{ .Values.dlt.component }}
      type: storage
      fabric/organization: {{ .Values.dlt.organization }}
      replica-index: {{ .Values.dlt.organizationIndex | print | toJson }}

来自docs

注意:目前,具有非空选择器的 PVC 不能有 PV 为其动态配置。

【讨论】:

  • 那我是怎么匹配claimref的??
  • 将与 storageClassName 匹配
  • 如果存在多个光伏配置怎么办?
  • 好吧..这是限制,你需要相应地配置东西
猜你喜欢
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多