Как собственная сеть GCP/GKE VPC реализует присвоение псевдонимов IP каждому стручок?
Как и в Google Kubernetes Engine — Networking, каждый под будет иметь IP-адрес из вторичного диапазона IP-адресов CIDR подсети (например, 10.4.1.1).
Каждый модуль в экземпляре Linux имеет свой интерфейс veth. Как каждый veth(i) для pod(i) связан с сетевым интерфейсом Linux-системы, в которой работают pod'ы? Каждый модуль (veth) имеет свой собственный сетевой интерфейс, подключенный к Linux-системе, или все модули и интерфейсы veth используют один и тот же eth0?
Согласно сеть Kubernetes в Google Cloudуказывает на то, что единый eth0 на Linux-боксе используется всеми подами. Тогда один eth0 имеет несколько вторичных IP-адресов псевдонимов, связанных с ним. Тогда как Linux может разделить пакеты на каждый IP-псевдоним и направить их в соответствующий pod/veth? Используется ли iptable для сопоставления псевдонима IP с veth?
В документе GKE Псевдонимы диапазонов IP-адресов, определенных в сетевом интерфейсе виртуальной машины, нет подробностей.
Как каждый veth для модуля связан с сетевым интерфейсом окна Linux, в котором работают модули?
GKE создает сетевое пространство имен для соединения veth пода с eth0 узла.
Каждый модуль (veth)имеет свой собственный сетевой интерфейс, подключенный к linux box, или все модули и интерфейсы veth используют один и тот же eth0?
Все веты подключены к одному интерфейсу eth0 через мост (cbr0). схема
Как linux box может разделять пакеты на каждый IP-адрес alis и направлять их в соответствующий pod/veth? Используется ли iptable для сопоставления псевдонима IP с veth?
kube-proxy редактирует iptable на узле, чтобы направлять трафик на соответствующие модули.
Дополнительную информацию можно найти в этой статье и этом ответе stackoverflow .