pod 具有未绑定的即时 PersistentVolumeClaims ECK(Kubernetes 上的 Elasticsearch)

Kay*_*Kay 8 elasticsearch kubernetes

我正在尝试在本地 minikube 集群上的 kubernetes https://www.elastic.co/guide/en/cloud-on-k8s/current/index.html上部署弹性。我已经安装了运营商。

当我应用下面的 elasticsearch 集群时,我收到以下 pod 错误:

为 pod“data-es-es-default-0”运行“VolumeBinding”过滤器插件:pod 具有未绑定的即时 PersistentVolumeClaims

数量/索赔:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: elasticsearch-data
  labels:
    type: local
spec:
  storageClassName: standard
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
Run Code Online (Sandbox Code Playgroud)

——

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: elasticsearch-data
spec:
  storageClassName: standard
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
Run Code Online (Sandbox Code Playgroud)

弹性.yml

apiVersion: elasticsearch.k8s.elastic.co/v1beta1
kind: Elasticsearch
metadata:
  name: data-es
spec:
  version: 7.4.2
  nodeSets:
  - name: default
    count: 2
    volumeClaimTemplates:
    - metadata:
        name: elasticsearch-data
      spec:
        accessModes:
        - ReadWriteOnce
        storageClassName: standard
        resources:
          requests:
            storage: 10Gi
    config:
      node.master: true
      node.data: true
      node.ingest: true
      node.store.allow_mmap: false
      xpack.security.authc.realms:
        native:
          native1: 
            order: 1
---
apiVersion: kibana.k8s.elastic.co/v1beta1
kind: Kibana
metadata:
  name: data-kibana
spec:
  version: 7.4.2
  count: 1
  elasticsearchRef:
    name: data-es
Run Code Online (Sandbox Code Playgroud)

kubectl 获取 pvc

名称 状态 卷容量 访问模式 STORAGECLASS AGE elasticsearch-data Bound elasticsearch-data 10Gi RWO 标准 8m45s elasticsearch-data-data-es-es-default-0 待定标准 7m40s elasticsearch-data-data-es-es-default-1 待定标准7分39秒

Arg*_*dhu 6

pod 具有未绑定的即时 PersistentVolumeClaims

以上错误意味着没有persistentVolume可以绑定到PersistentVolumeClaim. 默认情况下local-storage并没有真正persistentVolume动态地创建。

要使用local-storage存储类的动态供应机制,您需要配置local-storage该类,以便它可以供应persistentVolume. 检查此讨论Kubernetes:创建动态本地卷以自动为 PVC 分配 PV 的最佳实践是什么?.

或者,如果不使用存储类的动态配置机制,您需要创建一个可以绑定到的persistentVolumeusing 。但这不是生产使用的推荐解决方案。在此处查看本指南。hostPathPersistentVolumeClaim

PersistentVolumeClaim将根据volumeClaimTemplates弹性 yaml自动创建。因此你不应该创建一个 PersistentVolumeClaim.

由于nodeSets计数为 2,PersistentVolumeClaim因此创建了两个。所以你需要创建两个persistentVolume.

apiVersion: v1
kind: PersistentVolume
metadata:
  name: elasticsearch-data1
  labels:
    type: local
spec:
  storageClassName: standard
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
---

apiVersion: v1
kind: PersistentVolume
metadata:
  name: elasticsearch-data2
  labels:
    type: local
spec:
  storageClassName: standard
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
Run Code Online (Sandbox Code Playgroud)