using weave virtual network in kubernetes with weave pod behind nat

4/28/2017

I would like to deploy a kubernetes cluster with weave virtual network in a node that is behind a NAT. (for example, using a floating IP in openstack)

Here is an example:

Kube Master: weave pod running here

  • Internal IP: 192.168.0.10
  • External IP: 172.10.0.10

Kube nodes (worker)

  • Internal IP: 172.10.0.11

The logs in the pod running on the kube node (worker) looks like the following:

$ docker logs -f <id-of-weaveworks/weave-kube>
INFO: 2017/04/28 15:31:00.627655 Command line options: map[ipalloc-range:10.32.0.0/12 nickname:rpi3-kube status-addr:0.0.0.0:6782 docker-api: datapath:datapath http-addr:127.0.0.1:6784 ipalloc-init:consensus=3 no-dns:true port:6783 conn-limit:30]
INFO: 2017/04/28 15:31:00.628107 Communication between peers is unencrypted.
INFO: 2017/04/28 15:31:00.888331 Our name is 8e:0e:19:5d:4e:5e(rpi3-kube)
INFO: 2017/04/28 15:31:00.889315 Launch detected - using supplied peer list: [192.168.0.12 192.168.0.10 172.10.0.11]
INFO: 2017/04/28 15:31:00.890130 Checking for pre-existing addresses on weave bridge
INFO: 2017/04/28 15:31:00.903121 [allocator 8e:0e:19:5d:4e:5e] No valid persisted data
INFO: 2017/04/28 15:31:00.999661 [allocator 8e:0e:19:5d:4e:5e] Initialising via deferred consensus
INFO: 2017/04/28 15:31:01.001342 Sniffing traffic on datapath (via ODP)
INFO: 2017/04/28 15:31:01.004907 ->[192.168.0.10:6783] attempting connection
INFO: 2017/04/28 15:31:01.005712 ->[192.168.0.12:6783] attempting connection
INFO: 2017/04/28 15:31:01.007297 ->[172.10.0.11:6783] attempting connection
INFO: 2017/04/28 15:31:01.010285 ->[172.10.0.11:38918] connection accepted
INFO: 2017/04/28 15:31:01.019476 ->[147.214.99.166:6783|8e:0e:19:5d:4e:5e(rpi3-kube)]: connection shutting down due to error: cannot connect to ourself
INFO: 2017/04/28 15:31:01.021265 ->[147.214.99.166:38918|8e:0e:19:5d:4e:5e(rpi3-kube)]: connection shutting down due to error: cannot connect to ourself
INFO: 2017/04/28 15:31:01.042197 Listening for HTTP control messages on 127.0.0.1:6784
INFO: 2017/04/28 15:31:01.051546 Listening for metrics requests on 0.0.0.0:6782
INFO: 2017/04/28 15:33:08.225310 ->[192.168.0.10:6783] error during connection attempt: dial tcp4 :0->192.168.0.10:6783: getsockopt: connection timed out

The kubernetes cluster is propperly configured and the advertise address is: 172.10.0.10

-- aitorhh
kubernetes
nat
weave

1 Answer

5/2/2017

My current workaround is to fix the IPs of the nodes in the weave configuration file:

wget https://git.io/weave-kube-1.6      
vim weave-kube-1.6  

and modify it with your IPs

  containers:
    - name: weave
      env:
      - name: KUBE_PEERS
        value: "172.10.0.10 172.10.0.11"
-- aitorhh
Source: StackOverflow