ドッカー作曲単一のクラスタの展開Redisの+センチネル

クリップボード

クリップボード

古いバージョンをアンインストール古いバージョンのドッキングウィンドウをアンインストールします

sudoのyumのドッキングウィンドウを削除\

                  ドッキングウィンドウ - クライアント\

                  ドッキングウィンドウ - クライアント - 最新\

                  ドッキングウィンドウ、共通\

                  ドッキングウィンドウ、最新の\

                  ドッキングウィンドウ - 最新のlogrotate \

                  ドッキングウィンドウ、logrotateの\

                  ドッキングウィンドウ-エンジン

インストールのレポは、ドッキングウィンドウのレポをインストール

-yのyum-utilsのインストールyumをsudoの\

  デバイスマッパー永続データ\

  LVM2

sudoのyumを-config設定マネージャ\

--add-レポ\

    https://download.docker.com/linux/centos/docker-ce.repo

Community Editionのインストールには、ドッカーエンジンコミュニティをインストール

sudoのyumを-yドッカ-CEのドッキングウィンドウ-CE-CLI containerd.io --skip-壊れインストール

設定されたサービスの起動とテスト画像

sudoのsystemctl開始ドッキングウィンドウ

sudoのsystemctlドッキングウィンドウを有効にします

sudoのドッキングウィンドウの実行ハローワールド

クリップボード

gitのコードをダウンロードしてインストールします

sudoのyumを-yにgitをインストール

gitのクローンhttps://github.com/AliyunContainerService/redis-cluster

CDのRedisクラスター

检查docker compose文件

cat docker-compose.yml

master:

image: redis:3

slave:

image: redis:3

command: redis-server --slaveof redis-master 6379

links:

- master:redis-master

sentinel:

build: sentinel

environment:

- SENTINEL_DOWN_AFTER=5000

- SENTINEL_FAILOVER=5000

links:

- master:redis-master

- slave

在模板中定义了下面一系列服务

  • master: Redis master
  • slave: Redis slave
  • sentinel: Redis Sentinel

cat sentinel.conf

# Example sentinel.conf can be downloaded from http://download.redis.io/redis-stable/sentinel.conf

port 26379

dir /tmp

sentinel monitor mymaster redis-master 6379 $SENTINEL_QUORUM

sentinel down-after-milliseconds mymaster $SENTINEL_DOWN_AFTER

sentinel parallel-syncs mymaster 1

sentinel failover-timeout mymaster $SENTINEL_FAILOVER

并以sentinel模式启动容器。其配置文件如下,其中包含了sentinel对名为"mymaster"的集群的监控配置

注意:

  • slave和sentinel容器初始化配置的Redis master节点主机名为"redis-master",这里我们利用了Docker容器连接的别名机制来连接master和sentinel/slave容器实例
  • 由于我们会部署3个Sentinel,我们把sentinel的"quorum"设置为2,只有两个sentinel同意故障切换,才会真正切换相应的redis master节点。

sudo yum install -y docker-compose

sudo docker-compose up -d

容我上个厕所

。。。。。。。。。。。

クリップボード

厕所回来都好了

docker ps

クリップボード

怎么只有2个哨兵,扩展到3个

docker-compose scale sentinel=3

クリップボード

顺大便扩容2个slave redis

docker-compose scale slave=2

クリップボード

看下目前跑的内容

docker ps|sort -k2

クリップボード

改一个测试redis宕机的脚本

vi test.sh

MASTER_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' rediscluster_master_1)

SLAVE_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' rediscluster_slave_1)

SENTINEL_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' rediscluster_sentinel_1)

echo Redis master: $MASTER_IP

echo Redis Slave: $SLAVE_IP

echo ------------------------------------------------

echo Initial status of sentinel

echo ------------------------------------------------

docker exec rediscluster_sentinel_1 redis-cli -p 26379 info Sentinel

現在のマスターであるエコー

ドッキングウィンドウのexec rediscluster_sentinel_1のRedis-CLI -p 26379 SENTINELのget-マスター-addrに名前によるmymaster

エコー - - - - - - - - - - - - - - - - - - - - - - - -

エコー停止Redisのマスター

ドッキングウィンドウポーズrediscluster_master_1

10秒間のエコー待ち

スリープ10

センチネルのエコー現在INFOMATION

ドッキングウィンドウのexec rediscluster_sentinel_1のRedis-CLI -p 26379情報センチネル

現在のマスターであるエコー

ドッキングウィンドウのexec rediscluster_sentinel_1のRedis-CLI -p 26379 SENTINELのget-マスター-addrに名前によるmymaster

エコー - - - - - - - - - - - - - - - - - - - - - - - -

エコー再起動Redisのマスター

ドッキングウィンドウ一時停止を解除rediscluster_master_1

睡眠5

センチネルのエコー現在INFOMATION

ドッキングウィンドウのexec rediscluster_sentinel_1のRedis-CLI -p 26379情報センチネル

現在のマスターであるエコー

ドッキングウィンドウのexec rediscluster_sentinel_1のRedis-CLI -p 26379 SENTINELのget-マスター-addrに名前によるmymaster

./test.sh

これは、Redisのマスタースイッチを発見しました。

クリップボード


しかし、ホスト3とは、三のセンチネルは、高可用性と考えることができないRedisの、およびホストの異なる複数の領域を展開するセンチネル必要性のRedis

おすすめ

転載: blog.51cto.com/433266/2468265