【发布时间】:2020-01-03 16:03:05
【问题描述】:
我使用带有持久性磁盘 (pd-ssd) 的 terraform 创建了一个 kubernetes 集群。我还创建了存储类和持久性卷声明。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-claim
labels:
app: elasticsearch
spec:
storageClassName: ssd
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30G
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: ssd
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
reclaimPolicy: Retain
---
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/xxxxxxxxxxxx/elasticsearch:7.3.1
name: elasticsearch
ports:
- containerPort: 9200
name: elasticport1
- containerPort: 9300
name: elasticport2
env:
- name: discovery.type
value: single-node
volumeMounts:
- mountPath: /app/elasticsearch/gcp/
name: elasticsearch-pv-volume
volumes:
- name: elasticsearch-pv-volume
persistentVolumeClaim:
claimName: pvc-claim
pvc-claim 和 storage 类绑定完美,我已将回收策略设置为保留。所以删除kubernetes集群的时候不应该删除持久化盘。但是集群和其他数据的删除与集群
我的场景是我需要一个持久性磁盘,当集群被删除时,我的数据也不应该被删除。磁盘应保持原样。我的场景有什么可行的解决方案吗?
【问题讨论】:
-
首先,云还是本地?二、为什么要删除集群?
-
@Crou 该集群在 Cloud[GCP] 上可用,为了降低成本,我们将其删除
-
解决方法是,不要使用 GKE 在虚拟机上设置您自己的集群,您可以在不使用它们时停止。至于存储,我看到两种方法,在停止部署之前备份日期或使用 NFS 共享。但我没有对此进行测试,也不能说移除 PVC 后数据是否可读。
-
或者你可以试试GCS Bucket
-
你能看到先删除ssd上的kubernetes标签然后删除pvc再删除pv然后删除集群是不是为你保留了磁盘上的数据?
标签: kubernetes google-cloud-platform kubernetes-deployment