首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中可以灵活地运行Postgres吗?

在中可以灵活地运行Postgres吗?
EN

Stack Overflow用户
提问于 2018-02-21 06:14:36
回答 1查看 1.3K关注 0票数 1

可以在定制的Google灵活容器中运行postgres (本质上是一个非HTTP服务)吗?还是我会被迫使用谷歌的Cloud解决方案?

EN

回答 1

Stack Overflow用户

发布于 2018-02-23 14:20:07

TL;DR:您可以这样做,但不要这样做,最好将持久数据存储外部化。

是的,可以在定制的Google灵活容器中作为微服务( Google平台中的“服务”)运行PostgreSQL数据库。但是,这引发了另一个重要问题,即为什么要在容器中运行SQL数据库。这是一个风险很大的解决方案,除非您完全确定您正在做什么以及如何管理它。

典型的容器编排基于无状态服务,这意味着它们不打算存储持久数据。这类容器有时确实有某种形式的存储,比如用于缓存或用户会话信息的NoSQL数据库。此数据不是持久的,它可能在敏捷容器应用程序环境中重新启动或销毁实例时丢失。PostgreSQL数据库被用作有状态服务,不适合上述模型。将这样的数据库放入容器中,在访问某些共享数据目录时,可能会遇到数据损坏或直接并发等问题。另外,在Google中,不可能添加共享的持久磁盘,卷被附加到实例并与它们一起销毁。更安全的解决方案是将SQL数据库保存在外部的持久存储中,如您所提到的Cloud。有许多博客文章和文章用无状态/有状态服务来阐述这个问题,比如这一个

应该注意的是,如果要在本地环境中使用容器或用于测试/开发(而不是寻找数据库的持久状态),那么在容器中放置PostgreSQL应该是完全可以的。另外,如果您设计了一种在实例之间拆分数据的特殊方法,这可能会很好,就像MySQL服务器在这篇文章中所做的那样。因此,应该再次仔细考虑将PostgreSQL数据库放在容器中的想法,特别是在这样一个服务的安全外部化方面有很多选择。

顺便提一下,您不会被迫使用Cloud。数据库可以托管在另一个云提供商Compute上,也可以托管在房地上,也可以由第三方供应商管理。如果将其托管在Compute Engine中,则应用程序可以使用Compute Engine实例的内部IP与同一项目中的数据库进行通信。使用云发射器,您可以将PostgreSQL和其他流行数据库快速部署到Compute。有关使用第三方数据库的更多信息,请查看这些谷歌文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48899251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档