在有状态集部署期间出现错误“ pod具有未绑定的即时PersistentVolumeClaim”

时间:2019-10-29 12:59:07

标签: kubernetes kubernetes-statefulset

我正在通过statefulset部署stolon(默认值来自stolon回购)。 我已经在statefulset配置中定义

volumeClaimTemplates:     
    - metadata:    
        name: data   
      spec:   
        accessModes: ["ReadWriteOnce"]   
        storageClassName: stolon-local-storage  
        resources:
          requests:
            storage: 1Gi

这是我的storageClass:

apiVersion: storage.k8s.io/v1   
kind: StorageClass   
metadata:   
  name: stolon-local-storage  
provisioner: kubernetes.io/no-provisioner  
volumeBindingMode: WaitForFirstConsumer

statefulset创建良好,但pod出现错误: pod具有未绑定的即时PersistentVolume声明

我该如何解决?

1 个答案:

答案 0 :(得分:0)

  

pod具有未绑定的立即PersistentVolume声明

在这种情况下,pvc无法连接到storageclass,因为它不是作为default创建的。

  

根据安装方法,您的Kubernetes群集可能会使用标记为默认值的现有StorageClass进行部署。然后,此默认StorageClass用于为不需要任何特定存储类的PersistentVolumeClaims动态设置存储。有关详细信息,请参见PersistentVolumeClaim documentation

可用于使您新创建的存储类成为默认存储类的命令。

kubectl patch storageclass <name_of_storageclass> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

然后您可以使用kubectl get storageclass,它应该看起来像这样

NAME                 PROVISIONER               AGE
stolon-local-storage   (default)   kubernetes.io/gce-pd      1d