HTTPの設定¶
HTTPSリダイレクト¶
オペレーターは、すべてのサービスに対してHTTPSリダイレクトを強制できます。詳細については、「外部ドメイン暗号化の設定」ページで説明されているhttp-protocol
を参照してください。
デフォルトのHTTP動作のオーバーライド¶
サービスごとまたはグローバル構成ごとに、デフォルトの動作をオーバーライドできます。
- グローバルキー:
http-protocol
- リビジョンごとのアノテーションキー:
networking.knative.dev/http-protocol
- 可能な値
enabled
— サービスはHTTPトラフィックを受け入れます。redirected
— サービスはすべてのHTTP接続に対して301リダイレクトを送信し、代わりにHTTPSを使用するようにクライアントに要求します。
- デフォルト:
enabled
例
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: example
namespace: default
annotations:
networking.knative.dev/http-protocol: "redirected"
spec:
...
apiVersion: v1
kind: ConfigMap
metadata:
name: config-network
namespace: knative-serving
data:
http-protocol: "redirected"
apiVersion: operator.knative.dev/v1alpha1
kind: KnativeServing
metadata:
name: knative-serving
spec:
config:
network:
http-protocol: "redirected"
ワークロードごとのHTTP/1全二重サポート¶
Knativeサービスは、データパスでHTTP/1全二重のエンドツーエンドのサポートを有効にすることができます。これは、関連するGolangの問題が発生するシナリオ(例:アプリケーションサーバーが、QPのリバースプロキシがリクエスト全体を消費する前に、QPのリバースプロキシに書き戻す場合)で使用する必要があります。問題が発生する理由の詳細については、こちらを参照してください。
HTTP/1全二重サポートの構成¶
HTTP/1全二重サポートを有効にするには、次のようにリビジョンスペックレベルで対応するアノテーションを設定できます。
警告
有効にする前にHTTPクライアントでテストしてください。古いクライアントはHTTP/1全二重をサポートしていない場合があります。
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: example-service
namespace: default
spec:
template:
metadata:
annotations:
features.knative.dev/http-full-duplex: "Enabled"
...