如何提供多租户配置

时间:2016-11-23 20:22:29

标签: cloud google-cloud-storage kubernetes google-kubernetes-engine gsutil

我在Google容器引擎中有一个多租户应用,它有一个源代码和不同的文件(指定的GC存储桶中的目录)和数据库(GC SQL)。每个租户都有一个配置文件,其中包含sql凭据以及由(http / s)请求中的域确定的其他配置。

这些配置文件很小,大约500字节,我试图弄清楚如何将它们分发到多个pod,以便对它们进行任何更改(添加,删除或更改配置)将尽快传播。

到目前为止,最好的解决方案是使用来自GCE的永久磁盘,它可以作为只读安装到任意数量的读卡器,然后让一个容器与单个容器,我将卷安装为可写(只能有一个编写器),使用nodeJS或cron在一些短时间间隔内调用的export class GmailComponent implements OnInit, DoCheck { public messages: Array<string>; subscription:Subscription; constructor(private gmailApi: GmailApiService){ } ngOnInit() { this.gmailApi.checkAuthAuto('from:(xyz@zyx.com) OR to: (azx@saa.com)'); this.subscription = this.gmailApi.openMessages$ .subscribe(messages => { this.messages = messages; ngDoCheck(); }); } getMessages(){ console.log(this.messages); } ngOnDestroy() { this.subscription.unsubscribe(); } ngDoCheck() { //do nothing, just call } } 来同步我管理后端写入它们的存储桶中的文件。

我还没有这样做的原因是,这不是云友好的解决方案,因为基本上存在单点故障。豆荚应该是自给自足的。而且驱动器不能小于10GB,但我的文件最多只需要几MB,所以这似乎是浪费资源。

Google遗憾的是没有像Amazon Elasticache这样的东西,所以我不确定如何设计它。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Elasticache基本上是一个Redis集群,所以你可以使用自己的Redis Master / Slave或Cluster配置在Kubernetes / GKE中做同样的事情。

您还可以为这些配置提供中央SQL或其他数据库,具有冗余复制功能,或任何其他类型的键/值存储,如etcd,consul,zookeeper ......

那里有很多选择。

所有这些解决方案都是复制/分发的,你可以只使用本地存储(emptyDir),尽管可能有一些备份策略。