我在 persistance.yaml 文件中为弹性搜索创建了 PersistentVolume、PersistentVolumeClaim 和 StorageClass。
PersistentVolume、StorageClass、PersistentVolumeClaim 创建成功。绑定也成功了。
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: ssd
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
reclaimPolicy: Retain
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-persistent-volume
spec:
storageClassName: ssd
capacity:
storage: 30G
accessModes:
- ReadWriteOnce
gcePersistentDisk:
pdName: gke-webtech-instance-2-pvc-f5964ddc-d446-11e9-9d1c-42010a800076
fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-claim
spec:
storageClassName: ssd
volumeName: pv-persistent-volume
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30G
我还在下面为 elasticsearch 附加了 deployment.yaml。
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
labels:
name: elasticsearch
spec:
type: NodePort
ports:
- name: elasticsearch-port1
port: 9200
protocol: TCP
targetPort: 9200
- name: elasticsearch-port2
port: 9300
protocol: TCP
targetPort: 9300
selector:
app: elasticsearch
tier: elasticsearch
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: elasticsearch-application
labels:
app: elasticsearch
spec:
strategy:
type: Recreate
template:
metadata:
labels:
app: elasticsearch
tier: elasticsearch
spec:
hostname: elasticsearch
containers:
- image: gcr.io/xxxxxxx/elasticsearch:7.3.1
name: elasticsearch
ports:
- containerPort: 9200
name: elasticport1
- containerPort: 9300
name: elasticport2
env:
- name: discovery.type
value: single-node
volumeMounts:
- mountPath: "/usr/share/elasticsearch/html"
name: pv-volume
volumes:
- name: pv-volume
persistentVolumeClaim:
claimName: pv-claim
我也创建了 deployment.yaml 文件。弹性搜索应用程序成功运行,没有任何问题,我也可以访问弹性搜索 URL。我已经运行测试并在 elaticsearch 中填充了数据,我也可以查看数据。
在 Kubernetes 中删除集群后,我尝试连接具有持久性数据的同一个磁盘。一切都很完美。但我无法获取已经存储的数据。我的数据丢失了,我猜我的磁盘是空的。