mirror of
https://gitee.com/kennylee/docker.git
synced 2024-11-29 18:38:34 +08:00
完善redis-ha测试环境
This commit is contained in:
parent
625c8d3b32
commit
0dd16de38d
@ -35,4 +35,8 @@ There is also an official Go client implementation in the client directory. See
|
||||
|
||||
see also https://hub.docker.com/r/google/cadvisor-canary/
|
||||
|
||||
-----
|
||||
|
||||
注意修改本地映射的 `--volume=/var/lib/docker/:/var/lib/docker:ro`
|
||||
|
||||
|
||||
|
@ -24,3 +24,8 @@ xpack.monitoring.enabled: false
|
||||
xpack.ml.enabled: false
|
||||
xpack.graph.enabled: false
|
||||
xpack.watcher.enabled: false
|
||||
|
||||
http.cors.enabled : true
|
||||
http.cors.allow-origin : "*"
|
||||
http.cors.allow-methods : OPTIONS, HEAD, GET, POST
|
||||
http.cors.allow-headers : X-Requested-With, Content-Type, Content-Length
|
||||
|
3
logstash-jdbc-es/README.md
Normal file
3
logstash-jdbc-es/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# ElasticSearch+Logstash JDBC同步-实现搜索引擎功能
|
||||
|
||||
|
3
redis/conf-ha/Dockerfile-master
Normal file
3
redis/conf-ha/Dockerfile-master
Normal file
@ -0,0 +1,3 @@
|
||||
FROM registry.cn-hangzhou.aliyuncs.com/kennylee/redis:3.2
|
||||
|
||||
COPY redis-master.conf /usr/local/etc/redis/redis.conf
|
3
redis/conf-ha/Dockerfile-sentinel
Normal file
3
redis/conf-ha/Dockerfile-sentinel
Normal file
@ -0,0 +1,3 @@
|
||||
FROM registry.cn-hangzhou.aliyuncs.com/kennylee/redis:3.2
|
||||
|
||||
COPY sentinel.conf /usr/local/etc/redis/sentinel.conf
|
3
redis/conf-ha/Dockerfile-slave
Normal file
3
redis/conf-ha/Dockerfile-slave
Normal file
@ -0,0 +1,3 @@
|
||||
FROM registry.cn-hangzhou.aliyuncs.com/kennylee/redis:3.2
|
||||
|
||||
COPY redis-slave1.conf /usr/local/etc/redis/redis.conf
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,198 +1,14 @@
|
||||
# Example sentinel.conf
|
||||
|
||||
# *** IMPORTANT ***
|
||||
#
|
||||
# By default Sentinel will not be reachable from interfaces different than
|
||||
# localhost, either use the 'bind' directive to bind to a list of network
|
||||
# interfaces, or disable protected mode with "protected-mode no" by
|
||||
# adding it to this configuration file.
|
||||
#
|
||||
# Before doing that MAKE SURE the instance is protected from the outside
|
||||
# world via firewalling or other means.
|
||||
#
|
||||
# For example you may use one of the following:
|
||||
#
|
||||
# bind 127.0.0.1 192.168.1.1
|
||||
#
|
||||
# protected-mode no
|
||||
|
||||
# port <sentinel-port>
|
||||
# The port that this sentinel instance will run on
|
||||
port 26379
|
||||
dir /tmp
|
||||
protected-mode no
|
||||
sentinel monitor mymaster 172.16.238.10 6379 3
|
||||
sentinel down-after-milliseconds mymaster 30000
|
||||
sentinel parallel-syncs mymaster 1
|
||||
sentinel failover-timeout mymaster 180000
|
||||
|
||||
# sentinel announce-ip <ip>
|
||||
# sentinel announce-port <port>
|
||||
#
|
||||
# The above two configuration directives are useful in environments where,
|
||||
# because of NAT, Sentinel is reachable from outside via a non-local address.
|
||||
#
|
||||
# When announce-ip is provided, the Sentinel will claim the specified IP address
|
||||
# in HELLO messages used to gossip its presence, instead of auto-detecting the
|
||||
# local address as it usually does.
|
||||
#
|
||||
# Similarly when announce-port is provided and is valid and non-zero, Sentinel
|
||||
# will announce the specified TCP port.
|
||||
#
|
||||
# The two options don't need to be used together, if only announce-ip is
|
||||
# provided, the Sentinel will announce the specified IP and the server port
|
||||
# as specified by the "port" option. If only announce-port is provided, the
|
||||
# Sentinel will announce the auto-detected local IP and the specified port.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# sentinel announce-ip 1.2.3.4
|
||||
|
||||
# dir <working-directory>
|
||||
# Every long running process should have a well-defined working directory.
|
||||
# For Redis Sentinel to chdir to /tmp at startup is the simplest thing
|
||||
# for the process to don't interfere with administrative tasks such as
|
||||
# unmounting filesystems.
|
||||
dir "/tmp"
|
||||
|
||||
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
|
||||
#
|
||||
# Tells Sentinel to monitor this master, and to consider it in O_DOWN
|
||||
# (Objectively Down) state only if at least <quorum> sentinels agree.
|
||||
#
|
||||
# Note that whatever is the ODOWN quorum, a Sentinel will require to
|
||||
# be elected by the majority of the known Sentinels in order to
|
||||
# start a failover, so no failover can be performed in minority.
|
||||
#
|
||||
# Slaves are auto-discovered, so you don't need to specify slaves in
|
||||
# any way. Sentinel itself will rewrite this configuration file adding
|
||||
# the slaves using additional configuration options.
|
||||
# Also note that the configuration file is rewritten when a
|
||||
# slave is promoted to master.
|
||||
#
|
||||
# Note: master name should not include special characters or spaces.
|
||||
# The valid charset is A-z 0-9 and the three characters ".-_".
|
||||
sentinel myid 3819ea1ae43e1a64cd0020cae5c44380cc1b2ff1
|
||||
|
||||
# sentinel auth-pass <master-name> <password>
|
||||
#
|
||||
# Set the password to use to authenticate with the master and slaves.
|
||||
# Useful if there is a password set in the Redis instances to monitor.
|
||||
#
|
||||
# Note that the master password is also used for slaves, so it is not
|
||||
# possible to set a different password in masters and slaves instances
|
||||
# if you want to be able to monitor these instances with Sentinel.
|
||||
#
|
||||
# However you can have Redis instances without the authentication enabled
|
||||
# mixed with Redis instances requiring the authentication (as long as the
|
||||
# password set is the same for all the instances requiring the password) as
|
||||
# the AUTH command will have no effect in Redis instances with authentication
|
||||
# switched off.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
|
||||
|
||||
# sentinel down-after-milliseconds <master-name> <milliseconds>
|
||||
#
|
||||
# Number of milliseconds the master (or any attached slave or sentinel) should
|
||||
# be unreachable (as in, not acceptable reply to PING, continuously, for the
|
||||
# specified period) in order to consider it in S_DOWN state (Subjectively
|
||||
# Down).
|
||||
#
|
||||
# Default is 30 seconds.
|
||||
sentinel monitor master-1 172.16.238.10 6379 1
|
||||
|
||||
# sentinel parallel-syncs <master-name> <numslaves>
|
||||
#
|
||||
# How many slaves we can reconfigure to point to the new slave simultaneously
|
||||
# during the failover. Use a low number if you use the slaves to serve query
|
||||
# to avoid that all the slaves will be unreachable at about the same
|
||||
# time while performing the synchronization with the master.
|
||||
sentinel config-epoch master-1 2
|
||||
|
||||
# sentinel failover-timeout <master-name> <milliseconds>
|
||||
#
|
||||
# Specifies the failover timeout in milliseconds. It is used in many ways:
|
||||
#
|
||||
# - The time needed to re-start a failover after a previous failover was
|
||||
# already tried against the same master by a given Sentinel, is two
|
||||
# times the failover timeout.
|
||||
#
|
||||
# - The time needed for a slave replicating to a wrong master according
|
||||
# to a Sentinel current configuration, to be forced to replicate
|
||||
# with the right master, is exactly the failover timeout (counting since
|
||||
# the moment a Sentinel detected the misconfiguration).
|
||||
#
|
||||
# - The time needed to cancel a failover that is already in progress but
|
||||
# did not produced any configuration change (SLAVEOF NO ONE yet not
|
||||
# acknowledged by the promoted slave).
|
||||
#
|
||||
# - The maximum time a failover in progress waits for all the slaves to be
|
||||
# reconfigured as slaves of the new master. However even after this time
|
||||
# the slaves will be reconfigured by the Sentinels anyway, but not with
|
||||
# the exact parallel-syncs progression as specified.
|
||||
#
|
||||
# Default is 3 minutes.
|
||||
sentinel leader-epoch master-1 2
|
||||
|
||||
# SCRIPTS EXECUTION
|
||||
#
|
||||
# sentinel notification-script and sentinel reconfig-script are used in order
|
||||
# to configure scripts that are called to notify the system administrator
|
||||
# or to reconfigure clients after a failover. The scripts are executed
|
||||
# with the following rules for error handling:
|
||||
#
|
||||
# If script exits with "1" the execution is retried later (up to a maximum
|
||||
# number of times currently set to 10).
|
||||
#
|
||||
# If script exits with "2" (or an higher value) the script execution is
|
||||
# not retried.
|
||||
#
|
||||
# If script terminates because it receives a signal the behavior is the same
|
||||
# as exit code 1.
|
||||
#
|
||||
# A script has a maximum running time of 60 seconds. After this limit is
|
||||
# reached the script is terminated with a SIGKILL and the execution retried.
|
||||
|
||||
# NOTIFICATION SCRIPT
|
||||
#
|
||||
# sentinel notification-script <master-name> <script-path>
|
||||
#
|
||||
# Call the specified notification script for any sentinel event that is
|
||||
# generated in the WARNING level (for instance -sdown, -odown, and so forth).
|
||||
# This script should notify the system administrator via email, SMS, or any
|
||||
# other messaging system, that there is something wrong with the monitored
|
||||
# Redis systems.
|
||||
#
|
||||
# The script is called with just two arguments: the first is the event type
|
||||
# and the second the event description.
|
||||
#
|
||||
# The script must exist and be executable in order for sentinel to start if
|
||||
# this option is provided.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# sentinel notification-script mymaster /var/redis/notify.sh
|
||||
|
||||
# CLIENTS RECONFIGURATION SCRIPT
|
||||
#
|
||||
# sentinel client-reconfig-script <master-name> <script-path>
|
||||
#
|
||||
# When the master changed because of a failover a script can be called in
|
||||
# order to perform application-specific tasks to notify the clients that the
|
||||
# configuration has changed and the master is at a different address.
|
||||
#
|
||||
# The following arguments are passed to the script:
|
||||
#
|
||||
# <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
|
||||
#
|
||||
# <state> is currently always "failover"
|
||||
# <role> is either "leader" or "observer"
|
||||
#
|
||||
# The arguments from-ip, from-port, to-ip, to-port are used to communicate
|
||||
# the old address of the master and the new address of the elected slave
|
||||
# (now a master).
|
||||
#
|
||||
# This script should be resistant to multiple invocations.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# sentinel client-reconfig-script mymaster /var/redis/reconfig.sh
|
||||
# Generated by CONFIG REWRITE
|
||||
sentinel known-slave master-1 172.16.238.11 6379
|
||||
sentinel current-epoch 2
|
||||
|
||||
|
@ -10,24 +10,24 @@ networks:
|
||||
|
||||
services:
|
||||
&master redis-master:
|
||||
image: &image registry.cn-hangzhou.aliyuncs.com/kennylee/redis:3.2
|
||||
build:
|
||||
context: ./conf-ha/
|
||||
dockerfile: Dockerfile-master
|
||||
container_name: "master"
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- ./conf-ha/redis-master.conf:/usr/local/etc/redis/redis.conf
|
||||
restart: on-failure
|
||||
command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
|
||||
networks:
|
||||
*network :
|
||||
ipv4_address: 172.16.238.10
|
||||
redis-slave-1:
|
||||
image: *image
|
||||
build:
|
||||
context: ./conf-ha/
|
||||
dockerfile: Dockerfile-slave
|
||||
container_name: "slave"
|
||||
ports:
|
||||
- "6380:6379"
|
||||
volumes:
|
||||
- ./conf-ha/redis-slave1.conf:/usr/local/etc/redis/redis.conf
|
||||
restart: on-failure
|
||||
command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
|
||||
networks:
|
||||
@ -35,20 +35,64 @@ services:
|
||||
ipv4_address: 172.16.238.11
|
||||
depends_on:
|
||||
- *master
|
||||
redis-sentinel:
|
||||
image: *image
|
||||
container_name: "sentinel"
|
||||
redis-sentinel-1:
|
||||
build:
|
||||
context: ./conf-ha/
|
||||
dockerfile: Dockerfile-sentinel
|
||||
container_name: "s1"
|
||||
ports:
|
||||
- "26379:26379"
|
||||
volumes:
|
||||
- ./conf-ha/sentinel.conf:/usr/local/etc/redis/sentinel.conf
|
||||
restart: on-failure
|
||||
command: [ "redis-sentinel", "/usr/local/etc/redis/sentinel.conf" ]
|
||||
networks:
|
||||
*network :
|
||||
ipv4_address: 172.16.238.20
|
||||
ipv4_address: 172.16.238.21
|
||||
depends_on:
|
||||
- *master
|
||||
redis-sentinel-2:
|
||||
build:
|
||||
context: ./conf-ha/
|
||||
dockerfile: Dockerfile-sentinel
|
||||
container_name: "s2"
|
||||
ports:
|
||||
- "26380:26379"
|
||||
restart: on-failure
|
||||
command: [ "redis-sentinel", "/usr/local/etc/redis/sentinel.conf" ]
|
||||
networks:
|
||||
*network :
|
||||
ipv4_address: 172.16.238.22
|
||||
depends_on:
|
||||
- *master
|
||||
redis-sentinel-3:
|
||||
build:
|
||||
context: ./conf-ha/
|
||||
dockerfile: Dockerfile-sentinel
|
||||
container_name: "s3"
|
||||
ports:
|
||||
- "26381:26379"
|
||||
restart: on-failure
|
||||
command: [ "redis-sentinel", "/usr/local/etc/redis/sentinel.conf" ]
|
||||
networks:
|
||||
*network :
|
||||
ipv4_address: 172.16.238.23
|
||||
depends_on:
|
||||
- *master
|
||||
redis-sentinel-4:
|
||||
build:
|
||||
context: ./conf-ha/
|
||||
dockerfile: Dockerfile-sentinel
|
||||
container_name: "s4"
|
||||
ports:
|
||||
- "26382:26379"
|
||||
restart: on-failure
|
||||
command: [ "redis-sentinel", "/usr/local/etc/redis/sentinel.conf" ]
|
||||
networks:
|
||||
*network :
|
||||
ipv4_address: 172.16.238.24
|
||||
depends_on:
|
||||
- *master
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user