Goゲームサーバ開発のいくつかの考え方(25):RedisのDocker Swam導入


痛い点
redis 4が出るまでは、redis哨兵、redisクラスタは簡単な方法でDocker Swamをサポートすることはできません.なぜなら、Docker SwarmのNATポートマッピングメカニズムは、redisがホストIP、ポートを正しく取得できないためです.
redis 4の後、公式はredis.conf 、redis_sentinel.confには、slave-announce-ip、slave-announce-port、sentinel announce-ip、sentinel announce-portフィールドが追加され、使用者にNATモードでのホストIP、ポートを構成記入することでredisに通知させる.これによりredisがDocker Swamをサポートするために道路を舗装する.
さらに、redis容器Aが宿主Aに設けられ、宿主Aに永続化データが保存されているという事実もある.その後、宿主Aが故障した場合、redis容器Aは他の宿主に移行することはできない.任意の転送でサービスを再開すると、永続化されたデータが失われます.
これはDocker Swamのデフォルトのフェイルオーバメカニズムと競合しています.
特定のホストノードの指定
Docker Swarmのアレンジスクリプトは、条件に基づいてホストノードを選択する方法を提供します.
  • ホスト上に一意のラベル
  • を設定する.
  • スクリプトを編成するdeploy-placement-constraintsでは、あるラベルのホスト上でのみ
  • を開くことができるように設定されています.
    これにより、フェージング機能をオフにすることができます.
    ラベルの設定、適用方法
    次にubuntuシステムを例に挙げます.
  • 編集/etc/docker/daemon.json、lablesフィールドを追加します.
    {
      "labels": [ "
  • と似ています.