1. 程式人生 > >Kubernetes下的Redis主從配置架構

Kubernetes下的Redis主從配置架構

公司 doc style serve 打開 /etc/ -s spa 大堆

文章看了一大堆,但都是直接從各種地方直接拉master,slave鏡像,沒有交代這些鏡像如何構建出來的

好把,我這篇就講講這些master,slave鏡像如何做成.

先得找到一個標準的redis鏡像,比如docker pull index.tenxcloud.com/docker_library/redis:3.0(鏡像我沒驗證過,我是拿的公司的標準映像嘗試的)

然後從鏡像裏面把redis.conf拷貝出來。

在機器上構建一個目錄master:

裏面包含Dockerfile,redis-master.conf,run.sh

redis-master.conf和拷貝出來的redis.conf一致,除了一處修改

protected-mode no

Dockerfile為

FROM index.tenxcloud.com/docker_library/redis:3.0

COPY redis-master.conf /usr/local/etc/redis/redis.conf

COPY run.sh /run.sh

CMD [ "/run.sh" ]

run.sh腳本為

redis-server /usr/local/etc/redis/redis.conf --protected-mode no

通過下面構建出來master

docker build -t ericnie/redis-master:3.0  .

同樣建立一個redis-slave目錄,和master類似,有幾處不同,redis-slave.conf配置,打開slaveof

slaveof %master-ip% %master-port% 

run.sh為

sed -i "s/%master-ip%/${REDIS_MASTER_IP}/" /usr/local/etc/redis/redis.conf
sed -i "s/%master-port%/{REDIS_MASTER_PORT}/" /usr/local/etc/redis/redis.conf
redis-server /redis-slave/redis.conf --protected-mode no

${REDIS_MASTER_IP}和${REDIS_MASTER_PORT}為創建images的時候通過ENV變量帶入。

通過下面命令構建slave

docker build -t ericnie/redis-slave:3.0  .

Kubernetes下的Redis主從配置架構