我们让Kubernetes在我们自己的服务器上运行。对于持久性存储,我们有一个NFS服务器。这很好用。
现在,我们希望部署一个具有多个副本的应用程序,这些副本应该在它们之间共享存储,但存储不应该是持久的。当pods被删除时,数据也应该消失。
我希望我能通过以下几点来实现它
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
name: nginx
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: nginx
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: nginx
spec:
volumes:
- name: shared-data
emptyDir: {}
containers:
image: nginx:latest
imagePullPolicy: IfNotPresent
name: nginx
volumeMounts:
- name: shared-data
mountPath: /shared-data
resources:
limits:
memory: 500Mi所有复制副本都有/ shared - data,但当一个复制副本将数据存储在该文件夹中时,另一个复制副本无法看到该文件,因此该文件不是共享的。
我有什么选择?
发布于 2021-07-08 18:46:06
您可以使用PVC在pods之间共享数据。然后,您可以为pod设置一个preStop lifecycle hook,以便在pod被删除时清理数据。
下面是在pod上添加preStop钩子的示例:https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
https://stackoverflow.com/questions/68299260
复制相似问题