Как использовать класс хранения для StateFulSet? Нужно ли создавать ПВХ?

Как использовать класс хранилища для набора состояний? Я создал StorageClass. Я также создал PVC, но меня немного смущает необходимость создания PVC, поскольку PVC уже запрашивает хранилище, а volumeClaimTemplates также запрашивает хранилище. В любом случае он не работает с ПВХ или без него.

Я получаю следующую ошибку:

create Pod dbhost001-0 in StatefulSet dbhost001 failed error: failed to create PVC mysql-dev-dbhost001-0: PersistentVolumeClaim "mysql-dev-dbhost001-0" is invalid: spec.resources[storage]: Required value
create Claim mysql-dev-dbhost001-0 for Pod dbhost001-0 in StatefulSet dbhost001 failed error: PersistentVolumeClaim "mysql-dev-dbhost001-0" is invalid: spec.resources[storage]: Required value

storageClass.yml:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ebs-sc
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
reclaimPolicy: Retain
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer

Statefultset.yml:

apiVersion: apps/v1
kind: StatefulSet
....
....
  volumeClaimTemplates:
  - metadata:
      name: mysql-dev
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: ebs-sc
      resources:
        requests:
          stroage: 2Gi

Не уверен, нужен ли пвх? Я использовал это для обычного развертывания набора реплик. Но не уверен, нужно ли это Statefulset.

PersistentVolumeClaim.yml:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-dev
  namespace: test-db-dev
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ebs-sc
  resources:
    requests:
      storage: 2Gi

person John    schedule 08.12.2020    source источник


Ответы (1)


Догадаться.

Сначала была опечатка в Statefultset.yml, это должно быть storage вместо stroage.

Во-вторых, нет необходимости в PersistentVolumeClaim, поскольку volumeClaimTemplates - это то же самое, что заявляет класс хранилища.

person John    schedule 08.12.2020
comment
Также нет необходимости в StorageClass, так как вы можете использовать AWS по умолчанию - person Jonas; 08.12.2020