Ich bin versucht, bestehende Anwendungen zu überführen, dass die Arbeit Kubernetes wie folgt:Kann ich von außerhalb Kubernetes direkt zu Pods telefonieren?
- Eine Außendienst unsere Anwendung durch einen Load-Balancer mit einer neuen Sitzung aufruft.
- Unsere Anwendung gibt die IP des Servers zurück, der die Anforderung verarbeitet hat.
- Alle nachfolgenden Anrufe von außen Service für diese Sitzung werden direkt auf den gleichen Server (unter Umgehung des Load-Balancer)
Gibt es eine Möglichkeit, dies zu tun in Kubernetes gemacht? Ich verstehe, dass Pod IPs nicht extern ausgesetzt sind, gibt es eine Möglichkeit, sie direkt auszusetzen?
Ich glaube auch nicht, dass ich sessionAffinity = "ClientIP" verwenden kann, da die Anfragen alle vom selben Ort kommen. Gibt es eine Möglichkeit, benutzerdefinierten sessionAffinity-Typ zu schreiben?
Wir führen derzeit unsere Apps auf unseren eigenen Servern. Die Sitzungs-ID wird auch ein Teil der Nachrichtendaten sein, die wir senden. Es scheint, als wäre die einzige Lösung, unseren eigenen Load Balancer als Pod/Service vor unseren Apps in Kubernetes zu betreiben. Irgendeine Idee, wo ich anfangen sollte, nach so etwas zu suchen? –
Vergessen zu erwähnen, aber alle 5 dieser Dinge reichen für die Session-Affinität aus. Die Quell- und Ziel-IPs werden immer gleich sein. Es muss auf einer Session-ID basieren, die wir erstellen. –
Es gibt eine Handvoll Beispiele da draußen, aber ich bin mir nicht sicher, ob eine Karte direkt zu Ihrem Anwendungsfall passt. Ziehen Sie einen Blick auf http://paulbakker.io/kubernetes/load-balancing-kubernetes/ oder https://www.nginx.com/blog/load-balancing-kubernetes-services-ginx-plus/ –