阿里云 k8s 上面部署 etcd server 出现 pod has unbound PersistentVolumeClaims 错误信息的解决
AWS/GKE 上面都有默认的 StorageClass,而阿里云的 k8s 上面没有默认的 StorageClass,k8s 不能使用默认的 StorageClass 来创建存储卷,需要手工设置默认的 StorageClass。
使用的 bitnami etcd helm 部署。 在阿里云 kubernetes 上面出现 pod has unbound PersistentVolumeClaims。 然后查看 pvc 的信息,
kubectl --namespace my-cluster get pvc
都是 pending 状态。
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-etcd-server-0 Pending 14s
data-etcd-server-1 Pending 14s
data-etcd-server-2 Pending 14s
看一下 PVC 的详细状态
kubectl --namespace my-cluster describe pvc data-etcd-server-0
错误提示: no persistent volumes available for this claim and no storage class is set
这个错误说明没有可以使用的存储卷,且没有设置 storage class。 为啥部署为 aws 或者 GKE. 上面都是正常的? 因为AWS/GKE 上面都有默认的 StorageClass,而阿里云的 k8s 上面没有默认的 StorageClass,k8s 不能使用默认的 StorageClass 来创建存储卷,需要手工设置默认的 StorageClass,即可解决这个问题。
运行如下命令:
kubectl patch storageclass alicloud-disk-ssd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
然后删除 etcd-server, 删除 PVC, 重新再部署即可。如下(我这里 etcd server 有3个实例,对应3个 PVC)
kubectl --namespace my-cluster delete pvc data-etcd-server-0 data-etcd-server-1 data-etcd-server-2
如果出现 “Message: The specified parameter "Size" is not valid.” 这个错误信息, 说明设置的文件系统大小不正确,阿里云上最小的 SSD/ESSD 文件系统大小是 20G,小于 20G 会报这个错误。
参考:
更多推荐
所有评论(0)