1 swarm集群 在测试的时候发现一个这样的问题,每台容器调为12个时(一共20台),发现启动的容器只有231/240,不到240个。 原因:使用docker stack 创建出来的网络默认网段是一个10.10.0.0/24 的,所以会限制所能创建的ip的个数。
解决方法:使用自建网络建立一个网段比较大的,在stack中使用自建网络
1 2 3 4 5 6 docker network create --driver=overlay --subnet=10.10.0.0/16 arkkit_self_overlay networks: arkkit_self_overlay: driver: overlay external: true
2创建go的http访问客户端时要设置不要使用长连接,否则swarm集群无法进行负载均衡 1 2 3 4 5 6 tr := http.Transport{DisableKeepAlives: true} c := &http.Client{ Timeout: 100 * time.Second, Transport: &tr, } res, err := c.Get(sample_url)
3 swarm网络有时会删不掉,需要借助第三方工具swarmctl 1 2 docker network rm gerrit8837_default Error response from daemon: rpc error: code = FailedPrecondition desc = network n4iawrsr18263xbqznepzu9r5 is in use by task 1yf3gempke5fpr0kvt1g3t82k
swarmkit
4 个别容器出现dns无法解析的情况 1 download sample 1d5a30871e14d78748489ce835480f46, err download sample error:Get http://xxx dial tcp: lookup xxxx on 127.0.0.11:53: read udp 127.0.0.1:35840->127.0.0.11:53: read: connection refused