사용 고정 표시기 빌드 레디 스 클러스터 환경

    우리는 빌드 자립에, 환경에 너무 만 테스트 환경을 임시 작업 테스트 및 레디 스 클러스터 환경을 사용하는 테스트가 필요하지만, 준비되지를 받았다. 호스트에 하드 타고 시작하고 싶어하지만, 서버가 나는 고정 표시기를 사용하기로 결정, 너무 많은 고통을하지 않았다. 다음은 빌드에 대한 자세한 단계입니다 :

기본 환경 정보

  기본 환경은 다음과 같습니다 :

CentOS는 리눅스 버전 1804년 5월 7일
도커 버전 18.09.4

  다음 작업은 루트가 아닌 사용자 경우, 명령이 앞에 추가해야, 루트 계정 작업입니다 sudo는

빌드 단계

  • 1, 다운로드 거울 레디 스

고정 표시기의 풀 레디 스

  당신이 지정된 버전을 당겨해야하는 경우가 지정되지 않은 경우, 레디 스 이후 버전 번호를 추가 할 필요, 최신 버전은 사용할 수있는 거울을 당겨 고정 표시기 검색 레디 스 미러를 검색

01 dockerSearchRedis.png

  로컬 미러를 확인, 명령 사용할 수있는 고정 표시기 이미지를

02ShowLocalImages.png

  • 2, 가상 네트워크 카드를 만들

  주로 네트워크 외부 통신 할 수 레디 스 클러스터를 들어, 가상 네트워크 카드를 작성, 일반적으로 브리지 모드에 사용됩니다.

고정 표시기 네트워크 레디 스 그물을 만들

  보기 고정 표시기 카드 정보는 명령 사용 고정 표시기 네트워크 LS를

03ShowDockerNetwork.png

  네트워크 세부 dockerr보기 명령 사용 레디 스 그물을 검사 고정 표시기 네트워크를

04InspectNICInfo.png

  • 3 프로파일 템플릿을 작성 레디 스

에서 mkdir -p / 홈 / 레디 스 클러스터
CD / 홈 / 레디 스 클러스터
정력 레디 스 - cluster.tmpl

在redis-cluster.tmpl中输入以下内容

port ${PORT}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.168.131
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

各节点解释如下所示:

  • port:节点端口,即对外提供通信的端口
  • cluster-enabled:是否启用集群
  • cluster-config-file:集群配置文件
  • cluster-node-timeout:连接超时时间
  • cluster-announce-ip:集群各节点IP地址
  • cluster-announce-port:集群节点映射端口
  • cluster-announce-bus-port:集群总线端口
  • appendonly:持久化模式

cluster-announce-ip:这个IP需要特别注意一下,如果要对外提供访问功能,需要填写宿主机的IP,如果填写docker分配的IP(172.x.x.x),可能会导致部分集群节点在跳转时失败。

  • 4、创建节点配置文件

  在redis-cluser中执行以下命令

for port in $(seq 8010 8015); \
do \
  mkdir -p ./${port}/conf  \
  && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
  && mkdir -p ./${port}/data; \
done

  验证上述命令执行的结果是否正确

05CheckConfigFile.png

06CheckRedisConf.png

  • 5、创建redis节点容器

  执行以下命令即可

for port in $(seq 8010 8015); \
do \
   docker run -it -d -p ${port}:${port} -p 1${port}:1${port} \
  --privileged=true -v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  --privileged=true -v /home/redis-cluster/${port}/data:/data \
  --restart always --name redis-${port} --net redis-net \
  --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
done

  验证容器是否创建成功

07CreateRedisContainers.png

  查看docker给每个节点分配的IP信息

08ShowInternalIP.png

  • 6、创建redis-cluster集群

  进入一个容器节点

docker exec -it redis-8010 bash

  在进入容器后,执行以下命令:

cd /usr/local/bin/

redis-cli --cluster create 192.168.168.131:8010 192.168.168.131:8011 192.168.168.131:8012 192.168.168.131:8013 192.168.168.131:8014 192.168.168.131:8015

出现选择提示信息,输入yes,结果如下所示:

09CreateRedisCluster.png

  • 7、连接redis-cluster,并添加数据到redis

在节点8010中输入以下命令

redis-cli -c -h 192.168.168.131 -p 8010

10SetValueForRedis.png

  • 8、验证集群是否可以任意地方访问

以下验证是基于Windows版本的redis。其下载地址如下:

https://github.com/microsoftarchive/redis/releases

在Windows中验证的结果如下所示:

11TestRedisCluster.png

搭建中遇到的问题

  • 1、所有都搭建完成后,在创建redis-cluster时一直报错

192.168.168.131:8010에서 레디 스에 연결하지 못했습니다 : 호스트에 어떤 경로를

这个原因是因为宿主机的防火墙未关,导致相应的端口被阻止,创建的时候临时关闭防火墙,后面再允许相应的端口即可。
  • 2. 성공적 레디 스 클러스터 생성 한 후, 당신은 성공적으로 연결,하지만 점점 값 수의 최종 출현으로 이어지는 점프에왔다 TTL 배기

-> 재전송은 슬롯 [15,495]가 172.18.0.7:8015에 위치한

这种情况通常是因为在前面写配置文件,将cluster-announce-ip写成了docker分配的IP,只需要将该IP换为宿主机的IP即可。

추가 참조

    빌드 과정에서 문제가 발생할 가능성이 후, 당신은 중지 또는 삭제 고정 표시기 컨테이너에 필요한 다음과 같은 명령을 사용할 수 있습니다

일괄 정지 고정 표시기 컨테이너 :

고정 표시기 PS -a | 그렙 -i "레디 스-801 *"| | AWK '{$ 1 인쇄}' xargs를 고정 표시기 정지

일괄 삭제 고정 표시기 컨테이너 :

고정 표시기 PS -a | 그렙 -i "레디 스-801 *"| | AWK '{$ 1 인쇄}' xargs를 고정 표시기 RM -f

배치 파일 삭제

RF RM은 801 {0..5} /conf/redis.conf

    이들은 고정 표시기 레디 스 클러스터 구조의 간단한 단계를 기반으로, 실제 적용 할 수있다 그렇게 간단하지, 기사는 참고 용입니다.

추천

출처www.cnblogs.com/surpassme/p/11832438.html