2016-04-04 19 views
2

Nach dem Ziehen alle meine Haare. Beim Versuch, ein Docker-Overlay-Netzwerk auf einem 3-Knoten-CentOS7-Schwarmcluster zu installieren, benötige ich bitte etwas Hilfe.Docker Overlay Networking Centos7

1 - Verbesserte Kernel auf allen Knoten 4.5.0-1.el7.elrepo.x86_64
2 - Docker Version: Docker Version 1.10.3, bauen 20f81dd (auf allen Knoten identisch) Docker info:

Filters: health, port, dependency, affinity, constraint<br> 
Nodes: 3<br> 
docker1: 192.168.1.231:2375<br> 
    └ Status: Healthy<br> 
    └ Containers: 5<br> 
    └ Reserved CPUs: 0/1<br> 
    └ Reserved Memory: 0 B/2.033 GiB<br> 
    └ Labels: executiondriver=native-0.2, kernelversion=4.5.0-1.el7.elrepo.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper<br> 
    └ Error: (none)<br> 
    └ UpdatedAt: 2016-04-04T03:16:04Z<br> 
docker2: 192.168.1.35:2375<br> 
    └ Status: Healthy<br> 
    └ Containers: 3<br> 
    └ Reserved CPUs: 0/1<br> 
    └ Reserved Memory: 0 B/2.033 GiB<br> 
    └ Labels: executiondriver=native-0.2, kernelversion=4.5.0-1.el7.elrepo.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper<br> 
    └ Error: (none)<br> 
    └ UpdatedAt: 2016-04-04T03:16:12Z<br> 
docker3: 192.168.1.36:2375<br> 
    └ Status: Healthy<br> 
    └ Containers: 2<br> 
    └ Reserved CPUs: 0/1<br> 
    └ Reserved Memory: 0 B/2.033 GiB<br> 
    └ Labels: executiondriver=native-0.2, kernelversion=4.5.0-1.el7.elrepo.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper<br> 
    └ Error: (none)<br> 
    └ UpdatedAt: 2016-04-04T03:16:20Z<br> 
Plugins:<br> 
Volume:<br> 
Network:<br> 
Kernel Version: 4.5.0-1.el7.elrepo.x86_64<br> 
Operating System: linux<br> 
Architecture: amd64<br> 
CPUs: 3<br> 
Total Memory: 6.099 GiB<br> 
Name: 21131682ca99<br> 

das Overlay-Netzwerk erstellen funktioniert

docker Netzwerk -d Overlay --subnet = 10.10.10.0/24 RED

Dann erstellen Sie zwei Testbehälter, eine auf jeder schaffen d ocker Knoten:

docker1 
docker run -itd --name container1 --net RED busybox<br> 
docker2 
docker run -itd --name container2 --net RED busybox<br> 

prüfen Netzwerk:

docker -H :4000 network inspect RED 
[ 
    { 
     "Name": "RED", 
     "Id": <br>"f64fcb769bba4a4b0d709599e9670657ee2cba3c98ca031909bc3967b6085867", 
     "Scope": "global", 
     "Driver": "overlay", 
     "IPAM": { 
      "Driver": "default", 
      "Options": null, 
      "Config": [ 
       { 
        "Subnet": "10.10.10.0/24" 
       } 
      ] 
     }, 
     "Containers": { 
      "1371c2fec957fe2ecd9d9d9dcf21492e63ef497c662a4b7eee7e8170738875b2": { 
       "Name": "container1", 
       "EndpointID": "e1e5d0d0c794da9f7a9054e0012bb184b10501c4cdd537193608a38bafa1ee00", 
       "MacAddress": "02:42:0a:0a:0a:02", 
       "IPv4Address": "10.10.10.2/24", 
       "IPv6Address": "" 
      } 
    "489c7963b7484041a7ef7647b7383a69dfdde8eb416e0a26aa41a023e154ab5f": { 
       "Name": "container2", 
       "EndpointID": "3d3afb54922d4b904056fc637e7f76cbfe632230a730860ecde88e12ec9f16f2", 
       "MacAddress": "02:42:0a:0a:0a:03", 
       "IPv4Address": "10.10.10.3/24", 
       "IPv6Address": "" 

Ich bin nicht in der Lage von einem Behälter in einen anderen in den verschiedenen Hosts ping. Es funktioniert natürlich, wenn beide Container auf demselben Host sind. Irgendwelche Hilfe/Vorschläge bitte.

+0

Sie sollten eine Perücke tragen. Vielleicht kannst du es aus den Haaren machen, die du herausgezogen hast. –

+0

Können Sie weitere Details zu Ihrer Einrichtung angeben? Wie haben Sie die Cluster konfiguriert und welchen Speicher verwenden Sie? –

+1

Haben Sie versucht, anstelle des Pingens eine Verbindung zu einem Port des anderen Containers herzustellen, von dem Sie wissen, dass er erreichbar sein sollte? Es ist möglich, dass Ping in einem Overlay-Netzwerk nicht funktioniert, aber normale IP-Verbindungen (z. B. http über TCP) tun. –

Antwort

2

Vergessen Sie nicht, dass ein Mehrmaschinen-Overlay-Netzwerk voraussetzt, dass Sie einen Schlüssel/Wert-Speicher benötigen, wie ich in "How to make Docker container accessible to other network machines through IP?" und in this tutorial gezeigt habe.

kv store

Das Ihren Docker Dämon bedeutet muss auf diesen Schlüssel Wertspeicher mit einer Referenz gestartet werden.

Siehe "Swarm and container networks" auch:

Multi-Host-Netzwerke benötigen einen Schlüssel-Wert-Speicher.
Der Schlüssel/Wert-Speicher enthält Informationen über den Netzwerkstatus, einschließlich Erkennung, Netzwerke, Endpunkte, IP-Adressen und mehr.

Sie konfigurieren den Docker Engine-Daemon für die Verwendung dieses Informationsspeichers.
Zwei erforderliche Parameter, --cluster-store und --cluster-advertise, beziehen sich auf Ihren Schlüssel/Wert-Speicherserver.

+0

Hallo. Ja, ich habe die Konfiguration /etc/systemd/system/docker.service.d/docker.conf auf den Consul für den Cluster gesetzt '[Service] ExecStart = ExecStart =/usr/bin/docker Dämon -H fd:// -H tcp: //192.168.1.35: 2375 --cluster-store = consul: //192.168.1.231: 8500 --cluster-advert = 192.168.1.35: 2375' – KeithW

+0

Wenn der kv-store nicht läuft Wenn Sie versuchen, das Overlay-Netzwerk zu erstellen, erhalten Sie einen Fehler, wenn Sie versuchen, das Overlay-Netzwerk zu erstellen. Sie würden das Overlay-Netzwerk sicherlich nicht einrichten, aber es hätte Kommunikationsprobleme. –