DigitalOcean pod имеет несвязанные немедленные PersistentVolumeClaims - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь запустить кластер Redis в Kubernetes в DigitalOcean.В качестве документа я просто попытался запустить пример, который нашел в Интернете (https://github.com/sanderploegsma/redis-cluster/blob/master/redis-cluster.yml),, который способен соответствующим образом раскручивать модули при локальном запуске с использованием minikube.

Однако при запуске его в Digital Ocean,Я всегда получаю следующее сообщение об ошибке:

Предупреждение FailedScheduling 3s (x8 свыше 17 с) модуль планировщика по умолчанию имеет несвязанные немедленные PersistentVolumeClaims (повторяется 4 раза)

Учитывая, что яничего не меняя, я не уверен, почему это не будет работать. У кого-нибудь есть какие-либо предложения?

РЕДАКТИРОВАТЬ: некоторая дополнительная информация

$ kubectl describe pvc  
Name:          data-redis-cluster-0
Namespace:     default
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  3m19s (x3420 over 14h)  persistentvolume-controller  no persistent volumes available for this claim and no storage class is set
Mounted By:  <none>

РЕДАКТИРОВАТЬ: установка класса хранения по умолчанию частично разрешилапроблема! Однако узел теперь не может найти доступные тома для привязки:

kubectl описать pvc:

Name:          data-redis-cluster-0
Namespace:     default
StorageClass:  local-storage
Status:        Pending
Volume:        
Labels:        app=redis-cluster
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      
Access Modes:  
Events:
  Type       Reason                Age                     From                         Message
  ----       ------                ----                    ----                         -------
  Normal     WaitForFirstConsumer  12m (x9 over 13m)       persistentvolume-controller  waiting for first consumer to be created before binding
  Normal     WaitForFirstConsumer  3m19s (x26 over 9m34s)  persistentvolume-controller  waiting for first consumer to be created before binding

kubectl описать pod redis-cluster-0

....
Events:
  Type     Reason            Age                  From               Message
  ----     ------            ----                 ----               -------
  Warning  FailedScheduling  16m (x25 over 17m)   default-scheduler  0/5 nodes are available: 1 node(s) had taints that the pod didn't tolerate, 4 node(s) didn't find available persistent volumes to bind.

kubectl description sc

Name:                  local-storage
IsDefaultClass:        Yes
Annotations:           storageclass.kubernetes.io/is-default-class=true
Provisioner:           kubernetes.io/no-provisioner
Parameters:            <none>
AllowVolumeExpansion:  <unset>
MountOptions:          <none>
ReclaimPolicy:         Delete
VolumeBindingMode:     WaitForFirstConsumer
Events:                <none>

kubernetes manager pod logs:

I1028 15:30:56.154131       1 event.go:221] Event(v1.ObjectReference{Kind:"StatefulSet", Namespace:"default", Name:"redis-cluster", UID:"7528483e-dac6-11e8-871f-2e55450d570e", APIVersion:"apps/v1", ResourceVersion:"2588806", FieldPath:""}): type: 'Normal' reason: 'SuccessfulCreate' create Claim data-redis-cluster-0 Pod redis-cluster-0 in StatefulSet redis-cluster success
I1028 15:30:56.166649       1 event.go:221] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"data-redis-cluster-0", UID:"76746506-dac6-11e8-871f-2e55450d570e", APIVersion:"v1", ResourceVersion:"2588816", FieldPath:""}): type: 'Normal' reason: 'WaitForFirstConsumer' waiting for first consumer to be created before binding
I1028 15:30:56.220464       1 event.go:221] Event(v1.ObjectReference{Kind:"StatefulSet", Namespace:"default", Name:"redis-cluster", UID:"7528483e-dac6-11e8-871f-2e55450d570e", APIVersion:"apps/v1", ResourceVersion:"2588806", FieldPath:""}): type: 'Normal' reason: 'SuccessfulCreate' create Pod redis-cluster-0 in StatefulSet redis-cluster successful
I1028 15:30:57.004631       1 event.go:221] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"data-redis-cluster-0", UID:"76746506-dac6-11e8-871f-2e55450d570e", APIVersion:"v1", ResourceVersion:"2588825", FieldPath:""}): type: 'Normal' reason: 'WaitForFirstConsumer' waiting for first consumer to be created before binding

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Это:

класс хранения не установлен

А пустой вывод для kubectl describe sc означает, что класса хранения нет.

Iрекомендуем установить CSI-драйвер для Digital Ocean.Это создаст класс do-block-storage с использованием интерфейса Kubernetes CSI.

Другим вариантом является использование локального хранилища.Используя локальный класс хранения:

$ cat <<EOF
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
EOF | kubectl apply -f -

Тогда в любом случае вам может потребоваться установить его в качестве класса хранения по умолчанию, если вы не укажете storageClassName в своем PVC:

$ kubectl patch storageclass local-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

или

$ kubectl patch storageclass do-block-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
0 голосов
/ 25 октября 2018

Это набор состояний с использованием PersistentVolumeClaims

Вам необходимо настроить storageClass по умолчанию в вашем кластере, чтобы PersistentVolumeClaim мог взять хранилище оттуда.

В мини-кубеодин уже доступен, поэтому он работает без ошибок:

C02W84XMHTD5:ucp iahmad$ kubectl get sc --all-namespaces 
NAME                 PROVISIONER                AGE
standard (default)   k8s.io/minikube-hostpath   7d
...