私は Kubernetes を初めて使用するので、ばかげた質問かもしれません。
3 つのポッド レプリカを使用して ElasticSearch のステートフル セットをデプロイしようとしています。仕様で pvc を使用して Statefulset を定義しました。
この pvc には、hostPath ボリュームによって提供されるストレージ クラスがあります。
volumeClaimTemplates:
- metadata:
name: beehive-pv-claim
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "local-storage"
resources:
requests:
storage: 1Gi
apiVersion: v1
kind: PersistentVolume
metadata:
name: beehive-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: local-storage
hostPath:
path: /home/abc
少し疑問があります。
1) 上記の setup/pv は、各ノードの /host/abc ディレクトリを別々に提供しますか? つまり、すべてのポッド データは、対応するノード/ホスト パスに保存されます。また、k8s は複数の pvc にバインドされた 1 つのボリュームを表示しますか?
2) statefulset を使用しているため、pod-{i} が node-{i} でスケジュールされると、すべての場合 (再起動など) に常にスケジュールされると想定しています。
3)ホストローカルディレクトリにデータを保存する必要がある場合を実装するためのセットアップの正しい方法です。それとも、ローカル永続ボリュームの方が優れていますか? 2つの実際の違いを得ることができませんでした。4) local-storage ストレージ クラスを手動で作成する必要がありますか? (上記のセットアップは、ストレージ クラスを作成せずに Windows セットアップ用の docker で正常に実行されます) 5) /home/abc ディレクトリのみにデータを格納する必要がある他のコンテナーもある場合があります。そのため、コンテナにボリュームをマウントする際に subPath を使用します。ここに問題はありますか?
助けてください。