我陷入了这个问题:我配置了kubeadm(目前在一台专用服务器上的集群)。然后我使用头盔安装了elasticsearch。除了存储,它几乎可以正常工作。该图表使用默认的StorageClass进行PV的动态配置。
因此,我创建了默认的StorageClass(kubernetes.io/gce-pd / pd-standard),并在apiserver中激活了DefaultStorageClass准入插件以启用动态配置。但这仍然行不通。这些Pod仍然具有FailedBinding事件“此声明没有可用的持久卷,并且未设置任何存储类”。
我检查了elasticsearch的掌舵图,它没有为其PVC指定StorageClass,因此它应该可以工作。此外,我还缺少其他东西:我不知道kubernetes将在磁盘上分配PV的位置,我从未在任何地方配置它。而且它也不在StorageClass中。
我检查了动态预配置是否正常工作,因为它在PVC定义中插入了默认的StorageClass:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/gce-pd
creationTimestamp: "2019-12-19T10:37:04Z"
finalizers:
- kubernetes.io/pvc-protection
labels:
app: kibanaelastic-master
name: kibanaelastic-master-kibanaelastic-master-0
namespace: elasticsearch
resourceVersion: "360956"
selfLink: /api/v1/namespaces/elasticsearch/persistentvolumeclaims/kibanaelastic-master-kibanaelastic-master-0
uid: 22b1c23a-312e-4b56-a0bb-17f2da372509
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
storageClassName: slow
volumeMode: Filesystem
status:
phase: Pending
所以我还应该检查什么?有任何线索吗?
介意我发现了错误。我在默认存储类中使用了错误的Provisionner。并且未配置此供应商。我很好奇如何使此错误更明显和可以理解。