gpt4 book ai didi

kubernetes - 在 Kubernetes 中复制 docker-compose 卷行为

转载 作者:行者123 更新时间:2023-12-02 11:39:25 27 4
gpt4 key购买 nike

我正在将用于 tomcat + postgres 应用程序的 docker-compose 文件迁移到 kubernetes。我的测试环境是启用了 Kubernetes 的 Dockers for Windows。

如果我对 postgres 使用 emptyDir 卷,我可以成功测试我的应用程序,但我无法保留 postgres 数据。

      volumes:
- name: "pgdata-vol"
emptyDir: {}

在 MacOS 上,我可以使用 hostPath 卷保存 postgres 数据。
  volumes:
- name: "pgdata-vol"
hostPath:
path: /tmp/vols/pgdata

不幸的是,如果我在 Windows 上尝试相同的解决方案,我会遇到权限错误。这在上一个问题中讨论过。见 Kubernetes (in Docker for Windows) Volume Configuration for Postgres .

我不需要通过主机文件系统访问我的卷。我只是希望我的音量从一个运行到下一个运行。我能够在运行 docker-compose ... up 时实现此行为和 docker-compose ... down使用以下卷定义。
volumes:
pgdata:

体积引用
    environment:
- PGDATA=/pgdata
volumes:
- pgdata:/pgdata

有没有一个好名字可以用来描述这种类型的卷?有没有办法将这种类型的卷翻译成 kubernetes?

最佳答案

空目录确实是临时数据。
如果您需要持久数据,您可以选择使用 Docker 中的主机路径,但如果您有多个节点,则为不同的节点安排一个 pod,则数据将丢失。

因此,更好的解决方案是使用持久卷。这必须由您的基础架构提供,因此特定于您的环境。

详情见:https://kubernetes.io/docs/concepts/storage/volumes/

对于 Docker for Windows 上的权限问题,您可能需要考虑改用 minikube。

关于kubernetes - 在 Kubernetes 中复制 docker-compose 卷行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57378980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com