Flannel Kubernetes the hard way v2: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
(Новая страница: «=Flannel= <PRE> </PRE>»)
 
Строка 1: Строка 1:
  +
[[Категория:K8s]]
  +
[[Категория:Networking]]
  +
[[Категория:Linux]]
  +
[[Категория:Kubernetes the hard way v2]]
  +
  +
 
=Flannel=
 
=Flannel=
  +
<code>Flannel</code> - один из способов организации оверлейной сети
  +
=Зачем это нужно=
  +
* В частных случаях когда сеть полностью контролируема и можно назначать любые маршруты и адреса на всех устройствах - не нужно строить никаких оверлейных сетей
  +
* Если сеть не контролируется (например в арендованном датацентре или облаке, и не возможно создание маршрутов между worker-nodes то это один из множества возможных способов обеспечить оверлейную сеть
   
  +
=Разбор прохождения пакетов между двумя POD запущенными на разных нодах=
 
<PRE>
 
<PRE>
  +
ping from pod on worker 3 to pod on worker 1
  +
  +
  +
root@worker3:/home/ubuntu# nsenter -t 16980 -n
  +
root@worker3:/home/ubuntu# #get routes in namespace
  +
root@worker3:/home/ubuntu# traceroute 10.244.1.34
  +
traceroute to 10.244.1.34 (10.244.1.34), 30 hops max, 60 byte packets
  +
1 10.244.3.1 (10.244.3.1) 0.156 ms 0.048 ms 0.040 ms
  +
2 10.244.1.0 (10.244.1.0) 2.451 ms 2.340 ms 2.239 ms
  +
3 10.244.1.34 (10.244.1.34) 2.143 ms 2.051 ms 1.954 ms
  +
root@worker3:/home/ubuntu# ip r
  +
default via 10.244.3.1 dev eth0
  +
10.244.0.0/16 via 10.244.3.1 dev eth0
  +
10.244.3.0/24 dev eth0 proto kernel scope link src 10.244.3.254
  +
  +
#out of namespace
  +
root@worker3:/home/ubuntu# ifconfig cni0
  +
cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
  +
inet 10.244.3.1 netmask 255.255.255.0 broadcast 10.244.3.255
  +
inet6 fe80::f8c6:3aff:fe2b:8a prefixlen 64 scopeid 0x20<link>
  +
ether fa:c6:3a:2b:00:8a txqueuelen 1000 (Ethernet)
  +
RX packets 112 bytes 6220 (6.2 KB)
  +
RX errors 0 dropped 0 overruns 0 frame 0
  +
TX packets 76 bytes 6164 (6.1 KB)
  +
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  +
  +
  +
root@worker3:/home/ubuntu# ip r
  +
default via 192.168.122.1 dev enp1s0 proto dhcp src 192.168.122.114 metric 100
  +
10.244.0.0/24 via 10.244.0.0 dev flannel.1 onlink
  +
10.244.1.0/24 via 10.244.1.0 dev flannel.1 onlink
  +
10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink
  +
10.244.3.0/24 dev cni0 proto kernel scope link src 10.244.3.1
  +
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
  +
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.114
  +
192.168.122.1 dev enp1s0 proto dhcp scope link src 192.168.122.114 metric 100
  +
  +
  +
root@worker3:/home/ubuntu# arp -n
  +
Address HWtype HWaddress Flags Mask Iface
  +
10.244.1.0 ether a2:99:54:8b:35:bd CM flannel.1
  +
  +
  +
root@worker3:/home/ubuntu# bridge fdb show dev flannel.1
  +
a2:99:54:8b:35:bd dst 192.168.122.88 self permanent
  +
  +
  +
root@worker1:/home/ubuntu# ifconfig flannel.1
  +
flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
  +
inet 10.244.1.0 netmask 255.255.255.255 broadcast 0.0.0.0
  +
inet6 fe80::a099:54ff:fe8b:35bd prefixlen 64 scopeid 0x20<link>
  +
ether a2:99:54:8b:35:bd txqueuelen 0 (Ethernet)
  +
RX packets 38 bytes 2424 (2.4 KB)
  +
RX errors 0 dropped 0 overruns 0 frame 0
  +
TX packets 24 bytes 2088 (2.0 KB)
  +
TX errors 0 dropped 16 overruns 0 carrier 0 collisions 0
  +
  +
  +
root@worker1:/home/ubuntu# ip r
  +
default via 192.168.122.1 dev enp1s0 proto dhcp src 192.168.122.88 metric 100
  +
10.244.0.0/24 via 10.244.0.0 dev flannel.1 onlink
  +
10.244.1.0/24 dev cni0 proto kernel scope link src 10.244.1.1
  +
10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink
  +
10.244.3.0/24 via 10.244.3.0 dev flannel.1 onlink
  +
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
  +
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.88
  +
192.168.122.1 dev enp1s0 proto dhcp scope link src 192.168.122.88 metric 100
  +
  +
  +
root@worker1:/home/ubuntu# ip r get 10.244.1.34
  +
10.244.1.34 dev cni0 src 10.244.1.1 uid 0
  +
cache
  +
(edited)
  +
18:00
  +
4: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN mode DEFAULT group default
  +
link/ether 86:df:93:cc:8e:62 brd ff:ff:ff:ff:ff:ff promiscuity 0
  +
vxlan id 1 local 192.168.122.114 dev enp1s0 srcport 0 0 dstport 8472 nolearning ttl inherit ageing 300 udpcsum noudp6zerocsumtx noudp6zerocsumrx addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
  +
  +
  +
 
</PRE>
 
</PRE>

Версия 19:17, 21 ноября 2022


Flannel

Flannel - один из способов организации оверлейной сети

Зачем это нужно

  • В частных случаях когда сеть полностью контролируема и можно назначать любые маршруты и адреса на всех устройствах - не нужно строить никаких оверлейных сетей
  • Если сеть не контролируется (например в арендованном датацентре или облаке, и не возможно создание маршрутов между worker-nodes то это один из множества возможных способов обеспечить оверлейную сеть

Разбор прохождения пакетов между двумя POD запущенными на разных нодах

ping from pod on worker 3 to pod on worker 1


root@worker3:/home/ubuntu# nsenter -t 16980 -n
root@worker3:/home/ubuntu# #get routes in namespace 
root@worker3:/home/ubuntu# traceroute 10.244.1.34
traceroute to 10.244.1.34 (10.244.1.34), 30 hops max, 60 byte packets
 1  10.244.3.1 (10.244.3.1)  0.156 ms  0.048 ms  0.040 ms
 2  10.244.1.0 (10.244.1.0)  2.451 ms  2.340 ms  2.239 ms
 3  10.244.1.34 (10.244.1.34)  2.143 ms  2.051 ms  1.954 ms
root@worker3:/home/ubuntu# ip r
default via 10.244.3.1 dev eth0 
10.244.0.0/16 via 10.244.3.1 dev eth0 
10.244.3.0/24 dev eth0 proto kernel scope link src 10.244.3.254 

#out of namespace
root@worker3:/home/ubuntu# ifconfig cni0
cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.244.3.1  netmask 255.255.255.0  broadcast 10.244.3.255
        inet6 fe80::f8c6:3aff:fe2b:8a  prefixlen 64  scopeid 0x20<link>
        ether fa:c6:3a:2b:00:8a  txqueuelen 1000  (Ethernet)
        RX packets 112  bytes 6220 (6.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 76  bytes 6164 (6.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


root@worker3:/home/ubuntu# ip r
default via 192.168.122.1 dev enp1s0 proto dhcp src 192.168.122.114 metric 100 
10.244.0.0/24 via 10.244.0.0 dev flannel.1 onlink 
10.244.1.0/24 via 10.244.1.0 dev flannel.1 onlink 
10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink 
10.244.3.0/24 dev cni0 proto kernel scope link src 10.244.3.1 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.114 
192.168.122.1 dev enp1s0 proto dhcp scope link src 192.168.122.114 metric 100 


root@worker3:/home/ubuntu# arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
10.244.1.0               ether   a2:99:54:8b:35:bd   CM                    flannel.1


root@worker3:/home/ubuntu# bridge fdb show dev flannel.1
a2:99:54:8b:35:bd dst 192.168.122.88 self permanent


root@worker1:/home/ubuntu# ifconfig flannel.1
flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet 10.244.1.0  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::a099:54ff:fe8b:35bd  prefixlen 64  scopeid 0x20<link>
        ether a2:99:54:8b:35:bd  txqueuelen 0  (Ethernet)
        RX packets 38  bytes 2424 (2.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 24  bytes 2088 (2.0 KB)
        TX errors 0  dropped 16 overruns 0  carrier 0  collisions 0


root@worker1:/home/ubuntu# ip r
default via 192.168.122.1 dev enp1s0 proto dhcp src 192.168.122.88 metric 100 
10.244.0.0/24 via 10.244.0.0 dev flannel.1 onlink 
10.244.1.0/24 dev cni0 proto kernel scope link src 10.244.1.1 
10.244.2.0/24 via 10.244.2.0 dev flannel.1 onlink 
10.244.3.0/24 via 10.244.3.0 dev flannel.1 onlink 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.122.0/24 dev enp1s0 proto kernel scope link src 192.168.122.88 
192.168.122.1 dev enp1s0 proto dhcp scope link src 192.168.122.88 metric 100 


root@worker1:/home/ubuntu# ip r get 10.244.1.34
10.244.1.34 dev cni0 src 10.244.1.1 uid 0 
    cache 
(edited)
18:00
4: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/ether 86:df:93:cc:8e:62 brd ff:ff:ff:ff:ff:ff promiscuity 0 
    vxlan id 1 local 192.168.122.114 dev enp1s0 srcport 0 0 dstport 8472 nolearning ttl inherit ageing 300 udpcsum noudp6zerocsumtx noudp6zerocsumrx addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535