【发布时间】:2019-10-14 09:08:59
【问题描述】:
设置在 GCP GKE 上。我部署了一个带有持久卷的 Postgres 数据库(保留回收策略),并且:
strategy:
type: Recreate
如果数据库 pod 被删除,数据会保留还是重新初始化?
【问题讨论】:
标签: postgresql kubernetes google-cloud-platform google-kubernetes-engine persistent-volumes
设置在 GCP GKE 上。我部署了一个带有持久卷的 Postgres 数据库(保留回收策略),并且:
strategy:
type: Recreate
如果数据库 pod 被删除,数据会保留还是重新初始化?
【问题讨论】:
标签: postgresql kubernetes google-cloud-platform google-kubernetes-engine persistent-volumes
更新策略与删除行为无关。当对 pod 模板的更改触发更新时,将使用它。基本上它是一次性对旧的 ReplicaSet 进行核对,还是逐渐扩大/缩小规模。您几乎总是使用 RollingUpdate,除非您使用的软件要求所有节点都在完全相同的版本上并且理解这将导致任何更改都导致停机。
至于保留音量模式,这主要是为管理员提供的安全网。假设您使用了 PVC,删除 pod 不会对数据产生影响,因为卷与声明而不是 pod 本身相关(显然,当 pod 重新启动时,事情会发生故障,但这无关紧要)。如果您删除 PVC,Retain 卷将保留在后端,但如果您想对其进行任何操作,则必须手动执行。这就像一个“哎呀”保护,需要两个步骤才能真正删除数据。
【讨论】:
更新策略与删除行为无关。 <...> 删除 pod 不会对数据产生影响,因为卷与声明相关联,而不是 pod 本身
我完全同意coderanger,你应该独立考虑来自 Postgres 的数据。通常,人们会创建一个单独的卷(使用 PVC)安装在 /usr/local/pgsql/data 上。当您删除/重新创建一个新的 Postgres pod 时,您仍然可以使用相同的卷来挂载它,而不会影响您的数据。
【讨论】: