高可用性環境におけるDiscourse共有ボリュームの目的

こんにちは!Discourse のデプロイメントにおける共有ボリュームの目的についてお伺いしたいのですが。

参考までに、私たちは GKE 上の Kubernetes クラスターで Discourse を稼働させています。可用性を高めるために、デプロイメントのインスタンス数をスケールアウトしたいと考えています。すべてのインスタンスが当然ながら同じ Postgres データベースと Redis インスタンスと通信することになりますが、すべての Web サーバーが同じ共有ボリュームと通信する必要があるのか、それとも Web サーバーを独立してスケールできるのか(つまり、各 Web サーバーインスタンスが独自の「共有」ボリュームを持てるのか)が気になっています。

あるいは、すべての Web サーバーが同じ共有ボリュームを利用するという厳密な要件があるのでしょうか。その場合、各コンテナに NFS ボリュームなどをマウントする必要があることになります。

よろしくお願いいたします!

The shared volume is there as a value add you can get away without it. In a typical “uploads are on AWS”, PG / Redis somewhere central setup you will only use it for Rails/Unicorn/NGINX etc logs. You would then ship them somewhere central with some log aggregation service.

Perfect, thanks @sam!

Just wanted to check that there weren’t going to be issues with uploads going to one host, and then a request hits another host and isn’t available due to it running in a separate container with a separate mount.

Sounds like we’ll be ok here :+1:.

Note, It will be an issue unless you use our s3 uploads provider