Beste Möglichkeit, jedem Pod in einem Kubernetes-Cluster statische Routen hinzuzufügen?

Beste Möglichkeit, jedem Pod in einem Kubernetes-Cluster statische Routen hinzuzufügen?

Ich habe 3 Knoten, auf denen mehrere laufen OpenVPN pods, jeder Pod hat ein VPN-Netzwerk von 100.70.0.0/16und Clients, die eine Verbindung zu diesen Pods herstellen, erhalten IP-Adressen in diesem Bereich. Nehmen wir beispielsweise an, dass dieser Client 100.70.162.91eine Verbindung zu einem der Pods hergestellt hat.

Jetzt möchte ich weitere Pods hinzufügen, die verschiedene Dienste auf diesem Cluster ausführen, und jeder Pod muss mit jedem VPN-Client kommunizieren können. Einer der großen Schritte, die ich bisher mit AWS ECS machen würde, ist das Hinzufügen einer Route wie ip route add 100.70.192.91/32 via <OpenVPN-pod-IPv4>/32in der Subnetz-Routentabelle des Cluster-VPC, sobald ein Client über die AWS-API eine Verbindung herstellt. Diese Methode scheint auch zu funktionieren, docker-composewenn Kubernetesalle Pods im selben Netzwerk sind.

Beim jetzigen Versuch, von ECS zu Kubernetes zu migrieren, finde ich jedoch scheinbar keine Möglichkeit, clusterweite statische Netzwerkrouten auf Kubernetes hinzuzufügen.

Was wäre der beste Weg, dies auf Kubernetes zu implementieren?

Antwort1

Wenn Sie Vanilla K8s statt ECS verwenden, haben Sie die Möglichkeit, solche Routen auf Worker-Knoten hinzuzufügen. Pod-Verkehr zu Nicht-K8s-Netzwerken (das Netzwerk von VPN-Clients unterscheidet sich vom Netzwerk von K8s-Pods) würde also über die Routing-Tabelle der Worker-Knoten austreten. Sie müssen dem Netzwerk der VPN-Clients auf den Worker-Knoten eine statische Route hinzufügen. Das Routenziel legen Sie als VPN-Pod-IP fest. Es ist von jedem K8s-Worker-Knoten aus zugänglich.

verwandte Informationen