Google Container Engine(Kubernetes)のhttpbin.orgサービスのクローンである単純なDockerサーバーを公開するDockerコンテナを配備しようとしています。Kubernetes Ingressを使用して、Google Cloud Load BalancerがHTTPSではなくHTTPSを実行するIngress
これは私が使用しているサービスの定義です:
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
を侵入は次のように定義されています。私は2つのIPアドレス、直接結合した1つを見ることができるサービス/イングレスのダッシュボードで
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
(一時的な)サービスとIngressに結合された静的IPへ両方をポート80で直接呼び出すことは、魅力のように機能します。
ことが行われた後、私は静的IPのレコードを作成し、BalancerがGKEダッシュボードでOKでしたロードを確保しました:
HTTPSエンドポイントがたくさんに従って作業する必要があります私がチェックしたチュートリアルとマニュアルはありますが、そうではありません! HTTPSへのすべての呼び出しは、HTTPポートにリダイレクトされます(301)。
カール-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
は、厳密に(KubernetesとGKEから)公式マニュアルに従ったが、私はこれを越えて行くことができませんよ。新しいスタック、新しいロードバランサなど、スタック全体を最初から再作成しようとしましたが、同じ結果が得られました。
私には何が欠けていますか? Tks!
秘密のファイルを実際の値なしで表示できますか?あなたが使っているキーに興味があります。 – Gambo
「秘密ファイル」とはどういう意味ですか? SSL証明書ですか?私はすでにAWSで同じ証明書を使用しており、SSL診断でもチェックしていますが、証明書は問題ありません。 –