【问题标题】:curl from docker on cluster node to master node从集群节点上的 docker 卷曲到主节点
【发布时间】:2018-02-08 20:39:29
【问题描述】:

我有一个包含一个主节点和 3 个计算节点的集群。 节点 1 和 2 上的 docker 容器能够“卷曲”到主节点。 但是 node-3 因“连接被拒绝”而失败

我还能寻找什么?

更新

感谢@sxm1972,在列出“docker network ls”时发现了这个可能不需要的条目

f49b6c9541d2 docker_gwbridge 桥本地

我该如何摆脱它?

删除它使用: 码头工人网络 rm f49b6c9541d2 sudo service docker 重启

但这并没有解决卷曲问题

更新

然后查看/etc/hosts node3 包含意外的行:

192.168.1.1     079543e73dc7

其他节点的 IP 为 172.17.0.x

192.168.1.1是主节点的IP。

更新

node1 和 node2 主机上的 ifconfig 显示 172.17.0.x 用于 docker0 接口

node3 上的 ifconfig 显示 192.168.x.x:这似乎已损坏。

我可能无意中对 node3 IP 做了一些事情。我怎样才能恢复它?

更新

试过了

ip link del docker0
sudo service docker restart

主机 docker0 的 IP 似乎仍然是错误的

解决方案

感谢@sxm1972!以下工作:

sudo service docker stop
create/edit daemon.json from the link below setting bip to 172.17.0.1/16
ip link del docker0
sudo service docker restart

https://success.docker.com/article/How_do_I_configure_the_default_bridge_(docker0)_network_for_Docker_Engine_to_a_different_subnet

我现在可以从容器中“卷曲”

【问题讨论】:

    标签: linux docker curl containers connection-refused


    【解决方案1】:
    PS C:\Users\smallya> docker network ls
    NETWORK ID          NAME                DRIVER              SCOPE
    857787541f21        bridge              bridge              local
    f3de5219b77d        host                host                local
    72ab4639a2dd        none                null                local
    PS C:\Users\smallya> docker network inspect 857787541f21
    [
        {
            "Name": "bridge",
            "Id": "857787541f210cb0912b3be240922810f007b149f200ae9fff5bdc111af14f14",
            "Created": "2018-02-09T14:31:17.0933179Z",
            "Scope": "local",
            "Driver": "bridge",
            "EnableIPv6": false,
            "IPAM": {
                "Driver": "default",
                "Options": null,
                "Config": [
                    {
                        "Subnet": "172.17.0.0/16",
                        "Gateway": "172.17.0.1"
                    }
                ]
            },
            "Internal": false,
            "Attachable": false,
            "Ingress": false,
            "ConfigFrom": {
                "Network": ""
            },
            "ConfigOnly": false,
            "Containers": {},
            "Options": {
                "com.docker.network.bridge.default_bridge": "true",
                "com.docker.network.bridge.enable_icc": "true",
                "com.docker.network.bridge.enable_ip_masquerade": "true",
                "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
                "com.docker.network.bridge.name": "docker0",
                "com.docker.network.driver.mtu": "1500"
            },
            "Labels": {}
        }
    ]
    

    【讨论】:

    • @Tims,见上面的答案。
    • 我看到一个额外的 docker_gwbridge...我该如何删除它?
    • @Tims,您可能不想删除docker_gwbridge 网络。这里是对docker网络的一个很好的解释neuvector.com/blog/docker-swarm-container-networking
    • 3 个节点相同,而其他 2 个没有 gwbridge 的节点让我删除了那个桥条目。到目前为止没有伤害。但我在 /etc/hosts 中看到了一些不寻常的东西。更新了上面的原始帖子。谢谢
    • 在 curl 命令中你使用的是主节点的 IP 地址还是主机名?如果您使用主机名并且系统依赖于可通过主机文件解析的主机名,您应该在主机文件中创建一个条目来映射主节点的 IP 地址(172.17.0.x? ) 到主机的名称。你能发布你的docker network lsdocker network inspect 命令的输出吗?
    猜你喜欢
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多