Kubernetes динамический PV с AWS в ожидании
Я создаю redis-кластер на кубе с постоянным томом aws-gp2. Я использовал Redis-cluster.yml
Я создал класс хранения в соответствии с этим документом, для динамического создания тома персистентности
Это моё определение Storage Class
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: aws-gp2
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
zones: us-west-2a, us-west-2b, us-west-2c
fsType: ext4
reclaimPolicy: Retain
allowVolumeExpansion: true
Когда я пытаюсь создать кластер том создания застрял на pending
состояние, после проверки логов нашел это
$ kubectl -n staging describe pvc data-redis-cluster-0
Name: data-redis-cluster-0
Namespace: staging
StorageClass:
Status: Pending
Volume:
Labels: app=redis-cluster
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 13s (x11 over 2m) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
и события
$ kubectl -n staging get events
LAST SEEN FIRST SEEN COUNT NAME KIND SUBOBJECT TYPE REASON SOURCE MESSAGE
10s 10s 1 redis-cluster.15816c6dc1d6c03a StatefulSet Normal SuccessfulCreate statefulset-controller create Claim data-redis-cluster-0 Pod redis-cluster-0 in StatefulSet redis-cluster success
10s 10s 1 redis-cluster.15816c6dc2226fe0 StatefulSet Normal SuccessfulCreate statefulset-controller create Pod redis-cluster-0 in StatefulSet redis-cluster successful
8s 10s 3 data-redis-cluster-0.15816c6dc1dfd0cb PersistentVolumeClaim Normal FailedBinding persistentvolume-controller no persistent volumes available for this claim and no storage class is set
3s 10s 5 redis-cluster-0.15816c6dc229258d Pod Warning FailedScheduling default-scheduler pod has unbound PersistentVolumeClaims (repeated 4 times)
кто-то укажет что тут не так?
1 ответ
Поскольку кластер не имеет значения по умолчанию StorageClass
Я должен был добавить storageClassName: aws-gp2
в volumeClaimTemplates
, который помог мне решить эту проблему
как это
volumeClaimTemplates:
- metadata:
namespace: staging
name: data
labels:
name: redis-cluster
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: aws-gp2
resources:
requests:
storage: 100Mi