Mein Ziel ist es, meine Web-Anwendung (auf dem Kubernetes 1.4-Cluster bereitgestellt) die IP des Clients anzeigen zu lassen, der ursprünglich die HTTP-Anfrage gestellt hat. Da ich vorhabe, die Anwendung auf einem Bare-Metal-Cluster auszuführen, sind GCE und die in 1.4 eingeführte Serviceanmerkung service.alpha.kubernetes.io/external-traffic: OnlyLocal
für mich nicht anwendbar.Erhalt der Remote-Client-IP mit Ingress
Auf der Suche nach Alternativen, habe ich this question gefunden, die einen Ingress vorschlägt, um mein Ziel zu erreichen. Also habe ich den Ingress und the NginX Ingress Controller eingerichtet. Die Bereitstellung verlief reibungslos und ich konnte mich über die Ingress-Adresse und den Port 80 mit meiner Web-App verbinden. In den Protokollen sehe ich jedoch immer noch cluster-interne IP-Adressen (ab 172.16.0.0/16) - und das bedeutet, dass der externe Client IPs werden nicht ordnungsgemäß über den Ingress übergeben. Können Sie mir bitte sagen, was ich zusätzlich zu den oben genannten konfigurieren muss, damit es funktioniert?
Meine Ingress' config:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: myWebApp
spec:
backend:
serviceName: myWebApp
servicePort: 8080