- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
从 pod 接收错误:
initdb:目录“/var/lib/postgresql/data”存在但不为空它包含一个 lost+found 目录,可能是因为它是一个挂载点。不建议直接使用挂载点作为数据目录。在挂载点下创建一个子目录。
为什么 pod 不能使用这个路径?我在 minikube 上尝试过相同的测试。我没有遇到任何问题。
那么在 Kubernetes 中使用 Aws EBS 正确挂载 postgresql 卷的方法是什么,这使得重新创建的 pod 可以重用存储在 EBS 中的初始数据库?
最佳答案
So what's the way to correctly mount a postgresql volume using Aws EBS
你走在正确的道路上......
你得到的错误是因为你想使用安装卷的根文件夹 /
作为 postgresql 数据目录和 postgresql 提示这样做不是最佳实践,因为它不是空的并且已经包含一些里面的数据(即lost+found
目录)。
最好将数据目录定位在单独的空子文件夹(例如 /postgres
)中,并在创建其文件结构时为 postgresql 提供干净的 slate。你在 minicube 上没有得到同样的东西,因为你很可能安装了主机文件夹,里面没有任何东西(是空的)并且没有触发这样的投诉。
为此,您首先需要为空 subPath您的卷(例如,PV 上的空 /postgres
子文件夹)安装到 pod 中适当的安装点 (/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
...
关于postgresql - 如何在 Kubernetes 中使用 Aws EBS 挂载 postgresql 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51168558/
我是一名优秀的程序员,十分优秀!