微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Docker - 单节点群中的堆栈间网络问题

如何解决Docker - 单节点群中的堆栈间网络问题

我在 Ubuntu 20 上有一个单节点群。我设置了 3 个堆栈,全部使用认覆盖网络。每个 documentation 容器应该能够在没有任何特殊设置的情况下相互通信。

但在我的情况下,跨堆栈的容器无法相互解析。同一个堆栈中的不同容器工作得很好。查看使用的 IP 段,它们应该能够相互通信。关于如何解决他们无法沟通的问题有什么想法吗?

基本设置

uname -a
Linux ubuntu20 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux


docker stack ls
NAME                SERVICES            orchestraTOR
management          1                   Swarm
tech                3                   Swarm
web                 1                   Swarm

docker service ls
ID                  NAME                      MODE                REPLICAS            IMAGE                           PORTS
cla322jwbgm3        management_portainer-ce   replicated          1/1                 portainer/portainer-ce:latest   *:8000->8000/tcp,*:9000->9000/tcp
qlts0otlc4c8        tech_grafana              replicated          1/1                 grafana/grafana:latest          *:3000->3000/tcp
yujqvwim2okb        tech_influxdb             replicated          1/1                 influxdb:latest                 *:8086->8086/tcp
v14haj0oa8dc        tech_mosquitto            replicated          1/1                 eclipse-mosquitto:latest        *:1883->1883/tcp
3dra8oyo7swo        web_Nginx                 replicated          1/1                 Nginx:latest                    *:80->80/tcp


docker container ls
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                NAMES
9025b777f04c        portainer/portainer-ce:latest   "/portainer"             29 minutes ago      Up 29 minutes       8000/tcp,9000/tcp   management_portainer-ce.1.w910sug8vaormu1pgs62wrj2j
918705a22e73        influxdb:latest                 "/entrypoint.sh infl…"   29 minutes ago      Up 29 minutes       8086/tcp             tech_influxdb.1.4d47iflbvoybnzsl1lquf89ej
4911abc53cf0        grafana/grafana:latest          "/run.sh"                29 minutes ago      Up 29 minutes       3000/tcp             tech_grafana.1.oyoot8zkxl92yi05s1ac7nano
a00639d4aa76        eclipse-mosquitto:latest        "/docker-entrypoint.…"   29 minutes ago      Up 29 minutes       1883/tcp             tech_mosquitto.1.toob1isapbmy0h0i4wa97uqq6
ca60cb673379        Nginx:latest                    "/docker-entrypoint.…"   30 minutes ago      Up 30 minutes       80/tcp               web_Nginx.1.mgyk64ggouqi9pyzgkyknmuk4

网络

docker network create   --driver overlay   --ingress   --subnet=10.11.0.0/16   --gateway=10.11.0.1 ingress


docker inspect network ingress

[
    {
        "Name": "ingress","Id": "9ykfwv0ahhk7a9s8g8a2nh53q","Created": "2021-02-07T13:52:09.317600628-05:00","Scope": "swarm","Driver": "overlay","EnableIPv6": false,"IPAM": {
            "Driver": "default","Options": null,"Config": [
                {
                    "subnet": "10.11.0.0/16","Gateway": "10.11.0.1"
                }
            ]
        },"Internal": false,"Attachable": false,"Ingress": true,"ConfigFrom": {
            "Network": ""
        },"ConfigOnly": false,"Containers": {
            "4911abc53cf0021e0fbad4392a1666e17d500167589460a77bdbd73bc52a75a1": {
                "Name": "tech_grafana.1.oyoot8zkxl92yi05s1ac7nano","EndpointID": "c9d609ffe49a7aad7be596f6f36bf9b494af109a4c530fc8b5393d0ff3c16753","MacAddress": "02:42:0a:0b:00:08","IPv4Address": "10.11.0.8/16","IPv6Address": ""
            },"9025b777f04c86742b87308374cda51b11530556040faad623dd5db51f246de4": {
                "Name": "management_portainer-ce.1.w910sug8vaormu1pgs62wrj2j","EndpointID": "bfd0613488921f39d69f4dc4e45e1f2b1b80b7c41a411040f1c2f7518c06f3c6","MacAddress": "02:42:0a:0b:00:0c","IPv4Address": "10.11.0.12/16","918705a22e73c0f6ea81b063bd95db964d74cbb0f99b5fe19bbfb0cb352b0bfc": {
                "Name": "tech_influxdb.1.4d47iflbvoybnzsl1lquf89ej","EndpointID": "07a5cac92d0c5fc53e93bf6c049f7b8977dd31c1a2d6fc27a033f1769370c53b","MacAddress": "02:42:0a:0b:00:0a","IPv4Address": "10.11.0.10/16","a00639d4aa76485b305b41e4052fe955eef4ee2c0f0e90722097d6a7995ca9bc": {
                "Name": "tech_mosquitto.1.toob1isapbmy0h0i4wa97uqq6","EndpointID": "080d882f2cc09a011261a11c6f46d8c04f26a2329d00f5fa530133bf67a4d8c0","MacAddress": "02:42:0a:0b:00:06","IPv4Address": "10.11.0.6/16","ca60cb6733797cd6867fb7146217f92ad18d1f759c86dbb65f0804199129651a": {
                "Name": "web_Nginx.1.mgyk64ggouqi9pyzgkyknmuk4","EndpointID": "019506a9da152f923600580121c373e7a74ef99cd05bf3c5094ab92dfe39a472","MacAddress": "02:42:0a:0b:00:03","IPv4Address": "10.11.0.3/16","ingress-sBox": {
                "Name": "ingress-endpoint","EndpointID": "b89f39cca8cfc6553385247315adaf543900a4e56ca769c2989e6ad63baa0ebc","MacAddress": "02:42:0a:0b:00:04","IPv4Address": "10.11.0.4/16","IPv6Address": ""
            }
        },"Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4104"
        },"Labels": {},"Peers": [
            {
                "Name": "933a5c2c1e76","IP": "192.168.1.103"
            }
        ]
    }
]

在同一个堆栈中的容器间工作,但跨堆栈失败。

#from tech stack->web stack fails,inside works
docker exec -it 918705a22e73 bash
root@918705a22e73:/# ping Nginx
ping: Nginx: Name or service not kNown

root@918705a22e73:/# ping grafana
PING grafana (10.0.9.5) 56(84) bytes of data.
64 bytes from 10.0.9.5 (10.0.9.5): icmp_seq=1 ttl=64 time=0.099 ms
^C
--- grafana ping statistics ---
1 packets transmitted,1 received,0% packet loss,time 0ms
rtt min/avg/max/mdev = 0.099/0.099/0.099/0.000 ms

#from web->web stack works,web->tech fails
root@ca60cb673379:/# curl grafana
curl: (6) Could not resolve host: grafana
root@ca60cb673379:/# curl Nginx
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>Nginx</center>
</body>
</html>
root@ca60cb673379:/# curl influxdb
curl: (6) Could not resolve host: influxdb
root@ca60cb673379:/#

解决方法

儿子,我想(很难)连接的默认覆盖网络不提供堆栈间通信。为此,您需要创建一个新的覆盖网络并将服务与其关联。

webpack serve --mode development --open --hot
#create shared network for stacks
docker network create --driver=overlay --attachable shared_overlay

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?