Недавно я играл с кластером Google Kubernetes Engine. У меня есть вопрос относительно их CNI. Я читал в документах GCP и других статьях, что существует мост, к которому подключаются все интерфейсы veth. По сути, для каждого контейнера создается пара veth. Один его конец находится в контейнере, а другой конец подключен к мостовому устройству. Когда контейнеры на одном узле взаимодействуют друг с другом, обмен пакетами осуществляется с использованием мостового устройства уровня 2. Это также описано в документации GKE.
https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview#pods
https://medium.com/cloudzone/gke-networking-options-explained-demonstrated-5c0253415eba
Я создал кластер в Google, я вижу, что есть мостовое устройство docker0, но с ним не связаны интерфейсы.
gke-xxxxxxxxx /home/uuuuuuu # показать brctl
имя моста идентификатор моста интерфейсы с поддержкой STP
докер0 8000.0242fd0b0cf4 нет
gke-xxxxxxxxxx /home/uuuuuuu #
Затем я создал кластер с помощью Virtualbox, я вижу, что интерфейсы связаны с мостовым устройством.
[root@k8s-2 ~]# показать brctl
имя моста идентификатор моста интерфейсы с поддержкой STP
cni0 8000.36dae477639c нет veth7f6c1f01
vethccd0d71d
vethe63e4285
Я пытаюсь объяснить, почему я не могу найти устройство моста на виртуальных машинах Google? Используются ли в этом сценарии специальные функции ядра Linux?
Когда я проверяю каждый интерфейс veth на виртуальной машине Google, все они имеют один и тот же IP-адрес 10.188.2.1.
gke-xxxxxxxxxxxxxxxxxxxxx /home/user.name # ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
инет 169.254.123.1 сетевая маска 255.255.255.0 широковещательная рассылка 169.254.123.255
эфир 02:42:fd:0b:0c:f4 txqueuelen 0 (Ethernet)
Пакеты RX 0 байт 0 (0,0 Б)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 0 байт 0 (0,0 Б)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
инет 10.10.1.19 сетевая маска 255.255.255.255 широковещательный 0.0.0.0
inet6 fe80::4001:aff:fe0a:113 prefixlen 64 scopeid 0x20<ссылка>
эфир 42:01:0a:0a:01:13 txqueuelen 1000 (Ethernet)
Пакеты RX 2192921 байт 1682211226 (1,5 ГиБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 1288701 байт 468627202 (446,9 МБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
инет 127.0.0.1 сетевая маска 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<хост>
loop txqueuelen 1000 (локальная петля)
Пакеты RX 276348 байт 153128345 (146,0 МБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 276348 байт 153128345 (146,0 МБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
veth27cee774: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
инет 10.188.2.1 сетевая маска 255.255.255.255 широковещательный 10.188.2.1
inet6 fe80::10b7:98ff:fe2f:2e08 prefixlen 64 scopeid 0x20<ссылка>
эфир 12:b7:98:2f:2e:08 txqueuelen 0 (Ethernet)
Пакеты RX 32 байта 2306 (2,2 КиБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 10 байт 710 (710,0 Б)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
veth6eba4cdf: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
инет 10.188.2.1 сетевая маска 255.255.255.255 широковещательный 10.188.2.1
inet6 fe80::c4e3:b0ff:fe5f:63da prefixlen 64 scopeid 0x20<ссылка>
эфир c6:e3:b0:5f:63:da txqueuelen 0 (Ethernet)
Пакеты RX 537091 байт 138245354 (131,8 МБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 477870 байт 122515885 (116,8 МБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
veth8bcf1494: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
инет 10.188.2.1 сетевая маска 255.255.255.255 широковещательный 10.188.2.1
inet6 fe80::70cb:c4ff:fe8c:a747 prefixlen 64 scopeid 0x20<ссылка>
эфир 72:cb:c4:8c:a7:47 txqueuelen 0 (Ethernet)
Пакеты RX 50 байт 3455 (3,3 КиБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 28 байт 2842 (2,7 КиБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
vethbb2135c7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
инет 10.188.2.1 сетевая маска 255.255.255.255 широковещательный 10.188.2.1
inet6 fe80::1469:daff:fea0:8b5b prefixlen 64 scopeid 0x20<ссылка>
эфир 16:69:da:a0:8b:5b txqueuelen 0 (Ethernet)
Пакеты RX 223995 байт 82725559 (78,8 МБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 239258 байт 60203574 (57,4 МБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
vetheee4e8e3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1460
инет 10.188.2.1 сетевая маска 255.255.255.255 широковещательный 10.188.2.1
inet6 fe80::ec6c:3bff:fef3:70c2 prefixlen 64 scopeid 0x20<ссылка>
эфир ee:6c:3b:f3:70:c2 txqueuelen 0 (Ethernet)
Пакеты RX 311669 байт 40562747 (38,6 МБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 304461 байт 628195110 (599,0 МБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
Что стоит за этими интерфейсами veth?
заранее спасибо