Ich bin auf der Suche nach Hochverfügbarkeit Redis auf einem CoreOS-Cluster, und ich brauche ein Redis Sentinel Docker-Image (d. H. Dockerfile), die funktioniert. Ich habe genügend Informationen/Expertise gesammelt, um eine zu erstellen (denke ich) ... aber mein begrenztes Wissen/meine Erfahrung mit fortgeschrittener Vernetzung ist die einzige Sache, die mich davon abhält, sie aufzubauen und zu teilen.Redis Sentinel Docker Bild/Dockerfile
Kann jemand, der ein Experte hier ist, mir helfen, eine Redis Sentinel Dockerfile (keine existiert gerade) zu entwickeln? Die Redis/Docker-Community würde davon wirklich profitieren.
Hier ist das allgemeinere Thema und Kontext: https://github.com/antirez/redis/pull/1908
Ich denke, die Lösung hier ist speziell: https://github.com/antirez/redis/pull/1908#issuecomment-54380876
Hier ist die Dockerfile Ich habe mit ... aber wenn man den Faden oben gelesen Du wirst meine Kommentare (Joshula) sehen ... es fehlen die Netzwerk-Fixes, über die Mattsta spricht. Beachten Sie, dass alle Konfigurationseinstellungen in der Datei sentinel.conf zur Laufzeit über die Befehlszeile (daher ENTRYPOINT) festgelegt werden, da ich dies auf dem coreOS verwende.
# Pull base image.
FROM dockerfile/ubuntu:latest
# Install Redis.
RUN \
cd /tmp && \
wget http://download.redis.io/redis-stable.tar.gz && \
tar xvzf redis-stable.tar.gz && \
cd redis-stable && \
make && \
make install && \
cp -f src/redis-sentinel /usr/local/bin && \
mkdir -p /etc/redis && \
cp -f *.conf /etc/redis && \
rm -rf /tmp/redis-stable* && \
sed -i 's/^\(bind .*\)$/# \1/' /etc/redis/redis.conf && \
sed -i 's/^\(daemonize .*\)$/# \1/' /etc/redis/redis.conf && \
sed -i 's/^\(dir .*\)$/# \1\ndir \/data/' /etc/redis/redis.conf && \
sed -i 's/^\(logfile .*\)$/# \1/' /etc/redis/redis.conf
# Define mountable directories.
VOLUME ["/data"]
# Define working directory.
WORKDIR /data
# Expose ports.
EXPOSE 26379
# Define default command.
ENTRYPOINT redis-sentinel /etc/redis/sentinel.conf
Hey, Joshula - Ich habe Ihre Docker-Datei in ein [Skript] integriert (https: // Github .com/mdevilliers/docker-redescluster), die einen Master/Slave-Cluster mit Sentinel-Konfiguration einrichtet. Großartig, wenn Sie es sich anschauen und Feedback geben könnten? – markdevilliers
Hallo Mark, das sieht ziemlich gut aus, ein paar Notizen, die man nur im Kopf behalten sollte: Die announce-ip config wurde in der Version +2.8.15 hinzugefügt (also seien Sie sich der Versionen bewusst). Bitte stellen Sie sicher, dass 'announce-ip' in einer Produktionsumgebung (in der sich alle Sentinels auf verschiedenen physischen Maschinen befinden) auf die IP des physischen Host-Rechners referenziert. Außerdem habe ich (und einige andere Leute haben bestätigt) Leistungsprobleme, wenn Redis in einem Container ausgeführt wird - speziell um die zusätzlichen Netzwerkebenen/Brücken, die Docker einführt ... – joshula
Also, ich habe entschieden, Redis zu installieren/laufen zu lassen (in Produktion)) auf einer physischen Maschine (wie Antirez und Mattsta in den obigen Beiträgen sagten, Redis und Sentinel sind noch nicht vollständig für eine Docker-artige Umgebung ausgelegt/optimiert. – joshula