2016-05-06 12 views
0

Problem:Wie aktiviert man Container Internet-Zugang durch Flanell?

/ # ping 8.8.8.8 
PING 8.8.8.8 (8.8.8.8): 56 data bytes 
ping: sendto: Network unreachable 

Beispiel Behälter ifconfig:

eth0  Link encap:Ethernet HWaddr F2:3D:87:30:39:B8 
     inet addr:10.2.8.64 Bcast:0.0.0.0 Mask:255.255.255.0 
     inet6 addr: fe80::f03d:87ff:fe30:39b8%32750/64 Scope:Link 
     UP BROADCAST RUNNING MULTICAST MTU:1450 Metric:1 
     RX packets:22 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:0 
     RX bytes:4088 (3.9 KiB) TX bytes:648 (648.0 B) 

eth1  Link encap:Ethernet HWaddr 6E:1C:69:85:21:96 
     inet addr:172.16.28.63 Bcast:0.0.0.0 Mask:255.255.255.0 
     inet6 addr: fe80::6c1c:69ff:fe85:2196%32750/64 Scope:Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
     RX packets:18 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:0 
     RX bytes:1418 (1.3 KiB) TX bytes:648 (648.0 B) 

lo  Link encap:Local Loopback 
     inet addr:127.0.0.1 Mask:255.0.0.0 
     inet6 addr: ::1%32750/128 Scope:Host 
     UP LOOPBACK RUNNING MTU:65536 Metric:1 
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:0 
     RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 

Routing innerhalb des Behälters:

/ # ip route show 
10.2.0.0/16 via 10.2.8.1 dev eth0 
10.2.8.0/24 dev eth0 src 10.2.8.73 
172.16.28.0/24 via 172.16.28.1 dev eth1 src 172.16.28.72 
172.16.28.1 dev eth1 src 172.16.28.72 

Wirt iptables: http://pastebin.com/raw/UcLQQa4J

Host-ifconfig: 01.239.

Protokolle von flannel:

main.go:275] Installing signal handlers 
main.go:188] Using 104.238.xxx.xxx as external interface 
main.go:189] Using 104.238.xxx.xxx as external endpoint 
etcd.go:129] Found lease (10.2.8.0/24) for current IP (104.238.xxx.xxx), reusing 
etcd.go:84] Subnet lease acquired: 10.2.8.0/24 
ipmasq.go:50] Adding iptables rule: FLANNEL -d 10.2.0.0/16 -j ACCEPT 
ipmasq.go:50] Adding iptables rule: FLANNEL ! -d 224.0.0.0/4 -j MASQUERADE 
ipmasq.go:50] Adding iptables rule: POSTROUTING -s 10.2.0.0/16 -j FLANNEL 
ipmasq.go:50] Adding iptables rule: POSTROUTING ! -s 10.2.0.0/16 -d 10.2.0.0/16 -j MASQUERADE 
vxlan.go:153] Watching for L3 misses 
vxlan.go:159] Watching for new subnet leases 
vxlan.go:273] Handling initial subnet events 
device.go:159] calling GetL2List() dev.link.Index: 3 
vxlan.go:280] fdb already populated with: 104.238.xxx.xxx 82:83:be:17:3e:d6 
vxlan.go:280] fdb already populated with: 104.238.xxx.xxx 82:dd:90:b2:42:87 
vxlan.go:280] fdb already populated with: 104.238.xxx.xxx de:e8:be:28:cf:7a 
systemd[1]: Started Network fabric for containers. 
+0

Für Ihren Container ist keine Standardroute definiert, sodass keine anderen als direkt verbundene Netzwerke erreicht werden können. – larsks

+0

Ich vermutete so viel, die Sache ist, dass das Routing im 'ipam'-Feld der rkt-Netzwerkdeklaration konfiguriert sein sollte, aber das Flanell-Plugin das' ipam'-Feld verwaltet, können Sie andere Einstellungen über das 'delegate'-Feld ändern aber nicht die 'ipam', also dachte ich, dass Flanell damit umgehen sollte ?! – untorhe

Antwort

0

Es ist nicht möglich, es funktioniert, weil es noch nicht implementiert ist ... Ich glaube, ich bin Andockfenster Umstellung auf ...

bearbeiten. ..oder nicht, wechselte von Flanell zu Calico, es funktioniert ok.

rkt #862
k8s #2249

0

Diese GitHub issue auf dem Flanell Projekt eine Lösung bieten kann - im Wesentlichen, versuchen zu deaktivieren IP-Masquerading (--ip-masq=false) auf Ihrer Docker-Daemon, und es (--ip-masq) auf Ihrem Flanell-Daemon ermöglicht.

Diese Lösung funktionierte für mich, als ich Internet-IPs (z. B. 8.8.8.8) aus einem Container in meinem Kubernetes-Cluster nicht pingen konnte.