0

私は弾力検索ポッドを永続的にして、デプロイメントやポッドの再作成時にデータを保存しようとしています。エラスティック検索はGraylog2セットアップの一部です。Kubernetes Persistent VolumeがGCEで機能しない

すべてをセットアップした後、私はGraylogにいくつかのログを送り、それらがダッシュボードに表示されるのがわかりました。しかし、私はelasticsearchポッドを削除し、再作成した後、すべてのデータがGraylogダッシュボードで失われました。

私はGCEを使用しています。ここで

は私の永続的なボリュームの設定です:

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

永続的なボリューム請求の設定:

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

、ここでは私のelasticsearchの展開です:kubectl describe pod

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 

出力:

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. 

出力:

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の出力:

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

本当のディスクが存在する確認:永続的なボリュームがある理由は何ができるか

enter image description here

ない永続?

+0

2つのことが思い浮かぶ。 'elastic-pv-disk'はGCPにすでに存在していますか?クレームセレクター(200Gi)と一致する可能性がある他のボリュームはありますか? 'kubectlはを記述する '、' kubectlはを記述する'、 'kubectlはを記述する'の出力を表示すると役に立ちます。 –

+0

@AndyShinn更新を見てください。私は私の髪を引き出しています。 –

+0

PVが1つしかありません –

答えて

1

公式の画像では、Elasticsearchデータはで保存され、/data/dbでは保存されません。永続ボリュームにデータを格納する代わりに、マウントを/usr/share/elasticsearch/dataに更新する必要があるようです。

関連する問題