Kubernetes在删除后重新附加到相同的持久卷
我有一个应用程序,两个豆荚需要访问同一个卷。我希望能够删除群集,然后在应用后能够访问卷上的数据 例如:Kubernetes在删除后重新附加到相同的持久卷,kubernetes,Kubernetes,我有一个应用程序,两个豆荚需要访问同一个卷。我希望能够删除群集,然后在应用后能够访问卷上的数据 例如: apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: retaining provisioner: csi.hetzner.cloud reclaimPolicy: Retain volumeBindingMode: WaitForFirstConsumer --- kind: PersistentVolum
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: retaining
provisioner: csi.hetzner.cloud
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: media
spec:
#storageClassName: retaining
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-php
labels:
app: myapp-php
k8s-app: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp-php
template:
metadata:
labels:
app: myapp-php
k8s-app: myapp
spec:
containers:
- image: nginx:1.17
imagePullPolicy: IfNotPresent
name: myapp-php
ports:
- containerPort: 9000
protocol: TCP
resources:
limits:
cpu: 750m
memory: 3Gi
requests:
cpu: 750m
memory: 3Gi
volumeMounts:
- name: media
mountPath: /var/www/html/media
volumes:
- name: media
persistentVolumeClaim:
claimName: media
nodeSelector:
mytype: main
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-web
labels:
app: myapp-web
k8s-app: myapp
spec:
selector:
matchLabels:
app: myapp-web
template:
metadata:
labels:
app: myapp-web
k8s-app: myapp
spec:
containers:
- image: nginx:1.17
imagePullPolicy: IfNotPresent
name: myapp-web
ports:
- containerPort: 9000
protocol: TCP
resources:
limits:
cpu: 10m
memory: 128Mi
requests:
cpu: 10m
memory: 128Mi
volumeMounts:
- name: media
mountPath: /var/www/html/media
volumes:
- name: media
persistentVolumeClaim:
claimName: media
nodeSelector:
mytype: main
如果我这样做:
k apply -f pv-issue.yaml
k delete -f pv-issue.yaml
k apply-f pv-issue.yaml
我想连接同一个卷
我所尝试的:
kustomize构建应用程序时,我看不到排除资源的方法| kubectl delete-f-
或者,我应该只执行常规备份,并在重新创建群集时从备份中恢复卷数据吗?有没有办法实现这一点?或者,我应该定期备份,并在重新创建群集时从备份中恢复卷数据吗? 群集删除将删除所有本地卷。您可以通过将数据存储在集群之外来实现这一点
Kubernetes
拥有多种存储提供程序,可帮助您在各种存储类型上部署数据
您可能还想使用hostPath
将数据本地保存在节点上,但这也不是一个好的解决方案,因为它需要您将pod固定到特定节点以避免数据丢失。如果您删除集群的方式使所有VM
都消失了,那么这也将消失
拥有一些网络连接存储将是正确的方法。非常好的例子是您的实例可以访问哪些持久的网络存储设备。它们独立于您的虚拟机定位,并且在您删除群集时会被删除。是的,如果您想在重新创建群集后仍保留卷,则数据必须位于群集外部。