Kubernetes持久卷在GCE上不起作用

我正在尝试使我的弹性search窗格保持不变,以便在部署或窗格重新创build时保留数据。弹性search是Graylog2设置的一部分。

在完成所有设置后,我向Graylog发送了一些日志,我可以看到它们出现在仪表板上。 但是,我删除了elasticsearch pod,在重新创build之后,所有的数据在Graylog仪表板上都丢失了。

我正在使用GCE。

这是我的永久卷configuration:

kind: PersistentVolume apiVersion: v1 metadata: name: elastic-pv labels: type: gcePD spec: capacity: storage: 200Gi accessModes: - ReadWriteOnce gcePersistentDisk: fsType: ext4 pdName: elastic-pv-disk 

持续音量声明configuration:

 kind: PersistentVolumeClaim apiVersion: v1 metadata: name: elastic-pvc labels: type: gcePD spec: accessModes: - ReadWriteOnce resources: requests: storage: 200Gi 

这里是我的elasticsearch部署:

 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: elastic-deployment spec: replicas: 1 template: metadata: labels: type: elasticsearch spec: containers: - name: elastic-container image: gcr.io/project/myelasticsearch:v1 imagePullPolicy: Always ports: - containerPort: 9300 name: first-port protocol: TCP - containerPort: 9200 name: second-port protocol: TCP volumeMounts: - name: elastic-pd mountPath: /data/db volumes: - name: elastic-pd persistentVolumeClaim: claimName: elastic-pvc 

kubectl describe pod输出kubectl describe pod

 Name: elastic-deployment-1423685295-jt6x5 Namespace: default Node: gke-sd-logger-default-pool-2b3affc0-299k/10.128.0.6 Start Time: Tue, 09 May 2017 22:59:59 +0500 Labels: pod-template-hash=1423685295 type=elasticsearch Status: Running IP: 10.12.0.11 Controllers: ReplicaSet/elastic-deployment-1423685295 Containers: elastic-container: Container ID: docker://8774c747e2a56363f657a583bf5c2234ed2cff64dc21b6319fc53fdc5c1a6b2b Image: gcr.io/thematic-flash-786/myelasticsearch:v1 Image ID: docker://sha256:7c25be62dbad39c07c413888e275ae419a66070d37e0d98bf5008e15d7720eec Ports: 9300/TCP, 9200/TCP Requests: cpu: 100m State: Running Started: Tue, 09 May 2017 23:02:11 +0500 Ready: True Restart Count: 0 Volume Mounts: /data/db from elastic-pd (rw) /var/run/secrets/kubernetes.io/serviceaccount from default-token-qtdbb (ro) Environment Variables: <none> Conditions: Type Status Initialized True Ready True PodScheduled True Volumes: elastic-pd: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: elastic-pvc ReadOnly: false default-token-qtdbb: Type: Secret (a volume populated by a Secret) SecretName: default-token-qtdbb QoS Class: Burstable Tolerations: <none> No events. 

kubectl describe pv输出kubectl describe pv

 Name: elastic-pv Labels: type=gcePD StorageClass: Status: Bound Claim: default/elastic-pvc Reclaim Policy: Retain Access Modes: RWO Capacity: 200Gi Message: Source: Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine) PDName: elastic-pv-disk FSType: ext4 Partition: 0 ReadOnly: false No events. 

kubectl describe pvc输出kubectl describe pvc

 Name: elastic-pvc Namespace: default StorageClass: Status: Bound Volume: elastic-pv Labels: type=gcePD Capacity: 200Gi Access Modes: RWO No events. 

确认真实磁盘存在:

在这里输入图像说明

永久卷不持久的原因是什么?

在官方图像中,Elasticsearch数据存储在/usr/share/elasticsearch/data而不是/data/db 。 看起来你需要更新挂载为/usr/share/elasticsearch/data而不是将数据存储在持久卷上。

Interesting Posts