
Wie implementiert das native GCP/GKE-VPC-Netzwerk die Alias-IP-Zuweisung zu jedem Pod?
Wie inGoogle Kubernetes Engine – Netzwerk, jeder Pod hat eine IP aus dem sekundären IP-CIDR-Bereich des Subnetzes (z. B. 10.4.1.1).
Jeder Pod in einer Linux-Instanz hat seine eigene veth-Schnittstelle. Wie ist jedes veth(i) für Pod(i) mit der Netzwerkschnittstelle der Linux-Box verbunden, in der die Pods laufen? Jeder Pod (veth) hat seine eigene Netzwerkschnittstelle, die mit der Linux-Box verbunden ist, oder teilen sich alle Pods und veth-Schnittstellen das einzelne eth0?
EntsprechendKubernetes-Networking in der Google Cloudgibt an, dass das einzelne eth0 der Linux-Box von mehreren Pods gemeinsam genutzt wird. Dann sind dem einzelnen eth0 mehrere sekundäre Alias-IP-Adressen zugeordnet. Wie kann die Linux-Box dann die Pakete für jede Alias-IP trennen und sie an den entsprechenden Pod/Veth weiterleiten? Wird iptable verwendet, um eine Alias-IP einem Veth zuzuordnen?
Das GKE-DokumentIn einer VM-Netzwerkschnittstelle definierte Alias-IP-Bereicheverfügt nicht über die Einzelheiten.
Antwort1
Wie wird jedes Veth für Pods mit der Netzwerkschnittstelle der Linux-Box verknüpft, auf der die Pods ausgeführt werden?
GKE erstellt eineNetzwerk-NamespaceverbindenPodsveth mit eth0 des Knotens.
Jeder Pod (veth) hat seine eigene Netzwerkschnittstelle, die an die Linux-Box angeschlossen ist, oder teilen sich alle Pods und veth-Schnittstellen das einzelne eth0?
Alle Veths sind über die Bridge (cbr0) mit einer einzigen eth0-Schnittstelle verbunden.schematisch
Wie kann die Linux-Box die Pakete zu jeder Alias-IP trennen und sie an den entsprechenden Pod/Veth weiterleiten? Wird iptable verwendet, um eine Alias-IP einem Veth zuzuordnen?
Kube-Proxybearbeitet die Iptable auf dem Knoten, um den Datenverkehr an die entsprechenden Pods weiterzuleiten.
Weitere Informationen finden Sie in diesemArtikelund dieser Stackoverflow Antwort.