如何在Kubernete中使用AWS EBS挂载PostgreSQL卷

XJ:
  1. 我先创建了永久卷(EBS 10G)和相应的永久卷声明。但是当我尝试按以下方式部署PostgreSQL Pod(yaml文件)时:

测试postgresql.yaml

接收来自pod的错误:

initdb:目录“ / var / lib / postgresql / data”存在但不为空它可能包含一个丢失的+找到的目录,可能是因为它是一个安装点。不建议将挂载点直接用作数据目录。在安装点下创建一个子目录。

为什么广告连播无法使用此路径?我已经在minikube上尝试过相同的测试。我没遇到任何问题。

  1. 我试图将卷安装目录路径更改为“ / var / lib / test / data”,该Pod可以运行。我创建了一个新表及其上的一些数据,然后杀死了该容器。Kubernete创建了一个新吊舱。但是新的并没有保留以前的数据和表。

那么,如何在Kubernete中使用Aws EBS正确安装postgresql卷,该方法允许重新创建的Pod可以重用存储在EBS中的初始数据库?

常量:

那么使用AWS EBS正确安装postgresql卷的方法是什么

您在正确的道路上...

您得到的错误是因为您要使用装入卷的根文件夹/作为postgresql数据目录,而postgresql抱怨这样做不是最佳实践,因为它不为空并且内部已经包含一些数据(即lost+found目录)。

最好将数据目录放在单独的空子文件夹中(/postgres例如),并在创建文件结构时为PostgreSQL提供干净的位置。您在minicube上没有得到相同的东西,因为您最有可能装载的主机文件夹内部没有任何内容(为空)并且没有引发此类投诉。

为此,首先需要将卷的空子路径/postgres例如,PV上的空子文件夹)安装到/var/lib/posgresql/data吊舱中的相应安装点()。请注意,您可以将subPath和安装点结束文件夹命名为相同的名称,这里它们是不同的,例如,test-db-volume/postgres将文件夹安装到Pod到/var/lib/postgresql/data文件夹的示例

...
volumeMounts:
- mountPath: /var/lib/postgresql/data
  name: test-db-volume
  subPath: postgres
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章