我目前在Docker上安装了GitLab omnibus。我计划通过将其添加到Kubernetes并使用Gluster持久化来获得相同的HA。我玩过Guberter配置Kubernetes。现在是时候将GitLab带入Kubernetes了。 GitLab使用PostgreSQL作为默认数据库。
我的查询是实施HA,我应该
a)将GitLab拆分为GitLab应用程序和PostgreSQL容器,然后在他们自己的pod集群中运行(Application和DB),即分离部署 GitLab app和PostgreSQL的复制品?
OR
b)继续使用omnibus安装程序,只有这个单独的容器的副本?
是否真的有任何不同
1)写入发生在通过服务暴露给GitLab应用程序的数据库集群中
OR
2)直接写入综合GitLab容器(其中包含db)
只是想确保我不会不必要地使设置变得复杂。在Kubernetes和Gluster一起使用GitLab已经让事情变得有点复杂。那么拆分应用程序和数据库是否有意义,或者仅仅是多功能设置就足够了?关注对db的并发写入。
答案 0 :(得分:1)
根据http://docs.gitlab.com/ce/install/kubernetes/gitlab_omnibus.html#introduction ,您应该使用专用的Redis和PostgreSQL HA群集。选项b)和1)
为了减少停机时间,最好使用 PostgreSQL主从群集(https://www.postgresql.org/docs/10/static/different-replication-solutions.html)和 Redis群集主从(https://redis.io/topics/cluster-tutorial)。 “请注意,按预期工作的最小(Redis)集群需要包含至少三个主节点”。
如果您只使用GlusterFS将故障转移到PostgreSQL,那么当一个数据库实例崩溃而另一个数据库实例崩溃时,您可能会遇到一些需要手动修复的错误。像这样:How do I fix Postgres so it will start after an abrupt shutdown?