私は DC/OS オーケストレーターを使用して ACS を少し試しています。1 つのリージョン内でクラスターをスピンアップするのは簡単に思えますが、複数のリージョンにまたがるデプロイを行うためのベスト プラクティスがどのようなものかはよくわかりません。
現在、Azure 自体は、複数のリージョンへの展開をサポートしていないようです。その前提で、他の唯一の選択肢は、利用可能にしたいすべてのリージョンで複数の同一のクラスターを作成し、Azure Traffic Manager を使用して受信トラフィックを最も近い利用可能なクラスターにルーティングすることだと思います。
このソリューションは機能しますが、回避方法について 100% 確信が持てないいくつかの問題も引き起こします。
- 新しいバージョンのサービスをデプロイする場合、デプロイ パイプラインはすべてのリージョンに確実にデプロイする必要があります。米国東部と北ヨーロッパのリージョンがある場合、CI ツールからのデプロイ中に、両方のリージョンで Marathon API に接続して新しいデプロイをトリガーする必要があります。デプロイが 1 つのリージョンで失敗し、別のリージョンで成功した場合、2 つのリージョン間に突然格差が生じます。
- PostgreSQL や ElasticSearch などのローカル永続ボリュームを使用するサービスをデプロイしている場合、サービス ディスカバリーはリージョンに対してローカルなサービスのみを検出するため、両方のリージョンにインスタンスが必要です。これにより、すべてのリージョンですべての状態を維持するために、リージョン間のレプリケーションの問題が発生します。これを機能させるには、いくつか/多くの手動構成が必要なようです。
Azure Container Service (または実際には Amazon Container Service、同じ課題が見つかると思います) を使用してこのようなセットアップを使用したことがあり、これにアプローチする方法についていくつかの指針がありますか?