8.9.16. Ingress Controller で HTTP/2 を有効または無効にする


HAProxy で透過的なエンドツーエンドの HTTP/2 接続を有効化または無効化できます。アプリケーション所有者は、単一接続、ヘッダー圧縮、バイナリーストリームなどの HTTP/2 プロトコル機能を使用できます。

個別の Ingress Controller またはクラスター全体について、HTTP/2 接続を有効化または無効化できます。

注記

個々の Ingress Controller およびクラスター全体に対して HTTP/2 接続を有効または無効にすると、Ingress Controller の HTTP/2 設定がクラスターの HTTP/2 設定よりも優先されます。

クライアントから HAProxy インスタンスへの接続に HTTP/2 の使用を有効にするには、ルートでカスタム証明書を指定する必要があります。デフォルトの証明書を使用するルートは HTTP/2 を使用することができません。この制限は、クライアントが同じ証明書を使用する複数の異なるルートに接続を再使用するなどの、接続の結合 (coalescing) の問題を回避するために必要です。

各ルートタイプにおける HTTP/2 接続の次のユースケースを検討してください。

  • 再暗号化ルートの場合、アプリケーションが Application-Level Protocol Negotiation (ALPN) を使用して HAProxy と HTTP/2 をネゴシエートすることをサポートしている場合、HAProxy からアプリケーション Pod への接続で HTTP/2 を使用できます。Ingress Controller で HTTP/2 が有効になっていない限り、再暗号化ルートで HTTP/2 を使用できません。
  • パススルールートの場合、アプリケーションが ALPN を使用してクライアントと HTTP/2 をネゴシエートすることをサポートしている場合、接続で HTTP/2 を使用できます。Ingress Controller が HTTP/2 を有効または無効にする場合、パススルールートで HTTP/2 を使用できます。
  • エッジ終端のセキュアなルートの場合、サービスが appProtocol: kubernetes.io/h2c のみを指定すると、接続では HTTP/2 が使用されます。Ingress Controller で HTTP/2 が有効または無効な場合、エッジ終端のセキュアなルートで HTTP/2 を使用できます。
  • 安全でないルートの場合、サービスが appProtocol: kubernetes.io/h2c のみを指定すると、接続では HTTP/2 が使用されます。Ingress Controller で HTTP/2 が有効または無効になっている場合は、安全でないルートで HTTP/2 を使用できます。
重要

パススルー以外のルートの場合、Ingress Controller はクライアントからの接続とは独立してアプリケーションへの接続をネゴシエートします。これは、クライアントが Ingress Controller に接続し、HTTP/1.1 をネゴシエートする可能性があることを意味します。その後、Ingress Controller はアプリケーションに接続し、HTTP/2 接続を確立し、HTTP/2 接続を使用してクライアント HTTP/1.1 接続からのリクエストをアプリケーションに転送します。

この一連のイベントは、その後クライアントが HTTP/1.1 から WebSocket プロトコルに接続をアップグレードしようとすると、問題が発生します。WebSocket 接続の受け入れを目的としたアプリケーションがあり、そのアプリケーションが HTTP/2 プロトコルネゴシエーションを許可しようとすると、クライアントが WebSocket プロトコルへのアップグレードを試行しても失敗することに注意してください。

8.9.16.1. HTTP/2 の有効化

特定の Ingress Controller で HTTP/2 を有効化するか、クラスター全体で HTTP/2 を有効化できます。

手順

  • 特定の Ingress Controller で HTTP/2 を有効化するには、oc annotate コマンドを入力します。

    $ oc -n openshift-ingress-operator annotate ingresscontrollers/<ingresscontroller_name> ingress.operator.openshift.io/default-enable-http2=true 
    1
    1
    <ingresscontroller_name> は、HTTP/2 を有効化する Ingress Controller の名前に置き換えます。
  • クラスター全体で HTTP/2 を有効にするには、oc annotate コマンドを入力します。

    $ oc annotate ingresses.config/cluster ingress.operator.openshift.io/default-enable-http2=true
ヒント

または、次の YAML コードを適用して HTTP/2 を有効化できます。

apiVersion: config.openshift.io/v1
kind: Ingress
metadata:
  name: cluster
  annotations:
    ingress.operator.openshift.io/default-enable-http2: "true"
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る