首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DigitalOcean pod有未绑定的即时PersistentVolumeClaims

DigitalOcean pod有未绑定的即时PersistentVolumeClaims
EN

Stack Overflow用户
提问于 2018-10-24 18:38:16
回答 2查看 18.9K关注 0票数 15

我试图在DigitalOcean中的Kubernetes中运行一个Redis集群。作为一个poc,我只是尝试运行一个我在网上找到的示例(https://github.com/sanderploegsma/redis-cluster/blob/master/redis-cluster.yml),它能够在本地使用minikube运行时适当地旋转豆荚。

但是,在数字海洋上运行它时,总是会出现以下错误:

警告FailedScheduling 3s (x8超过17s)默认调度程序pod有未绑定的即时PersistentVolumeClaims (重复4次)

鉴于我没有改变任何事情,我不知道为什么这不会奏效。有人有什么建议吗?

编辑:一些附加信息

代码语言:javascript
复制
$ 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:

代码语言:javascript
复制
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描述荚红-簇-0

代码语言:javascript
复制
....
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描述

代码语言:javascript
复制
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经理pod日志:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2018-10-26 02:31:08

这是:

没有设置任何存储类。

kubectl describe sc的空输出意味着没有存储类。

我建议为数字海洋安装CSI-司机。这将使用Kubernetes CSI接口创建一个do-block-storage类。

另一种选择是使用本地存储。使用本地存储类:

代码语言:javascript
复制
$ cat <<EOF
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
EOF | kubectl apply -f -

然后,如果没有在PVC中指定storageClassName,则可能需要将其设置为默认存储类:

代码语言:javascript
复制
$ kubectl patch storageclass local-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

代码语言:javascript
复制
$ kubectl patch storageclass do-block-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
票数 6
EN

Stack Overflow用户

发布于 2018-10-24 21:14:39

这是一个使用statefulSet的PersistentVolumeClaims

您需要在集群中配置默认的storageClass,以便PersistentVolumeClaim可以从那里获取存储。

在minikube中,一个已经可用,所以它成功了,没有错误:

代码语言:javascript
复制
C02W84XMHTD5:ucp iahmad$ kubectl get sc --all-namespaces 
NAME                 PROVISIONER                AGE
standard (default)   k8s.io/minikube-hostpath   7d
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52975887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档