0

私は、Google Container Engineに単一のソースコードと異なるファイル(指定されたGCストレージバケット内のディレクトリ)とデータベース(GC SQL)を持つマルチテナントアプリを持っています。各テナントには、(http/s)要求のドメインによって決定されるSQL資格と追加の設定を持つ設定ファイルがあります。マルチテナント設定を提供する方法

これらの設定ファイルは約500バイトと小さく、複数のポッドにどのように配布するかを把握しようとしています(設定の追加、削除、変更など)ができるだけ早く反映されます。

これまでのところ、最高の解決策は、GCEの永続ディスクを使用することです。これは、読取り専用で任意の数の読者にマウントしてから、ボリュームを書込み可能にマウントする単一のコンテナで1つのポッド1つの作者)、nodeJSまたはcronによっていくつかの短い間隔で呼び出されたgsutil rsyncを使用して、管理バックエンドが書き込むバケットからファイルを同期させます。

私がこれをまだしていない理由は、基本的に単一障害点があるため、これは雲に優しい解決策ではないということです。ポッドは自給自足でなければなりません。また、ドライブは10GBを下回ることはできませんが、私のファイルはたかだか数MBしかかかりませんので、リソースの浪費のようです。

Googleは残念ながらAmazon Elasticacheのようなものを持っていないので、私はこれをどのように設計するかはわかりません。

どのような考えですか?

答えて

0

Elasticacheは基本的にRedisクラスタですので、Kubernetes/GKEで同じようにRedis Master/SlaveまたはCluster設定を回転させることができます。

はまた、そこにオプションの

たくさん...冗長性のための複製、またはetcd、領事、飼育係のようなキー/バリューストアの他の並べ替えで、これらのconfigsのための中心的SQLまたは他のDBを持つことができます。

これらのソリューションはすべて複製/配布されていますので、ローカルストレージ(emptyDir)だけで暮らすことができますが、何らかのバックアップ戦略があると良いかもしれません。

関連する問題