Docker Version: Version 17.03.0-ce-mac2 (15654)
OS: macOS Sierrakeepalived/HAProxy Docker-compose Verbindung abgelehnt
ich eine HA-Umgebung zu installieren versuchen mit docker- komponieren. Ein kurzer Überblick darüber, wie die Topologie aussehen könnte, besteht darin, dass mindestens zwei Instanzen von keepalived und haproxy ausgeführt werden. Die haproxy wird vor mehreren Servern sein. In diesem Artikel verweise ich jedoch nur auf eine Instanz von keepalived, haproxy und server zur Vereinfachung.
Das Problem, das ich gerade habe, ist, dass ich Verkehr zu der virtuellen IP-Adresse nicht leiten kann, die ich zu Keepalived zuweisen. Zu Testzwecken in meiner Docker-Compose-Datei habe ich einen Client, der versucht, über den VIP zu kommunizieren, und dies führt zu einem Verbindungsabbruch-Fehler.
dial tcp 192.168.99.120:80: getsockopt: connection refused
Allerdings, wenn ich direkt auf Haproxy zu erreichen gibt es kein Problem mit der Verbindung. Außerdem kann ich direkt vom Host zum Haproxy kommunizieren, aber nicht weiter leben.
Ich habe das Gefühl, das hat etwas damit zu tun, wie Netzwerke in Docker arbeiten, aber ich bin ziemlich neu in der Verwendung von Docker und konnte das Problem nicht aufspüren. Jede Hilfe würde sehr geschätzt werden.
Meine Konfigurationsdateien sind alle unten enthalten.
Andockfensters-compose.yml:
version: '2'
services:
keepalived1:
image: neoassist/docker-keepalived:latest
container_name: keepalived1
volumes:
- "./keepalived.conf:/etc/keepalived/keepalived.conf"
environment:
- VIRTUAL_IP=192.168.99.120
- VIRTUAL_MASK=24
- VRID=1
- CHECK_IP=any
- CHECK_PORT=80
- INTERFACE=eth0
entrypoint: sh -c 'sleep 4;/usr/bin/keepalived.sh'
network_mode: "host"
cap_drop:
- NET_ADMIN
privileged: true
haproxy1:
image: haproxy:latest
container_name: haproxy1
ports:
- 7054:7054
volumes:
- "./haproxy1.cfg:/usr/local/etc/haproxy/haproxy.cfg"
environment:
- EXPOSE=7054
links:
- fabric-ca-server1:fabric-ca-server1
fabric-ca-server1:
image: hyperledger/fabric-ca
container_name: fabric-ca-server1
ports:
- 7051:7054
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
volumes:
- "./fabric-ca-server:/etc/hyperledger/fabric-ca-server"
command: sh -c "fabric-ca-server start -d -b admin:adminpw"
admin-client:
image: hyperledger/fabric-ca
container_name: admin-client
network_mode: "host"
command: sh -c "sleep 14;fabric-ca-client enroll -d -u http://admin:[email protected]"
haproxy.cfg
global
maxconn 4096
defaults
mode http
maxconn 2000
timeout connect 5000
timeout client 50000
timeout server 50000
frontend server
bind *:7054
mode tcp
default_backend server_cluster
backend server_cluster
balance source
mode tcp
option tcpka
server server1 fabric-ca-server1:7054
keepalived.conf
vrrp_script haproxy {
script "pidof haproxy"
interval 2
weight 2
}
vrrp_instance haproxy_1 {
virtual_router_id 1
advert_int 1
interface eth0
nopreempt
state BACKUP
virtual_ipaddress {
192.168.99.120/24 dev eth0
}
track_script {
haproxy
}
}
ifconfig von meinem mac hat:
vboxnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00
inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255