2016-07-29 39 views
-1

由名容器我有3臺主機上運行的有羣簇,使用覆蓋網絡在它搬運工1.11泊塢窗網:失敗ADRESS多主機網絡

機都採用boot2docker和VirtualBox的開始:

docker-machine create -d virtualbox af-consul 
docker run -d -p "8500:8500" -h "consul" progrium/consul -server -bootstrap 

docker-machine create -d virtualbox --virtualbox-memory 4096 \ 
--swarm \ 
--swarm-discovery="consul://$(docker-machine ip af-consul):8500" \ 
--engine-opt="cluster-store=consul://$(docker-machine ip af-consul):8500" \ 
--engine-opt="cluster-advertise=eth0:2376" af-repo 

docker-machine create -d virtualbox --virtualbox-memory 4096 --swarm --swarm-master \ 
--swarm-discovery="consul://$(docker-machine ip af-consul):8500" \ 
--engine-opt="cluster-store=consul://$(docker-machine ip af-consul):8500" \ 
--engine-opt="cluster-advertise=eth0:2376" af-jenkins 

網絡創建這樣的:

eval $(docker-machine env --swarm af-jenkins) 
docker network create -d overlay appfactory_overlay 

然後容器的部署使用的是完成撰寫:

version: '2' 
jenkins: 
    user: root 
    restart: always 
    image: af-repo:5000/jenkins:latest 
    # build: ./jenkins 
    container_name: jenkins 
    ports: 
     - "8080:8080" 
     - "50000:50000" 
    networks: 
     - appfactory_overlay 
    volumes_from: 
     - container:jenkins_data:rw 
    environment: 
     - "constraint:node==af-jenkins" 
    external_links: 
     - jenkins_data 

    docker_registry: 
     user: root 
     container_name: docker_registry 
     restart: always 
     build: ./ 
     ports: 
      - 5000:5000 
     networks: 
      - appfactory_overlay 
     environment: 
      REGISTRY_HTTP_TLS_CERTIFICATE: /etc/ssl/certs/domain.crt 
      REGISTRY_HTTP_TLS_KEY: /etc/ssl/certs/domain.key 
      constraint: "node==af-repo" 

    reports: 
     user: root 
     restart: always 
     image: httpd:2.4 
     container_name: reports 
     ports: 
     - "2222:22" 
     - "80:80" 
     volumes_from: 
      - container:repository_data:rw 
     networks: 
      - appfactory_overlay 
     environment: 
      - "constraint:node==af-repo" 

networks: 
    appfactory_overlay: 
    external: 
     name: appfactory_overlay 

當我ssh到AF-回購和EXEC在報告容器/斌/慶典我可以ping docker_registry容器,它是在同一主機上:

[email protected]:/usr/local/apache2# ping docker_registry 
PING docker_registry (10.0.0.2): 56 data bytes 
64 bytes from 10.0.0.2: icmp_seq=6 ttl=64 time=0.157 ms 
64 bytes from 10.0.0.2: icmp_seq=7 ttl=64 time=0.126 ms 
64 bytes from 10.0.0.2: icmp_seq=8 ttl=64 time=0.127 ms 
64 bytes from 10.0.0.2: icmp_seq=9 ttl=64 time=0.132 ms 

但是,當我嘗試ping詹金斯容器,這是另一臺主機上:

[email protected]:/usr/local/apache2# ping jenkins 
PING jenkins (10.0.0.5): 56 data bytes 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 
92 bytes from 74068f00ffdb (10.0.0.4): Destination Host Unreachable 

網絡似乎是正確的,當我檢查它:

[email protected]:~$ docker network inspect appfactory_overlay 
[ 
    { 
     "Name": "appfactory_overlay", 
     "Id": "2cedd8b85bd302649123c3313e6e2beb5ddf3dc8265851fda1318f4b048dd795", 
     "Scope": "global", 
     "Driver": "overlay", 
     "EnableIPv6": false, 
     "IPAM": { 
      "Driver": "default", 
      "Options": {}, 
      "Config": [ 
       { 
        "Subnet": "10.0.0.0/24", 
        "Gateway": "10.0.0.1/24" 
       } 
      ] 
     }, 
     "Internal": false, 
     "Containers": { 
      "74068f00ffdb19135b605eb84ff6a23887a44dd03a3f9645a130fb03ad074312": { 
       "Name": "reports", 
       "EndpointID": "78503be0001b75b60e16f788009c1d5bb573011582ca828fbc3acd8ab3c67459", 
       "MacAddress": "02:42:0a:00:00:04", 
       "IPv4Address": "10.0.0.4/24", 
       "IPv6Address": "" 
      }, 
      "ep-eb61b033ae6e073c2634d36a8511434bbe26615e9c18df1c7545515b4f3a8c05": { 
       "Name": "web", 
       "EndpointID": "eb61b033ae6e073c2634d36a8511434bbe26615e9c18df1c7545515b4f3a8c05", 
       "MacAddress": "02:42:0a:00:00:03", 
       "IPv4Address": "10.0.0.3/24", 
       "IPv6Address": "" 
      }, 
      "ep-ee9feed770ef9f7684981e848a41de6bd67632f716672f8ed279dddc15afcc08": { 
       "Name": "jenkins", 
       "EndpointID": "ee9feed770ef9f7684981e848a41de6bd67632f716672f8ed279dddc15afcc08", 
       "MacAddress": "02:42:0a:00:00:05", 
       "IPv4Address": "10.0.0.5/24", 
       "IPv6Address": "" 
      }, 
      "fc125785613bf07202d2a0f39371394890bd04f7e5c4e34353ecc55e1e5d6b0b": { 
       "Name": "docker_registry", 
       "EndpointID": "6cf8d868c299d5b442abd5f370e1392a34585dede221cff19b95edb29baefaaa", 
       "MacAddress": "02:42:0a:00:00:02", 
       "IPv4Address": "10.0.0.2/24", 
       "IPv6Address": "" 
      } 
     }, 
     "Options": {}, 
     "Labels": {} 
    } 
] 

從af-jenkins做起時輸出是一樣的。 因此,據我所知,我的網絡根本不工作,因爲我從同一主機上的另一個容器ping容器的能力來自於爲這些容器自動創建的橋接網絡。

任何幫助,不勝感激:)

編輯:這裏是集羣信息輸出

 { AppFactory } master » docker info                                             /d/Alstom/AppFactory 
    Containers: 12 
    Running: 8 
    Paused: 0 
    Stopped: 4 
    Images: 27 
    Server Version: swarm/1.2.4 
    Role: primary 
    Strategy: spread 
    Filters: health, port, containerslots, dependency, affinity, constraint 
    Nodes: 3 
    af-jenkins: 192.168.99.102:2376 
     └ ID: BAG4:XIOG:JXLS:7UAO:JHFT:NOAY:OW35:L2RK:QV37:OQ2H:G5QN:KR4D 
     └ Status: Healthy 
     └ Containers: 4 (3 Running, 0 Paused, 1 Stopped) 
     └ Reserved CPUs: 0/1 
     └ Reserved Memory: 0 B/4.051 GiB 
     └ Labels: kernelversion=4.4.16-boot2docker, operatingsystem=Boot2Docker 1.12.0 (TCL 7.2); HEAD : e030bab - Fri Jul 29 00:29:14 UTC 2016, provider=virtualbox, storagedriver=aufs 
     └ UpdatedAt: 2016-07-30T10:15:40Z 
     └ ServerVersion: 1.12.0 
    af-repo: 192.168.99.101:2376 
     └ ID: 5U2Z:46IU:CRAG:V3S7:Q5WF:TESM:KBRN:H7L3:7LZD:H4DX:DTEC:WXNE 
     └ Status: Healthy 
     └ Containers: 6 (3 Running, 0 Paused, 3 Stopped) 
     └ Reserved CPUs: 0/1 
     └ Reserved Memory: 0 B/4.051 GiB 
     └ Labels: kernelversion=4.4.16-boot2docker, operatingsystem=Boot2Docker 1.12.0 (TCL 7.2); HEAD : e030bab - Fri Jul 29 00:29:14 UTC 2016, provider=virtualbox, storagedriver=aufs 
     └ UpdatedAt: 2016-07-30T10:15:45Z 
     └ ServerVersion: 1.12.0 
    af-web: 192.168.99.103:2376 
     └ ID: HJ7O:62JN:6RVT:4UKL:AAJ3:6VWU:2LGF:EIYC:CJAH:F4RJ:GNCF:J3TR 
     └ Status: Healthy 
     └ Containers: 2 (2 Running, 0 Paused, 0 Stopped) 
     └ Reserved CPUs: 0/1 
     └ Reserved Memory: 0 B/517.3 MiB 
     └ Labels: kernelversion=4.4.16-boot2docker, operatingsystem=Boot2Docker 1.12.0 (TCL 7.2); HEAD : e030bab - Fri Jul 29 00:29:14 UTC 2016, provider=virtualbox, storagedriver=aufs 
     └ UpdatedAt: 2016-07-30T10:15:18Z 
     └ ServerVersion: 1.12.0 
    Plugins: 
    Volume: 
    Network: 
    Swarm: 
    NodeID: 
    Is Manager: false 
    Node Address: 
    Security Options: 
    Kernel Version: 4.4.16-boot2docker 
    Operating System: linux 
    Architecture: amd64 
    CPUs: 3 
    Total Memory: 8.608 GiB 
    Name: 8759d85be147 
    Docker Root Dir: 
    Debug Mode (client): false 
    Debug Mode (server): false 
    WARNING: No kernel memory limit support 
+1

當使用docker-machine時,Virtualbox的「host only」接口是eth1,嘗試將您的cluster-advertise設置改爲使用eth1。 – slugonamission

+0

工程就像一個魅力!謝謝:) – Dealus

回答

0

當使用泊塢窗機,VirtualBox虛擬的「主機唯一的」接口eth1的,請嘗試更改集羣廣告設置使用eth1的來代替。 - slugonamission

謝謝。

0

我覺得,你的問題是,你是不是指向你docker CLI到集羣。在創建覆蓋網絡之前,您必須使用標記--swarm連接到羣集羣。

eval $(docker-machine env --swarm af-jenkins) 

如果這不是問題,讓我們知道了什麼是docker info命令的集羣中的輸出。

注意:使用docker 1.12.0可以簡化創建羣集的過程。

+0

可悲的是,這不是問題,我已經更新了我的問題,因爲網絡的創建與您的建議完全相同。還添加了af-jenkins swarm master的docker info輸出。 我對即將使用的docker 1.12瞭如指掌。 – Dealus