Ich versuche, einen Docker-Container bereitzustellen, der einen einfachen Docker-Server, einen Klon des httpbin.org-Dienstes in der Google Container Engine (Kubernetes) verfügbar macht.Google Cloud Load Balancer erzwingen HTTP, nicht HTTPS, mit Kubernetes Ingress
Dies ist die Service-Definition Ich verwende:
apiVersion: v1
kind: Service
metadata:
name: httpbin
labels:
app: httpbin
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 3000
protocol: TCP
name: http
selector:
app: httpbin
Der Eintritt ist definiert als:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: httpbin-tls
annotations:
kubernetes.io/ingress.global-static-ip-name: "http-bin-static-ip"
spec:
tls:
- secretName: positive-ssl
backend:
serviceName: httpbin
servicePort: 80
im Dienste/Ingress Dashboards ich zwei IPs sehen können, die man direkt gebunden an den Dienst (ephemere) und die statische IP an den Eingang gebunden. Sie beide direkt an Port 80 anzurufen, wirkt wie ein Zauber.
Nachdem das getan ist, habe ich einen A-Eintrag für die statische IP erstellt und gewährleistet die Load-Balancer OK in der GKE Armaturenbrett war:
Der HTTPS-Endpunkt sollte entsprechend viel arbeiten von Tutorials und Handbüchern habe ich überprüft, aber es ist nicht! Jeder Aufruf von HTTPS wird an den HTTP-Port umgeleitet (301).
Die Ausgabe von der Curl -v:
* Rebuilt URL to: https://httpbin-1.mydomain.com/
* Trying XXX.XX.XX.XX...
* TCP_NODELAY set
* Connected to httpbin-1.mydomain.com (XXX.XX.XX.XX) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Server certificate: mydomain.com
* Server certificate: COMODO ECC Domain Validation Secure Server CA 2
* Server certificate: COMODO ECC Certification Authority
> GET/HTTP/1.1
> Host: httpbin-1.mydomain.com
> User-Agent: curl/7.51.0
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Fri, 03 Mar 2017 18:01:23 GMT
< Transfer-Encoding: chunked
< Connection: keep-alive
< Cache-Control: max-age=3600
< Expires: Fri, 03 Mar 2017 19:01:23 GMT
< Location: http://httpbin-1.mydomain.com/
<
* Curl_http_done: called premature == 0
* Connection #0 to host httpbin-1.mydomain.com left intact
ich keine automatische Umleitung aller Art erstellt haben, gefolgt streng nach den offiziellen Handbüchern (von Kubernetes und GKE), aber ich bin nicht in der Lage, darüber hinaus zu gehen . Sogar versucht, den ganzen Stapel von Grund auf neu zu erstellen, ein neues Cluster, neue Load Balancer, aber die gleichen Ergebnisse.
Was fehlt mir? Tks!
Können Sie die geheime Datei ohne die echten Werte anzeigen? Ich bin an den Schlüsseln interessiert, die Sie verwenden. – Gambo
Was meinst du mit der "geheimen Datei"? Das SSL-Zertifikat? Ich habe bereits das gleiche Zertifikat in AWS verwendet, und auch mit SSL-Diagnose überprüft, das Zertifikat ist in Ordnung. –