我使用带有持久性磁盘(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类限制了性能,我将reclamin策略设置为keep。因此在删除kubernetes集群时不应删除持久性磁盘。但是群集和群集中其他数据的删除
我的场景是我需要一个磁盘,并且在删除群集时也不应删除我的数据。磁盘应保持原样。有什么可行的解决方案来解决我的问题。
答案 0 :(得分:0)
我在 AWS 中使用 kOps 创建了 kubernetes 集群。当我删除我的集群时,我遇到了和你一样的问题。我用于数据库的 EBS 卷被删除。幸运的是,我有快照可以从中创建一个卷。
解决方案:从 AWS UI 中删除卷的标签。然后删除您的 kubernetes 集群。然后该卷将不会被删除。我希望这在 GCP 中也是可能的。
有关详细信息,请查看 this video 和 this post