我被这个问题困住了:我配置了 kubeadm(目前在一台专用服务器上集群)。我使用 helm 安装了 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
那我还应该检查什么?
有什么线索吗?