2017-07-12 2 views
0

Muss ich derzeit einen zusätzlichen Webserver (nginx) verwenden, um den gesamten Kubernete Ingress-Verkehr auf https umzuleiten, wenn ich auf GCE gehostet habe?Verwendung eines Kubernete Ingress auf GCE zum Umleiten/Erzwingen von TLS

Ich bin auf der Suche nach einer Golang-Anwendung in die Wildnis zu implementieren. Als Lernexperiment dachte ich, ich würde GCE verwenden, um & K8s zur Bereitstellung/Skalierung zu hosten. Ich habe deployments und services alles funktioniert wie erwartet zurückkehrenden Verkehr und erstellt Zertifikate mit Lets Encrypt für TLS Kündigung.

Ich bin an der Stelle der Implementierung eines Ingress jetzt als Service LoadBalancers scheinen veraltet zu sein. In diesem Stadium verwende ich eine statische IP für die Ingress für backend Anfragen zu verwenden, um - wie

apiVersion: extensions/v1beta1 kind: Ingress metadata: name: web-ingress annotations: kubernetes.io/ingress.global-static-ip-name: "kubernetes-ingress" ingress.kubernetes.io/ssl-redirect: "true" spec: tls: - secretName: web-ssl backend: serviceName: web servicePort: 80

Natürlich folgt Ich möchte alle HTTP-Datenverkehr über https/TLS gehen. Das Zuweisen des ingress.kubernetes.io/ssl-redirect: "true" Eintrags hat keinen Unterschied gemacht. Als hinterhältiger Versuch dachte ich, ich könnte die servicePort auf 443 ändern. Da mein Dienst Anfragen an beiden 80/443 Ports annimmt, wurden gültige Antworten zurückgegeben, aber http wurde nicht zu https gezwungen.

An dieser Stelle rate ich, dass ich "die Kugel beißen" und ein nginx Ingress Controller schaffen muss. Dies hilft auch beim Aktualisieren von Zertifikaten unter Verwendung von Lego zusammen mit dem Erstellen einer anderen Abstraktion, falls ich mehr Servicepunkte benötige.

Aber vorher wollte ich erst nachsehen, ob es keinen anderen Weg gibt? Jede Hilfe dankbar, danke.

Antwort

2

Zur Implementierung des Ingress-Manifests wird ein Ingress-Controller benötigt. Ohne es macht die Installation des Ingress-Manifests nichts. Afaik, die Bereitstellung eines Ingress ist der beste Weg für die HTTP-Umleitung.

Sie können den Ingress HTTP-Datenverkehr zu HTTPS umleiten. Überprüfen Sie dieses tutorial for TLS with traefik, und dieses tutorial for TLS with nginx.

+0

Dank Eugene, ich bin "überall" die Tutorials und bin mit dem Nginx-Controller Fortschritte. Kompletter Overkill für App-Anforderungen, aber ein guter Lernprozess für die Zukunft =] – kylehqcom

+0

Gern geschehen :) Es wird trotzdem eine großartige Lernerfahrung sein. –

0

Ich habe erfolgreich ein Nginx Ingress-Controller installiert, um https über https://mydigest.co/ zu zwingen, so glücklich wie eine Muschel.

Holen Sie sich die DNS-SRV-Datensätze zu lösen, aber .... Nun, es funktioniert jetzt, aber das ist eine andere Geschichte!

Verwandte Themen