Wie wird der native Cluster-IP-Alias ​​von GCP GKE VPC implementiert?

Wie wird der native Cluster-IP-Alias ​​von GCP GKE VPC implementiert?

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).

Bildbeschreibung hier eingeben

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?

Bildbeschreibung hier eingeben

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?

Bildbeschreibung hier eingeben

Das GKE-DokumentIn einer VM-Netzwerkschnittstelle definierte Alias-IP-Bereicheverfügt nicht über die Einzelheiten.

Bildbeschreibung hier eingeben

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.

verwandte Informationen