古いバージョンをアンインストール古いバージョンのドッキングウィンドウをアンインストールします
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