第15章 IngressController [operator.openshift.io/v1]
- Description
- IngressController は、クラスターの管理された入力コントローラーについて説明します。コントローラーは、OpenShiftRoute および KubernetesIngress リソースにサービスを提供できます。IngressController が作成されると、新しい ingres コントローラーの配置が作成され、外部トラフィックが Ingress または Route リソースを公開するサービスに到達できるようになります。このリソースを更新すると、新しい ingres コントローラーのリビジョンが公開される可能性があるため、一般向けのネットワーク接続が中断される可能性があります。https://kubernetes.io/docs/concepts/services-networking/ingress-controllers 可能な限り、プラットフォームの適切なデフォルトが使用されます。詳細については、各フィールドを参照してください。互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
- タイプ
-
object
15.1. 仕様
プロパティー | タイプ | 説明 |
---|---|---|
|
| APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| spec は、IngressController の望ましい動作の仕様です。 |
|
| status は、IngressController の最後に観察されたステータスです。 |
15.1.1. .spec
- Description
- spec は、IngressController の望ましい動作の仕様です。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| clientTLS は、クライアント証明書を要求および検証するための設定を指定します。これを使用して、エッジで終了したルートと再暗号化ルートの相互 TLS を有効にすることができます。 |
|
| defaultCertificate は、入力コントローラーによって提供されるデフォルトの証明書を含むシークレットへの参照です。Routes が自身の証明書を指定しない場合、defaultCertificate が使用される。シークレットには、次のキーとデータが含まれている必要があります。tls.crt: 証明書ファイルの内容 tls.key: キーファイルの内容設定されていない場合、ワイルドカード証明書が自動的に生成されて使用されます。この証明書は、ingress コントローラードメイン (およびサブドメイン) に対して有効であり、生成された証明書の CA は、クラスターのトラストストアに自動的に統合されます。ワイルドカード証明書が複数の HTTP/2 対応ルート (ALPN を意味する) によって使用および共有されている場合、クライアント (つまり、特にブラウザー) は自由に開いている接続を再利用できます。これは、クライアントが別のルートへの接続を再利用できることを意味し、それは失敗する可能性があります。この動作は、一般に接続合体として知られています。使用中の証明書 (生成されたものかユーザー指定されたものかを問わず) は、OpenShift の組み込み OAuth サーバーと自動的に統合されます。 |
|
| ドメインは、入力コントローラーによって提供される DNS 名であり、複数の機能を設定するために使用されます。* LoadBalancerService エンドポイント公開戦略の場合、ドメインは DNS レコードを設定するために使用されます。endpointPublishingStrategy を参照してください。* 生成されたデフォルト証明書を使用する場合、証明書はドメインとそのサブドメインに対して有効です。defaultCertificate を参照してください。*値は個々のルートステータスに公開されるため、エンドユーザーは外部 DNS レコードをターゲットにする場所を知ることができます。ドメインはすべての IngressController 間で一意である必要があり、更新できません。空の場合、デフォルトは ingress.config.openshift.io/cluster.spec.domain になります。 |
|
| endpointPublishingStrategy は、入力コントローラーのエンドポイントを他のネットワークに公開したり、ロードバランサーの統合を有効にしたりするために使用されます。設定されていない場合、デフォルトは infrastructure.config.openshift.io/cluster .status.platform に基づいています:AWS:LoadBalancerService (外部スコープ付き)Azure:LoadBalancerService (外部スコープ付き)GCP:LoadBalancerService (外部スコープ付き)IBMCloud:LoadBalancerService (外部スコープを使用)Libvirt:HostNetwork その他のプラットフォームタイプ (None を含む) はデフォルトで HostNetwork になります。endpointPublishingStrategy は更新できません。 |
|
| httpCompressionは、HTTP トラフィック圧縮のポリシーを定義します。デフォルトでは、HTTP 圧縮はありません。 |
|
| httpEmptyRequestsPolicy は、リクエストを受信する前に接続がタイムアウトした場合の HTTP 接続の処理方法について記述します。このフィールドに使用できる値は Respond および Ignore です。このフィールドが Respond に設定されている場合、ingress コントローラーは HTTP 400 または 408 応答を送信し、接続をログに記録し (アクセスログが有効な場合)、適切なメトリックで接続をカウントします。フィールドが Ignore に設定されている場合、Ingress コントローラーは応答を送信せずに接続を閉じると、接続をログに記録するか、メトリックを増分します。デフォルト値は Respond です。通常、これらの接続はロードバランサーのヘルスプローブまたは Web ブラウザーの投機的接続 (事前接続) からのものであり、無視しても問題ありません。ただし、これらの要求はネットワークエラーが原因である可能性もあるため、このフィールドを無視に設定すると、問題の検出と診断が妨げられる可能性があります。さらに、これらの要求はポートスキャンによって引き起こされる可能性があります。その場合、空の要求をログに記録すると、侵入の試みを検出するのに役立つ場合があります。 |
|
| httpErrorCodePages は、カスタムエラーページを含む設定マップを指定します。管理者は、openshift-config 名前空間にこの configmap を作成する必要があります。この設定マップには、error-page- <error code> .http の形式のキーが必要です。ここで、<errorcode> は HTTP エラーコードです。たとえば、error-page-503.http は、HTTP503 応答のエラーページを定義します。現在、カスタマイズできるのは 503 および 404 応答のエラーページのみです。configmap の各値は、HTTP ヘッダーを含む完全な応答である必要があります。例 -https ://raw.githubusercontent.com/openshift/router/fadab45747a9b30cc3f0a4b41ad2871f95827a93/images/router/haproxy/conf/error-page-503.http このフィールドが空の場合、入力コントローラーはデフォルトのエラーページを使用します。 |
|
| httpHeaders は、HTTP ヘッダーのポリシーを定義します。このフィールドが空の場合、デフォルト値が使用されます。 |
|
| ロギングは、何をどこに記録するかについてのパラメーターを定義します。このフィールドが空の場合、操作ログは有効になりますが、アクセスログは無効になります。 |
|
| namespaceSelector は、Ingress コントローラーによって提供される namespace セットをフィルターするために使用されます。これはシャードの実装に役立ちます。設定されていない場合、デフォルトはフィルタリングなしです。 |
|
| nodePlacement は、Ingress コントローラーのスケジュールに対する明示的な制御を有効にします。設定されていない場合、デフォルトが使用されます。詳細については、NodePlacement を参照してください。 |
|
| replicas は Ingress コントローラーレプリカの必要な数です。設定されていない場合、デフォルトはクラスターの config.openshift.io/v1/ingresses ステータスの defaultPlacement フィールドの値によって異なります。replicas の値は、Infrastructure CR の選択したフィールドの値に基づいて設定されます。defaultPlacement が ControlPlane に設定されている場合、選択したフィールドは controlPlaneTopology になります。Workers に設定されている場合、選択したフィールドは infrastructureTopology になります。レプリカは、選択したフィールドの値が SingleReplica か HighlyAvailable かに関係なく、1 または 2 に設定されます。これらのデフォルトは変更される可能性があります。 |
|
| routeAdmission は、新しいルートクレームを処理するためのポリシーを定義します (たとえば、名前空間全体でクレームを許可または拒否します)。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の routeAdmission フィールドを参照してください。 |
|
| routeSelector は、Ingress コントローラーによって提供される Routes のセットをフィルターするために使用されます。これはシャードの実装に役立ちます。設定されていない場合、デフォルトはフィルタリングなしです。 |
|
| tlsSecurityProfile は、Ingress コントローラーの TLS 接続の設定を指定します。設定されていない場合、デフォルトは apiservers.config.openshift.io/cluster リソースに基づいています。Old、Intermediate、および Modern のプロファイルタイプを使用する場合、有効なプロファイル設定はリリース間で変更される可能性があります。たとえば、リリース X.Y.Z にデプロイされた Intermediate プロファイルを使用する仕様がある場合、リリース X.Y.Z+1 へのアップグレードにより、新規のプロファイル設定が Ingress コントローラーに適用され、ロールアウトが生じる可能性があります。 |
|
| TuningOptions は、入力コントローラー Pod のパフォーマンスを調整するためのパラメーターを定義します。すべてのフィールドはオプションであり、設定されていない場合はそれぞれのデフォルトを使用します。詳細については、特定の tuningOptions フィールドを参照してください。通常、tuningOptions 内でフィールドを設定することは推奨しません。デフォルト値は、ほとんどの設定に適しています。 |
| `` | unsupportedConfigOverrides を使用すると、サポートされていない設定オプションを指定できます。その使用はサポートされていません。 |
15.1.2. .spec.clientTLS
- Description
- clientTLS は、クライアント証明書を要求および検証するための設定を指定します。これを使用して、エッジで終了したルートと再暗号化ルートの相互 TLS を有効にすることができます。
- タイプ
-
object
- 必須
-
clientCA
-
clientCertificatePolicy
-
プロパティー | タイプ | Description |
---|---|---|
|
| allowedSubjectPatterns は、リクエストをフィルタリングするために有効なクライアント証明書の識別名と照合する必要がある正規表現のリストを指定します。正規表現は PCRE 構文を使用する必要があります。このリストが空の場合、フィルタリングは実行されません。リストが空でない場合は、少なくとも 1 つのパターンがクライアント証明書の識別名と一致する必要があります。一致しない場合、入力コントローラーは証明書を拒否して接続を拒否します。 |
|
| clientCA は、クライアントの証明書を検証するために使用する必要がある PEM でエンコードされた CA 証明書バンドルを含む設定マップを指定します。管理者は、openshift-config 名前空間にこの configmap を作成する必要があります。 |
|
| clientCertificatePolicy は、入力コントローラーがクライアントに証明書の提供を要求するかどうかを指定します。このフィールドは、必須またはオプションの値を受け入れます。入力コントローラーは、クライアント証明書でエッジが終了し、TLS ルートを再暗号化することのみをチェックすることに注意してください。クリアテキスト HTTP またはパススルー TLS ルートの証明書をチェックすることはできません。 |
15.1.3. .spec.clientTLS.clientCA
- Description
- clientCA は、クライアントの証明書を検証するために使用する必要がある PEM でエンコードされた CA 証明書バンドルを含む設定マップを指定します。管理者は、openshift-config 名前空間にこの configmap を作成する必要があります。
- タイプ
-
object
- 必須
-
name
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| name は、参照される設定マップの metadata.name です。 |
15.1.4. .spec.defaultCertificate
- Description
- defaultCertificate は、入力コントローラーによって提供されるデフォルトの証明書を含むシークレットへの参照です。Routes が自身の証明書を指定しない場合、defaultCertificate が使用される。シークレットには、次のキーとデータが含まれている必要があります。tls.crt: 証明書ファイルの内容 tls.key: キーファイルの内容設定されていない場合、ワイルドカード証明書が自動的に生成されて使用されます。この証明書は、ingress コントローラードメイン (およびサブドメイン) に対して有効であり、生成された証明書の CA は、クラスターのトラストストアに自動的に統合されます。ワイルドカード証明書が複数の HTTP/2 対応ルート (ALPN を意味する) によって使用および共有されている場合、クライアント (つまり、特にブラウザー) は自由に開いている接続を再利用できます。これは、クライアントが別のルートへの接続を再利用できることを意味し、それは失敗する可能性があります。この動作は、一般に接続合体として知られています。使用中の証明書 (生成されたものかユーザー指定されたものかを問わず) は、OpenShift の組み込み OAuth サーバーと自動的に統合されます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 参照先の名前。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: その他の便利なルール度を追加。apiVersion、kind、uid |
15.1.5. .spec.endpointPublishingStrategy
- Description
- endpointPublishingStrategy は、入力コントローラーのエンドポイントを他のネットワークに公開したり、ロードバランサーの統合を有効にしたりするために使用されます。設定されていない場合、デフォルトは infrastructure.config.openshift.io/cluster .status.platform に基づいています:AWS:LoadBalancerService (外部スコープ付き)Azure:LoadBalancerService (外部スコープ付き)GCP:LoadBalancerService (外部スコープ付き)IBMCloud:LoadBalancerService (外部スコープを使用)Libvirt:HostNetwork その他のプラットフォームタイプ (None を含む) はデフォルトで HostNetwork になります。endpointPublishingStrategy は更新できません。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | Description |
---|---|---|
|
| hostNetwork は、HostNetwork エンドポイント公開戦略のパラメーターを保持します。タイプが HostNetwork の場合にのみ存在します。 |
|
| loadBalancer は、ロードバランサーのパラメーターを保持します。タイプが LoadBalancerService の場合にのみ存在します。 |
|
| nodePort は、NodePortService エンドポイント公開戦略のパラメーターを保持します。タイプが NodePortService の場合にのみ存在します。 |
|
| private は、プライベートエンドポイント公開戦略のパラメーターを保持します。タイプがプライベートの場合にのみ存在します。 |
|
| type は、使用する公開戦略です。有効な値は次のとおりです。*LoadBalancerServiceKubernetesLoadBalancer サービスを使用して入力コントローラーを公開します。この設定では、Ingress コントローラーのデプロイメントはコンテナーのネットワークを使用します。LoadBalancer サービスは、デプロイメントを公開するために作成されます。https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer を参照してください。ドメインが設定されている場合、ワイルドカード DNS レコードは、LoadBalancer サービスの外部名を指すように管理されます。DNS レコードは、dns.config.openshift.io/cluster.spec.publicZone および.spec.privateZone で定義された DNS ゾーンでのみ管理されます。ワイルドカード DNS 管理は現在、AWS、Azure、および GCP プラットフォームでのみサポートされています。* HostNetwork は、入力コントローラーがデプロイされているノードポートに入力コントローラーを公開します。この設定では、入力コントローラーのデプロイメントは、ノードポート 80 および 443 にバインドされたホストネットワークを使用します。ユーザーは、ノードポートを介して入力コントローラーを公開するように外部ロードバランサーを設定する必要があります。*プライベート入力コントローラーを公開しません。この設定では、入力コントローラーのデプロイメントはコンテナーネットワークを使用し、明示的に公開されません。ユーザーは、入力コントローラーを手動で公開する必要があります。* NodePortService は、KubernetesNodePort サービスを使用して入力コントローラーを公開します。この設定では、Ingress コントローラーのデプロイメントはコンテナーのネットワークを使用します。デプロイメントを公開するために NodePort Service が作成されます。特定のノードポートは、OpenShift によって動的に割り当てられます。ただし、静的ポート割り当てをサポートするために、マネージド NodePort サービスのノードポートフィールドへのユーザーの変更は保持されます。 |
15.1.6. .spec.endpointPublishingStrategy.hostNetwork
- Description
- hostNetwork は、HostNetwork エンドポイント公開戦略のパラメーターを保持します。タイプが HostNetwork の場合にのみ存在します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| httpPort は、HTTP リクエストをリッスンするために使用するホストのポートです。このフィールドは、ポート 80 がすでに使用されている場合に設定する必要があります。この値は、クラスターの NodePort 範囲と競合してはなりません。値が 0 または指定されていない場合、デフォルト値は 80 になります。 |
|
| httpsPort は、HTTPS 要求をリッスンするために使用する必要があるホストのポートです。ポート 443 がすでに使用されている場合は、このフィールドを設定する必要があります。この値は、クラスターの NodePort 範囲と競合してはなりません。値が 0 または指定されていない場合、デフォルトは 443 になります。 |
|
| プロトコルは、IngressController が着信接続でプレーン TCP を使用することを期待するかどうか、または IngressController が PROXY プロトコルを期待するかどうかを指定します。PROXY プロトコルは、クライアント接続を IngressController に転送するときに、それらの接続の送信元アドレスを通信するためにそれをサポートするロードバランサーで使用できます。PROXY プロトコルを使用すると、IngressController は、HTTP ヘッダーとログでロードバランサーのアドレスを報告する代わりに、これらの送信元アドレスを報告できます。IngressController で PROXY プロトコルを有効にすると、PROXY プロトコルを使用して接続を IngressController に転送するロードバランサーを使用していない場合、接続が失敗することに注意してください。PROXY プロトコルについては、http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt を参照してください。このフィールドには、次の値が有効です。*空の文字列。* "TCP".* "PROXY".空の文字列はデフォルトを指定します。これは PROXY プロトコルなしの TCP です。デフォルトは変更される可能性があることに注意してください。 |
|
| statsPort は、ルーターの統計が公開されるホストのポートです。この値は、クラスターの NodePort 範囲と競合してはなりません。外部ロードバランサーがこの IngressController に接続を転送するように設定されている場合、ロードバランサーはこのポートをヘルスチェックに使用する必要があります。ロードバランサーは、指定されたノードのこのポートで HTTP プローブを送信し、パス /healthz/ready を使用して、入力コントローラーがノード上のトラフィックを受信する準備ができているかどうかを判断できます。適切な操作を行うには、ヘルスチェックが準備状態にあると報告されるまで、ロードバランサーはトラフィックをノードに転送しないでください。ロードバランサーは、/healthz/ready が not-ready 報告を開始した後、最大 45 秒以内にリクエストの転送を停止する必要があります。5 秒から 10 秒ごとにプローブし、5 秒のタイムアウトと、それぞれ成功した値または失敗した要求のしきい値は、それぞれ正常または異常になる値です。値が 0 または指定されていない場合、デフォルトは 1936 になります。 |
15.1.7. .spec.endpointPublishingStrategy.loadBalancer
- Description
- loadBalancer は、ロードバランサーのパラメーターを保持します。タイプが LoadBalancerService の場合にのみ存在します。
- タイプ
-
object
- 必須
-
dnsManagementPolicy
-
scope
-
プロパティー | タイプ | 説明 |
---|---|---|
| `` | AllowedSourceRanges は、ロードバランサーへのアクセスを制限する必要がある IP アドレス範囲の許可リストを指定します。各範囲は CIDR 表記を使用して指定する必要があります(例:"10.0.0.0/8" または "fd00::/8")。範囲が指定されていない場合、IPv4 の場合は "0.0.0.0/0"、IPv6 の場合は::/0 がデフォルトで使用され、すべてのソースアドレスが許可されます。allowedSourceRanges フィールドを持たない以前のバージョンの OpenShift からの移行を容易にするために、openshift-ingress namespace で "router-<ingresscontroller name>" サービスに service.beta.kubernetes.io/load-balancer-source-ranges アノテーションを設定し、このアノテーションは OpenShift 4.12 で allowedSourceRanges が空の場合に有効になります。 |
|
| dnsManagementPolicy は、ロードバランサーサービスに関連付けられたワイルドカード DNS レコードのライフサイクルが Ingress オペレーターによって管理されるかどうかを示します。デフォルトは Managed です。有効な値は Managed および Unmanaged です。 |
|
| ProviderParameters は、基盤となるインフラストラクチャープロバイダーに固有の必要なロードバランサー情報を保持します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の providerParameters フィールドを参照してください。 |
|
| scope は、ロードバランサーが公開されるスコープを示します。可能な値は External と Internal です。 |
15.1.8. .spec.endpointPublishingStrategy.loadBalancer.providerParameters
- Description
- ProviderParameters は、基盤となるインフラストラクチャープロバイダーに固有の必要なロードバランサー情報を保持します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の providerParameters フィールドを参照してください。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | Description |
---|---|---|
|
| aws は、AWS ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の aws フィールドを参照してください。 |
|
| gcp は、GCP ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の gcp フィールドを参照してください。 |
IBM |
| IBM は、IBM Cloud ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の aws フィールドを参照してください。 |
|
| type は、ロードバランサーの基盤となるインフラストラクチャープロバイダーです。許可される値は、AWS、Azure、BareMetal、GCP、IBM、Nutanix、OpenStack、および VSphere です。 |
15.1.9. .spec.endpointPublishingStrategy.loadBalancer.providerParameters.aws
- Description
- aws は、AWS ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の aws フィールドを参照してください。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | Description |
---|---|---|
|
| classicLoadBalancerParameters は、AWS クラシックロードバランサーの設定パラメーターを保持します。タイプがクラシックの場合にのみ表示されます。 |
|
| networkLoadBalancerParameters は、AWS ネットワークロードバランサーの設定パラメーターを保持します。タイプが NLB の場合にのみ存在します。 |
|
| type は、イングレスコントローラー用にインスタンス化する AWS ロードバランサーのタイプです。有効な値は次のとおりです。*"Classic": トランスポート層 (TCP/SSL) またはアプリケーション層 (HTTP/HTTPS) のいずれかでルーティングを決定するクラシックロードバランサー。詳細については、以下を参照して ください。https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#clb * "NLB": トランスポートでルーティングを決定するネットワークロードバランサーレイヤー (TCP/SSL)。詳細については、以下を参照してください: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#nlb |
15.1.10. .spec.endpointPublishingStrategy.loadBalancer.providerParameters.aws.classicLoadBalancer
- Description
- classicLoadBalancerParameters は、AWS クラシックロードバランサーの設定パラメーターを保持します。タイプがクラシックの場合にのみ表示されます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| connectionIdleTimeout は、ロードバランサーが接続を閉じる前に接続がアイドル状態でいられる最大期間を指定します。値は期間値として解析可能である必要があります。https://pkg.go.dev/time#ParseDuration を参照してください。nil またはゼロの値は意見がないことを意味します。その場合、デフォルト値が使用されます。このフィールドのデフォルト値は alb です。このデフォルトは変更される可能性があります。 |
15.1.11. .spec.endpointPublishingStrategy.loadBalancer.providerParameters.aws.networkLoadBalancer
- Description
- networkLoadBalancerParameters は、AWS ネットワークロードバランサーの設定パラメーターを保持します。タイプが NLB の場合にのみ存在します。
- タイプ
-
object
15.1.12. .spec.endpointPublishingStrategy.loadBalancer.providerParameters.gcp
- Description
- gcp は、GCP ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の gcp フィールドを参照してください。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| clientAccess は、内部ロードバランサーのクライアントアクセスがどのように制限されるかを記述します。有効な値は次のとおりです。*グローバル: グローバルクライアントアクセスで内部ロードバランサーを指定すると、VPC 内の任意のリージョンのクライアントがロードバランサーと通信できるようになります。https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access *ローカル: ローカルクライアントアクセスで内部ロードバランサーを指定すると、同じリージョン内のクライアントのみが意味されます (および VPC)GCP ロードバランサーはロードバランサーと通信できます。これがデフォルトの動作であることに注意してください。https://cloud.google.com/load-balancing/docs/internal#client_access |
15.1.13. .spec.endpointPublishingStrategy.loadBalancer.providerParameters.ibm
- 説明
- IBM は、IBM Cloud ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の aws フィールドを参照してください。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| プロトコルは、ロードバランサーが PROXY プロトコルを使用して接続を IngressController に転送するかどうかを指定します。https://cloud.ibm.com/docs/containers?topic=containers-vpc-lbaas の service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol" は、それをサポートするロードバランサーと使用でき、それらの接続を IngressController に転送する際にクライアント接続のソースアドレスと通信できます。PROXY プロトコルを使用すると、IngressController は、HTTP ヘッダーとログでロードバランサーのアドレスを報告する代わりに、これらの送信元アドレスを報告できます。IngressController で PROXY プロトコルを有効にすると、PROXY プロトコルを使用して接続を IngressController に転送するロードバランサーを使用していない場合、接続が失敗することに注意してください。PROXY プロトコルについては、http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt を参照してください。protocol の有効な値は、TCP、PROXY、および省略です。省略すると、これは意見がなく、プラットフォームは妥当なデフォルトを選択することになります。これは時間の経過とともに変更される可能性があります。現在のデフォルトは TCP で、プロキシープロトコルを有効にしません。 |
15.1.14. .spec.endpointPublishingStrategy.nodePort
- Description
- nodePort は、NodePortService エンドポイント公開戦略のパラメーターを保持します。タイプが NodePortService の場合にのみ存在します。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| プロトコルは、IngressController が着信接続でプレーン TCP を使用することを期待するかどうか、または IngressController が PROXY プロトコルを期待するかどうかを指定します。PROXY プロトコルは、クライアント接続を IngressController に転送するときに、それらの接続の送信元アドレスを通信するためにそれをサポートするロードバランサーで使用できます。PROXY プロトコルを使用すると、IngressController は、HTTP ヘッダーとログでロードバランサーのアドレスを報告する代わりに、これらの送信元アドレスを報告できます。IngressController で PROXY プロトコルを有効にすると、PROXY プロトコルを使用して接続を IngressController に転送するロードバランサーを使用していない場合、接続が失敗することに注意してください。PROXY プロトコルについては、http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt を参照してください。このフィールドには、次の値が有効です。*空の文字列。* "TCP".* "PROXY".空の文字列はデフォルトを指定します。これは PROXY プロトコルなしの TCP です。デフォルトは変更される可能性があることに注意してください。 |
15.1.15. .spec.endpointPublishingStrategy.private
- Description
- private は、プライベートエンドポイント公開戦略のパラメーターを保持します。タイプがプライベートの場合にのみ存在します。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| プロトコルは、IngressController が着信接続でプレーン TCP を使用することを期待するかどうか、または IngressController が PROXY プロトコルを期待するかどうかを指定します。PROXY プロトコルは、クライアント接続を IngressController に転送するときに、それらの接続の送信元アドレスを通信するためにそれをサポートするロードバランサーで使用できます。PROXY プロトコルを使用すると、IngressController は、HTTP ヘッダーとログでロードバランサーのアドレスを報告する代わりに、これらの送信元アドレスを報告できます。IngressController で PROXY プロトコルを有効にすると、PROXY プロトコルを使用して接続を IngressController に転送するロードバランサーを使用していない場合、接続が失敗することに注意してください。PROXY プロトコルについては、http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt を参照してください。このフィールドには、次の値が有効です。*空の文字列。* "TCP".* "PROXY".空の文字列はデフォルトを指定します。これは PROXY プロトコルなしの TCP です。デフォルトは変更される可能性があることに注意してください。 |
15.1.16. .spec.httpCompression
- 説明
- httpCompressionは、HTTP トラフィック圧縮のポリシーを定義します。デフォルトでは、HTTP 圧縮はありません。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| mimetypes は、圧縮が適用される必要がある MIME タイプのリストです。このリストは空にすることができます。この場合、Ingress コントローラーは圧縮を適用しません。注記:すべての MIME タイプは圧縮による利点があるわけではありませんが、HAProxy は指示された場合でもリソースを使用して圧縮を試みます。一般的には、言えば、テキスト(html、css、js など)のフォーマットが圧縮からメリットをもたらしますが、すでに圧縮されている形式(イメージ、オーディオ、ビデオなど)は、再び圧縮に費やされた時間と CPU を交換する最大限の恩恵を受けます。See https://joehonton.medium.com/the-gzip-penalty-d31bd697f1a2 |
15.1.17. .spec.httpErrorCodePages
- Description
- httpErrorCodePages は、カスタムエラーページを含む設定マップを指定します。管理者は、openshift-config 名前空間にこの configmap を作成する必要があります。この設定マップには、error-page- <error code> .http の形式のキーが必要です。ここで、<errorcode> は HTTP エラーコードです。たとえば、error-page-503.http は、HTTP503 応答のエラーページを定義します。現在、カスタマイズできるのは 503 および 404 応答のエラーページのみです。configmap の各値は、HTTP ヘッダーを含む完全な応答である必要があります。例 -https ://raw.githubusercontent.com/openshift/router/fadab45747a9b30cc3f0a4b41ad2871f95827a93/images/router/haproxy/conf/error-page-503.http このフィールドが空の場合、入力コントローラーはデフォルトのエラーページを使用します。
- タイプ
-
object
- 必須
-
name
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| name は、参照される設定マップの metadata.name です。 |
15.1.18. .spec.httpHeaders
- Description
- httpHeaders は、HTTP ヘッダーのポリシーを定義します。このフィールドが空の場合、デフォルト値が使用されます。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
|
actions は、ヘッダーとその値を変更するためのオプションを指定します。このオプションは、クリアテキスト HTTP 接続と、入力コントローラーが暗号化を終了するセキュア HTTP 接続 (つまり、エッジ終了または再暗号化接続) にのみ適用されることに注意してください。TLS パススルー接続のヘッダーを変更することはできません。HSTS ( |
|
| forwardedHeaderPolicy は、IngressController が Forwarded、X-Forwarded-For、X-Forwarded-Host、X-Forwarded-Port、X-Forwarded-Proto、および X-Forwarded-Proto-VersionHTTP ヘッダーをいつどのように設定するかを指定します。値は次のいずれかになります。*"Append" は、IngressController がヘッダーを追加し、既存のヘッダーを保持することを指定します。* "Replace" は、IngressController がヘッダーを設定し、既存の Forwarded または X-Forwarded-*ヘッダーを置き換えることを指定します。*IfNone。ヘッダーがまだ設定されていない場合、IngressController がヘッダーを設定することを指定します。*Never。IngressController がヘッダーを設定せず、既存のヘッダーを保持することを指定します。デフォルトでは、ポリシーは追加です。 |
| `` | headerNameCaseAdjustments は、HTTP ヘッダー名に適用できる大文字小文字の調整を指定します。それぞれの調整は、必要な大文字化を指定して HTTP ヘッダー名として指定されます。たとえば、X-Forwarded-For を指定すると、指定された大文字化を有効にするために x-forwarded-for HTTP ヘッダーを調整する必要があることを示唆できます。これらの調整は、クリアテキスト、edge terminationd、および re-encrypt ルートにのみ適用され、HTTP/1 を使用する場合にのみ適用されます。要求ヘッダーの場合、これらの調整は haproxy.router.openshift.io/h1-adjust-case=true アノテーションを持つルートについてのみ適用されます。応答ヘッダーの場合、これらの調整はすべての HTTP 応答に適用されます。このフィールドが空の場合、要求ヘッダーは調整されません。 |
|
| uniqueId は、入力コントローラーが着信 HTTP 要求に挿入する必要があるカスタム HTTP ヘッダーの設定を記述します。通常、このヘッダーは、HTTP リクエストに固有の値を持つように設定されます。ヘッダーは、アプリケーションで使用したり、アクセスログに含めたりして、個々の HTTP リクエストのトレースを容易にすることができます。このフィールドが空の場合、そのようなヘッダーはリクエストに挿入されません。 |
15.1.19. .spec.httpHeaders.actions
- 説明
-
actions は、ヘッダーとその値を変更するためのオプションを指定します。このオプションは、クリアテキスト HTTP 接続と、入力コントローラーが暗号化を終了するセキュア HTTP 接続 (つまり、エッジ終了または再暗号化接続) にのみ適用されることに注意してください。TLS パススルー接続のヘッダーを変更することはできません。HSTS (
Strict-Transport-Security
)ヘッダーの設定は、アクションを介してサポートされていません。Strict-Transport-Security
は、haproxy.router.openshift.io/hsts_header ルートアノテーションを使用してのみ設定でき、Ingress.Spec.RequiredHSTSPolicies で指定されるポリシーに従ってのみ設定できます。ここで定義されたすべてのアクションは、cache-control、spec.clientTLS、spec.httpHeaders.forwardedHeaderPolicy、spec.httpHeaders.uniqueId、および spec.httpHeaders.headerNameCaseAdjustments などの他のフィールドに関連するアクションの後に適用されます。HTTP 要求ヘッダーの場合、ルートの spec.httpHeaders.actions で指定されるアクションは、IngressController の spec.httpHeaders.actions フィールドで指定されたアクションの後に実行されます。HTTP 応答ヘッダーの場合、IngressController の spec.httpHeaders.actions で指定されるアクションは、ルートの spec.httpHeaders.actions フィールドで指定されたアクションの後に実行されます。この API を使用して設定されたヘッダーは、アクセスログで使用するために取得できません。以下のヘッダー名は予約されており、この API で変更することはできません:Strict-Transport-Security、Proxy、Host、Cookie、Set-Cookie。動的な値を分離した 後、すべての net で追加されたヘッダーの合計サイズは、IngressController の spec.tuningOptions.headerBufferMaxRewriteBytes の値を超えてはなりません。詳細は、その API フィールドのドキュメントを参照してください。 - タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
|
request は、変更する HTTP リクエストヘッダーのリストです。ここで定義されたアクションは、Ingress コントローラーを通過するすべての要求の要求ヘッダーを変更します。これらのアクションは、クラスター内のすべてのルート(クラスター内で定義された Ingress コントローラーによって処理されるすべての接続)に適用されます。リクエストヘッダーの IngressController アクションは、Route アクションの前に実行されます。現在、アクションはヘッダーの値を |
|
| IngressControllerHTTPHeader は、HTTP ヘッダーを設定または削除するための設定を指定します。 |
|
|
response は、変更する HTTP 応答ヘッダーのリストです。ここで定義されたアクションは、入力コントローラーを通過するすべての要求の応答ヘッダーを変更します。これらのアクションは、クラスター内のすべてのルート(クラスター内で定義された Ingress コントローラーによって処理されるすべての接続)に適用されます。応答ヘッダーの IngressController アクションは、ルートアクションの後に実行されます。現在、アクションはヘッダーの値を |
|
| IngressControllerHTTPHeader は、HTTP ヘッダーを設定または削除するための設定を指定します。 |
15.1.20. .spec.httpHeaders.actions.request
- 説明
-
request は、変更する HTTP リクエストヘッダーのリストです。ここで定義されたアクションは、Ingress コントローラーを通過するすべての要求の要求ヘッダーを変更します。これらのアクションは、クラスター内のすべてのルート(クラスター内で定義された Ingress コントローラーによって処理されるすべての接続)に適用されます。リクエストヘッダーの IngressController アクションは、Route アクションの前に実行されます。現在、アクションはヘッダーの値を
設定
または削除
のいずれかに定義できます。アクションは、この一覧で定義されているように順番に適用されます。最大 20 個の要求ヘッダーアクションを設定できます。Sample fetchers allowed are "req.hdr" and "ssl_c_der".許可されるコンバーターは、より低いコンバーターと base64 です。Example header values: "%[req.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]". - タイプ
-
array
15.1.21. .spec.httpHeaders.actions.request[]
- 説明
- IngressControllerHTTPHeader は、HTTP ヘッダーを設定または削除するための設定を指定します。
- タイプ
-
object
- 必須
-
action
-
name
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| action は、ヘッダーの設定や削除など、ヘッダーに対して実行するアクションを指定します。 |
|
| name は、アクションを実行するヘッダーの名前を指定します。フィールドの値は、RFC2616 セクション 4.2 で定義されている有効な HTTP ヘッダー名である必要があります。名前は英数字と以下の特殊文字 "-!#$%&'*+.^_' のみで設定する必要があります。以下のヘッダー名は予約されており、この API で変更することはできません:Strict-Transport-Security、Proxy、Host、Cookie、Set-Cookie。255 文字以下である必要があります。ヘッダー名は一意である必要があります。 |
15.1.22. .spec.httpHeaders.actions.request[].action
- 説明
- action は、ヘッダーの設定や削除など、ヘッダーに対して実行するアクションを指定します。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| set は、HTTP ヘッダーの設定方法を指定します。このフィールドは、type が Set で、禁止されている場合に必要です。 |
|
| type は、ヘッダーに適用されるアクションのタイプを定義します。使用できる値は Set または Delete です。Set を使用すると、HTTP リクエストとレスポンスヘッダーを設定できます。Delete を使用すると、HTTP リクエストとレスポンスヘッダーを削除できます。 |
15.1.23. .spec.httpHeaders.actions.request[].action.set
- 説明
- set は、HTTP ヘッダーの設定方法を指定します。このフィールドは、type が Set で、禁止されている場合に必要です。
- タイプ
-
object
- 必須
-
value
-
プロパティー | タイプ | Description |
---|---|---|
|
| value はヘッダー値を指定します。動的な値を追加できます。値は http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 で定義される HAProxy 形式の文字列として解釈され、HAProxy の %[] 構文を使用する可能性があり、https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 で定義される有効な HTTP ヘッダー値である必要があります。このフィールドの値は、長さが 16384 文字以下である必要があります。動的な値を分離した 後、すべての net で追加されたヘッダーの合計サイズは、IngressController の spec.tuningOptions.headerBufferMaxRewriteBytes の値を超えてはなりません。 |
15.1.24. .spec.httpHeaders.actions.response
- 説明
-
response は、変更する HTTP 応答ヘッダーのリストです。ここで定義されたアクションは、入力コントローラーを通過するすべての要求の応答ヘッダーを変更します。これらのアクションは、クラスター内のすべてのルート(クラスター内で定義された Ingress コントローラーによって処理されるすべての接続)に適用されます。応答ヘッダーの IngressController アクションは、ルートアクションの後に実行されます。現在、アクションはヘッダーの値を
設定
または削除
のいずれかに定義できます。アクションは、この一覧で定義されているように順番に適用されます。レスポンスヘッダーの最大アクションは 20 個設定できます。Sample fetchers allowed are "res.hdr" and "ssl_c_der".許可されるコンバーターは、より低いコンバーターと base64 です。Example header values: "%[res.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]". - タイプ
-
array
15.1.25. .spec.httpHeaders.actions.response[]
- 説明
- IngressControllerHTTPHeader は、HTTP ヘッダーを設定または削除するための設定を指定します。
- タイプ
-
object
- 必須
-
action
-
name
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| action は、ヘッダーの設定や削除など、ヘッダーに対して実行するアクションを指定します。 |
|
| name は、アクションを実行するヘッダーの名前を指定します。フィールドの値は、RFC2616 セクション 4.2 で定義されている有効な HTTP ヘッダー名である必要があります。名前は英数字と以下の特殊文字 "-!#$%&'*+.^_' のみで設定する必要があります。以下のヘッダー名は予約されており、この API で変更することはできません:Strict-Transport-Security、Proxy、Host、Cookie、Set-Cookie。255 文字以下である必要があります。ヘッダー名は一意である必要があります。 |
15.1.26. .spec.httpHeaders.actions.response[].action
- 説明
- action は、ヘッダーの設定や削除など、ヘッダーに対して実行するアクションを指定します。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| set は、HTTP ヘッダーの設定方法を指定します。このフィールドは、type が Set で、禁止されている場合に必要です。 |
|
| type は、ヘッダーに適用されるアクションのタイプを定義します。使用できる値は Set または Delete です。Set を使用すると、HTTP リクエストとレスポンスヘッダーを設定できます。Delete を使用すると、HTTP リクエストとレスポンスヘッダーを削除できます。 |
15.1.27. .spec.httpHeaders.actions.response[].action.set
- 説明
- set は、HTTP ヘッダーの設定方法を指定します。このフィールドは、type が Set で、禁止されている場合に必要です。
- タイプ
-
object
- 必須
-
value
-
プロパティー | タイプ | Description |
---|---|---|
|
| value はヘッダー値を指定します。動的な値を追加できます。値は http://cbonte.github.io/haproxy-dconv/2.6/configuration.html#8.2.6 で定義される HAProxy 形式の文字列として解釈され、HAProxy の %[] 構文を使用する可能性があり、https://datatracker.ietf.org/doc/html/rfc7230#section-3.2 で定義される有効な HTTP ヘッダー値である必要があります。このフィールドの値は、長さが 16384 文字以下である必要があります。動的な値を分離した 後、すべての net で追加されたヘッダーの合計サイズは、IngressController の spec.tuningOptions.headerBufferMaxRewriteBytes の値を超えてはなりません。 |
15.1.28. .spec.httpHeaders.uniqueId
- Description
- uniqueId は、入力コントローラーが着信 HTTP 要求に挿入する必要があるカスタム HTTP ヘッダーの設定を記述します。通常、このヘッダーは、HTTP リクエストに固有の値を持つように設定されます。ヘッダーは、アプリケーションで使用したり、アクセスログに含めたりして、個々の HTTP リクエストのトレースを容易にすることができます。このフィールドが空の場合、そのようなヘッダーはリクエストに挿入されません。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| format は、挿入された HTTP ヘッダーの値の形式を指定します。名前を指定しない限り、このフィールドは効果がありません。HAProxy ベースの入力コントローラーの実装の場合、この形式は HTTP ログ形式と同じ構文を使用します。フィールドが空の場合、デフォルト値は %{+ X} o \\%ci:%cp_%fi:%fp_%Ts_%rt:%pid です。対応する HAProxy のドキュメントを参照してください:http: //cbonte.github.io/haproxy-dconv/2.0/configuration.html#8.2.3 |
|
| name は、入力コントローラーが HTTP 要求に挿入する HTTP ヘッダーの名前 (たとえば、unique-id) を指定します。フィールドの値は、RFC2616 セクション 4.2 で定義されている有効な HTTP ヘッダー名である必要があります。フィールドが空の場合、ヘッダーは挿入されません。 |
15.1.29. .spec.logging
- Description
- ロギングは、何をどこに記録するかについてのパラメーターを定義します。このフィールドが空の場合、操作ログは有効になりますが、アクセスログは無効になります。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| アクセスは、クライアント要求をログに記録する方法を記述します。このフィールドが空の場合、アクセスロギングは無効になります。 |
15.1.30. .spec.logging.access
- Description
- アクセスは、クライアント要求をログに記録する方法を記述します。このフィールドが空の場合、アクセスロギングは無効になります。
- タイプ
-
object
- 必須
-
destination
-
プロパティー | タイプ | Description |
---|---|---|
|
| 宛先はアクセスログの移動先です。 |
| `` | httpCaptureCookies は、アクセスログにキャプチャする必要がある HTTPCookie を指定します。このフィールドが空の場合、Cookie はキャプチャされません。 |
|
| httpCaptureHeaders は、アクセスログにキャプチャする必要がある HTTP ヘッダーを定義します。このフィールドが空の場合、ヘッダーはキャプチャされません。このオプションは、クリアテキスト HTTP 接続と、入力コントローラーが暗号化を終了するセキュア HTTP 接続 (つまり、エッジ終了または再暗号化接続) にのみ適用されることに注意してください。TLS パススルー接続のヘッダーをキャプチャすることはできません。 |
|
| httpLogFormat は、HTTP 要求のログメッセージの形式を指定します。このフィールドが空の場合、ログメッセージは実装のデフォルト HTTP ログ形式を使用します。HAProxy のデフォルトの HTTP ログ形式については、HAProxy のドキュメントを参照して ください。http://cbonte.github.io/haproxy-dconv/2.0/configuration.html#8.2.3 この形式は、クリアテキスト HTTP 接続とセキュア HTTP 接続にのみ適用されることに注意してください。入力コントローラーが暗号化を終了する (つまり、接続をエッジで終了または再暗号化する) 対象。TLS パススルー接続のログ形式には影響しません。 |
|
| logEmptyRequests は、要求を受信しない接続をログに記録する方法を指定します。通常、これらの空のリクエストは、ロードバランサーのヘルスプローブまたは Web ブラウザーの投機的接続 (事前接続) から送信されます。この場合、これらのリクエストをログに記録することは望ましくない場合があります。ただし、これらの要求はネットワークエラーによっても発生する可能性があります。その場合、空の要求をログに記録すると、エラーの診断に役立つ場合があります。さらに、これらの要求はポートスキャンによって引き起こされる可能性があります。その場合、空の要求をログに記録すると、侵入の試みを検出するのに役立つ場合があります。このフィールドに使用できる値は Log および Ignore です。デフォルト値は Log です。 |
15.1.31. .spec.logging.access.destination
- Description
- 宛先はアクセスログの移動先です。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| コンテナーは、コンテナーのロギング先のパラメーターを保持します。タイプがコンテナーの場合にのみ存在します。 |
|
| syslog は、syslog エンドポイントのパラメーターを保持します。タイプが Syslog の場合にのみ存在します。 |
|
| type はログの宛先のタイプです。次のいずれかである必要があります。*コンテナー入力 Operator は、入力コントローラー Pod で logs という名前のサイドカーコンテナーを設定し、サイドカーにログを書き込むように入力コントローラーを設定します。その後、ログはコンテナーログとして利用できます。管理者がこのコンテナーからログを読み取るカスタムロギングソリューションを設定することが予想されます。コンテナーログを使用するということは、ログの割合がコンテナーランタイムまたはカスタムログソリューションの容量を超えると、ログがドロップされる可能性があるということに注意してください。*Syslog ログは syslog エンドポイントに送信されます。管理者は、Syslog メッセージを受信できるエンドポイントを指定する必要があります。管理者がカスタム Syslog インスタンスを設定していることが予想されます。 |
15.1.32. .spec.logging.access.destination.container
- Description
- コンテナーは、コンテナーのロギング先のパラメーターを保持します。タイプがコンテナーの場合にのみ存在します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| maxLength は、ログメッセージの最大長です。有効な値は、480 から 8192 までの整数です。省略した場合のデフォルト値は 65535 です。 |
15.1.33. .spec.logging.access.destination.syslog
- Description
- syslog は、syslog エンドポイントのパラメーターを保持します。タイプが Syslog の場合にのみ存在します。
- タイプ
-
object
- 必須
-
address
-
port
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| address は、ログメッセージを受信する syslog エンドポイントの IP アドレスです。 |
|
| facility はログメッセージの syslog ファシリティーを指定します。このフィールドが空の場合、ファシリティーは local1 になります。 |
|
| maxLength は、ログメッセージの最大長です。有効な値は、480 から 4096 までの範囲の整数です。省略した場合のデフォルト値は 65535 です。 |
|
| port は、ログメッセージを受信する syslog エンドポイントの UDP ポート番号です。 |
15.1.34. .spec.logging.access.httpCaptureHeaders
- Description
- httpCaptureHeaders は、アクセスログにキャプチャする必要がある HTTP ヘッダーを定義します。このフィールドが空の場合、ヘッダーはキャプチャされません。このオプションは、クリアテキスト HTTP 接続と、入力コントローラーが暗号化を終了するセキュア HTTP 接続 (つまり、エッジ終了または再暗号化接続) にのみ適用されることに注意してください。TLS パススルー接続のヘッダーをキャプチャすることはできません。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
| `` | request は、キャプチャする HTTP リクエストヘッダーを指定します。このフィールドが空の場合、要求ヘッダーは調整されません。 |
| `` | response は、キャプチャする HTTP 応答ヘッダーを指定します。このフィールドが空の場合、応答ヘッダーはキャプチャされません。 |
15.1.35. .spec.namespaceSelector
- Description
- namespaceSelector は、Ingress コントローラーによって提供される namespace セットをフィルターするために使用されます。これはシャードの実装に役立ちます。設定されていない場合、デフォルトはフィルタリングなしです。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。 |
|
| ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。 |
|
| matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。 |
15.1.36. .spec.namespaceSelector.matchExpressions
- Description
- matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
- タイプ
-
array
15.1.37. .spec.namespaceSelector.matchExpressions[]
- Description
- ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
- タイプ
-
object
- 必須
-
key
-
operator
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| key は、セレクターの適用先のラベルキーです。 |
|
| operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 |
|
| values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。 |
15.1.38. .spec.nodePlacement
- Description
- nodePlacement は、Ingress コントローラーのスケジュールに対する明示的な制御を有効にします。設定されていない場合、デフォルトが使用されます。詳細については、NodePlacement を参照してください。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| nodeSelector は、入力コントローラーのデプロイメントに適用されるノードセレクターです。設定されている場合、指定されたセレクターが使用され、デフォルトが置き換えられます。設定されていない場合、デフォルトはクラスターの config.openshift.io/v1/ingresses ステータスの defaultPlacement フィールドの値によって異なります。defaultPlacement が Workers の場合、デフォルトは kubernetes.io/os: linux node-role.kubernetes.io/worker: '' です。defaultPlacement が ControlPlane の場合、デフォルトは kubernetes.io/os: linux node-role.kubernetes.io/master: '' です。これらのデフォルトは変更される可能性があります。nodeSelector.matchExpressions の使用はサポートされていません。nodeSelector.matchLabels のみを使用できます。これは、Kubernetes API の制限です。Pod 仕様ではノードセレクターの複雑な式を使用できません。 |
|
| tolerations は、入力コントローラーのデプロイメントに適用される許容値のリストです。デフォルトは空のリストです。See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
|
| この toleration が割り当てられる Pod は、マッチング Operator <operator> を使用してトリプル <key,value,effect> と一致するテイントを許容します。 |
15.1.39. .spec.nodePlacement.nodeSelector
- Description
- nodeSelector は、入力コントローラーのデプロイメントに適用されるノードセレクターです。設定されている場合、指定されたセレクターが使用され、デフォルトが置き換えられます。設定されていない場合、デフォルトはクラスターの config.openshift.io/v1/ingresses ステータスの defaultPlacement フィールドの値によって異なります。defaultPlacement が Workers の場合、デフォルトは kubernetes.io/os: linux node-role.kubernetes.io/worker: '' です。defaultPlacement が ControlPlane の場合、デフォルトは kubernetes.io/os: linux node-role.kubernetes.io/master: '' です。これらのデフォルトは変更される可能性があります。nodeSelector.matchExpressions の使用はサポートされていません。nodeSelector.matchLabels のみを使用できます。これは、Kubernetes API の制限です。Pod 仕様ではノードセレクターの複雑な式を使用できません。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。 |
|
| ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。 |
|
| matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。 |
15.1.40. .spec.nodePlacement.nodeSelector.matchExpressions
- Description
- matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
- タイプ
-
array
15.1.41. .spec.nodePlacement.nodeSelector.matchExpressions[]
- Description
- ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
- タイプ
-
object
- 必須
-
key
-
operator
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| key は、セレクターの適用先のラベルキーです。 |
|
| operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 |
|
| values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。 |
15.1.42. .spec.nodePlacement.tolerations
- Description
- tolerations は、入力コントローラーのデプロイメントに適用される許容値のリストです。デフォルトは空のリストです。See https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
- タイプ
-
array
15.1.43. .spec.nodePlacement.tolerations[]
- Description
- この toleration が割り当てられる Pod は、マッチング Operator <operator> を使用してトリプル <key,value,effect> と一致するテイントを許容します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| effect は、照合するテイントの効果を示します。空の場合は、すべてのテイント効果に一致します。指定されている場合、許可される値は NoSchedule、PreferNoSchedule、および NoExecute です。 |
|
| key は toleration が適用されるテイントキーです。空の場合は、すべてのテイントキーに一致します。キーが空の場合、Operator は Exists である必要があります。この組み合わせは、すべての値とすべてのキーに一致することを意味します。 |
|
| Operator はキーと値の関係を表します。有効な Operator は Exists および Equal です。デフォルトは Equal です。Exists は、値のワイルドカードと同等であるため、Pod は特定のカテゴリーのすべてのテイントに耐えることができます。 |
|
| tolerationSeconds は、toleration (effect は NoExecute でなければならず、NoExecute 以外の場合このフィールドは無視されます) がテイントを許容する期間を表します。デフォルトでは設定されていません。つまり、テイントを永久に許容します (エビクトしないでください)。ゼロ値と負の値は、システムによって 0 (すぐにエビクト) として扱われます。 |
|
| value は、toleration が一致するテイントの値です。Operator が Exists の場合、値は空である必要があります。それ以外の場合は、通常の文字列のみになります。 |
15.1.44. .spec.routeAdmission
- Description
- routeAdmission は、新しいルートクレームを処理するためのポリシーを定義します (たとえば、名前空間全体でクレームを許可または拒否します)。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の routeAdmission フィールドを参照してください。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| namespaceOwnership は、namespace 間でホスト名の要求を処理する方法を記述します。値は次のいずれかである必要があります。- 厳密: 異なる名前空間のルートが同じホストを要求することを許可しない。--InterNamespaceAllowed: ルートが名前空間間で同じホスト名の異なるパスを要求できるようにします。空の場合、デフォルトは Strict です。 |
|
| wildcardPolicy は、入力コントローラーに対してワイルドカードポリシーを使用したルートを処理する方法を説明します。WildcardPolicy は、ルートのワイルドカードポリシーに基づいて、入力コントローラーによって公開されるルート 1 の使用を制御します。1 https://github.com/openshift/api/blob/master/route/v1/types.go 注:WildcardPolicy を WildcardsAllowed から WildcardsDisallowed に更新すると、サブドメインのワイルドカードポリシーを持つ許可されたルートが機能しなくなります。これらのルートは、ingress コントローラーによって再許可されるために、ワイルドカードポリシーなしに更新する必要があります。WildcardPolicy は、WildcardsAllowed および WildcardsDisallowed の値をサポートします。空の場合、デフォルトは WildcardsDisallowed です。 |
15.1.45. .spec.routeSelector
- Description
- routeSelector は、Ingress コントローラーによって提供される Routes のセットをフィルターするために使用されます。これはシャードの実装に役立ちます。設定されていない場合、デフォルトはフィルタリングなしです。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。 |
|
| ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。 |
|
| matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。 |
15.1.46. .spec.routeSelector.matchExpressions
- Description
- matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
- タイプ
-
array
15.1.47. .spec.routeSelector.matchExpressions[]
- Description
- ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
- タイプ
-
object
- 必須
-
key
-
operator
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| key は、セレクターの適用先のラベルキーです。 |
|
| operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 |
|
| values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。 |
15.1.48. .spec.tlsSecurityProfile
- Description
- tlsSecurityProfile は、Ingress コントローラーの TLS 接続の設定を指定します。設定されていない場合、デフォルトは apiservers.config.openshift.io/cluster リソースに基づいています。Old、Intermediate、および Modern のプロファイルタイプを使用する場合、有効なプロファイル設定はリリース間で変更される可能性があります。たとえば、リリース X.Y.Z にデプロイされた Intermediate プロファイルを使用する仕様がある場合、リリース X.Y.Z+1 へのアップグレードにより、新規のプロファイル設定が Ingress コントローラーに適用され、ロールアウトが生じる可能性があります。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
| `` | custom は、ユーザー定義の TLS セキュリティープロファイルです。無効な設定は壊滅的である可能性があるため、カスタムプロファイルの使用には細心の注意を払ってください。カスタムプロファイルの例は次のようになります。暗号:-ECDHE-ECDSA-CHACHA20-POLY1305-ECDHE-RSA-CHACHA20-POLY1305-ECDHE-RSA-AES128-GCM-SHA256-ECDHE-ECDSA-AES128-GCM-SHA256 minTLSVersion:TLSv1。1 |
| `` | intermediate は、https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29 に基づく TLS セキュリティープロファイルです。以下のようなものです (yaml): 暗号: - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - ECDH-ECDSA-AES128-GCM-SHA256 - ECDH-ECRSA-AES128-GCM-SHA256 - ECDH-ECDSA-AES256-GCM- - ECDH-ECDSA-AES128- GCASHA384 - ECDHE-RSA-AES256-GCM-SHA384 - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - DHE-RSA-AES128-GCM-SHA256 - DHE-RSA-AES256-GCM-SHA384 minTLSVersion:TLSv1.2 |
| `` | modern は、https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility に基づく TLS セキュリティープロファイルであり、次のようになります (yaml): 暗号: - TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 minTLSVersion: TLSv1.3 注記: 現在サポートされていません。 |
| `` | old は TLS セキュリティープロファイルで、https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility に基づいており、以下のようなものです (yaml): 暗号:- TLS_AES_128_GCM_SHA256 - TLS_AES_256_GCM_SHA384 - TLS_CHACHA20_POLY1305_SHA256 - ECDHE-ECDSA-AES128-GCM-SHA256 - ECDHE-RSA-AES128-GCM-SHA256 - ECDHE-ECDSA-AES256-GCM-SHA384 - ECDHE-RSA-AES256-GCM-SHA384 - ECDHE-ECDSA-CHACHA20-POLY1305 - ECDHE-RSA-CHACHA20-POLY1305 - DHE-RSA-AES128-GCM-SHA256 - DHE-RSA-AES256-GCM-SHA384 - DHE-RSA-CHACHA20-POLY1305 - ECDHE-ECDSA-AES128-SHA256 - ECDHE-RSA-AES128-SHA256 - ECDHE-ECDSA-AES128-SHA - ECDHE-RSA-AES128-SHA - ECDHE-ECDSA-AES256-SHA384 - ECDHE-RSA-AES256-SHA384 - ECDHE-ECDSA-AES256-SHA - ECDHE-RSA-AES256-SHA - DHE-RSA-AES128-SHA256 - DHE-RSA-AES256-SHA256 - AES128-GCM-SHA256 - AES256-GCM-SHA384 - AES128-SHA256 - AES256-SHA256 - AES128-SHA - AES256-SHA - DES-CBC3-SHA minTLSVersion: TLSv1.0 |
|
| タイプは、Old、Intermediate、Modern、または Custom のいずれかです。カスタムは、個々の TLS セキュリティープロファイルパラメーターを指定する機能を提供します。Old、Intermediate、Modern は、以下に基づく TLS セキュリティープロファイルです https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations プロファイルはインテントベースであるため、新しい暗号が開発され、既存の暗号が安全ではありません。プロセスで使用できる暗号の正確さに応じて、リストが削減される場合があります。Modern プロファイルは、一般的なソフトウェアライブラリーでまだ十分に採用されていないため、現在サポートされていないことに注意してください。 |
15.1.49. .spec.tuningOptions
- Description
- TuningOptions は、入力コントローラー Pod のパフォーマンスを調整するためのパラメーターを定義します。すべてのフィールドはオプションであり、設定されていない場合はそれぞれのデフォルトを使用します。詳細については、特定の tuningOptions フィールドを参照してください。通常、tuningOptions 内でフィールドを設定することは推奨しません。デフォルト値は、ほとんどの設定に適しています。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| clientFinTimeout は、サーバー/バックエンドが接続を閉じることに対するクライアントの応答を待機している間、接続が開いたままになる時間を定義します。未設定の場合、デフォルトのタイムアウトは 1s です。 |
|
| clientTimeout は、クライアントの応答を待機している間、接続が開いたままになる時間を定義します。未設定の場合、デフォルトのタイムアウトは 30s です。 |
|
| connectTimeout は、サーバー/バックエンドへの接続試行が成功するまで待機する最大時間を定義します。このフィールドは、10 進数の符号なし期間文字列であり、それぞれにオプションの分数と単位接尾辞が付いています。以下に例を示します。"300ms", "1.5h" or "2h45m".有効な時間単位は、ns、us (または guavas の U+00B5 または ⚙s、U+03BC)、ms、s、m、h です。省略した場合、これは、ユーザーが意見を持たず、プラットフォームが妥当なデフォルトを選択することを意味します。このデフォルトは、時間の経過とともに変更される可能性があります。現在のデフォルトは、c3 です。 |
|
| headerBufferBytes は、IngressController 接続セッション用に予約する必要のあるメモリーの量 (バイト単位) を示します。IngressController (https://tools.ietf.org/html/rfc7540) で HTTP/2 が有効になっている場合、この値は少なくとも 16384 である必要があることに注意してください。このフィールドが空の場合、IngressController はデフォルト値の 32768 バイトを使用します。小さすぎる headerBufferBytes 値は IngressController を壊す可能性があり、大きすぎる headerBufferBytes 値は、IngressController が必要以上に多くのメモリーを使用する可能性があるため、このフィールドの設定は一般に推奨されません。 |
|
| headerBufferMaxRewriteBytes は、IngressController の接続セッションにおいて、HTTP ヘッダの書き換えと追加のために headerBufferBytes から確保すべきメモリー量 (バイト数) を記述します。着信 HTTP リクエストは (headerBufferBytes --headerBufferMaxRewriteBytes) バイトに制限されることに注意してください。つまり、headerBufferBytes は headerBufferMaxRewriteBytes より大きくなければなりません。このフィールドが空の場合、IngressController はデフォルト値の 8192 バイトを使用します。小さすぎる headerBufferMaxRewriteBytes 値は IngressController を壊す可能性があり、大きすぎる headerBufferMaxRewriteBytes 値は、IngressController が必要以上に大量のメモリーを使用する可能性があるため、このフィールドの設定は一般に推奨されません。 |
|
| healthCheckInterval は、設定されたバックエンドでの連続する 2 回のヘルスチェック間でルーターが待機する時間を定義します。この値は、すべてのルートのデフォルトとしてグローバルに適用されますが、ルートアノテーション "router.openshift.io/haproxy.health.check.interval" でルートごとに上書きされる場合があります。それぞれオプションの分数と単位接尾辞が付いた 10 進数の符号なし期間文字列 (300ms、1.5h、2h45m など) が必要です。有効な時間単位は、ns、us (または guavas の U+00B5 または ⚙s、U+03BC)、ms、s、m、h です。これを 5s 未満に設定すると、TCP ヘルスチェックが頻繁に発生し、SYN パケットストームを伴うため、過剰なトラフィックが発生する可能性があります。あるいは、これを高く設定しすぎると、使用できなくなったバックエンドサーバーは検出されていないため、待ち時間が長くなる可能性があります。空またはゼロの healthCheckInterval は意見がなく、IngressController はデフォルトを選択し、時間の経過とともに変更される可能性があります。現在、デフォルトの healthCheckInterval 値は 5s です。現在、許可される最小値は 1s で、最大許容値は 2147483647ms (24.85 日)です。どちらも時間とともに変わる可能性があります。 |
|
| maxConnections は、HAProxy プロセスごとに確立できる同時接続の最大数を指定します。この値を増やすと、各 Ingress コントローラー Pod はより多くの接続を処理できるようになりますが、追加のシステムリソースが消費されることになります。使用できる値は、empty、0、-1、および 2000-2000000 の範囲です。このフィールドが空または 0 の場合、IngressController はデフォルト値の 50000 を使用しますが、デフォルトは今後のリリースで変更される可能性があります。フィールド値が -1 の場合、HAProxy は、実行中のコンテナーで使用可能な ulimit に基づき最大値を動的に計算します。-1 (つまり、auto)を選択すると値が計算され(OpenShift >=4.10 クラスターでは ~520000)、各 HAProxy プロセスが現在のデフォルトである 50000 と比較して大きなメモリー使用量が発生します。現在のオペレーティングシステムの制限より大きい値を設定すると、HAProxy プロセスを開始できなくなります。個別の値(例:750000)を選択し、ルーター Pod が新しいノードに移行される場合、新規ノードが同じ ulimits が設定されている保証はありません。このようなシナリオでは、Pod は起動に失敗します。異なる ulimit を持つノード(例:異なる tuned プロファイル)があり、個別の値を選択した場合のガイダンスは、-1 を使用して、実行時に値を動的に計算することです。container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}' メトリックを使用して、ルーターコンテナーのメモリー使用量を監視できます。'container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}/container_processes{container="router",namespace="openshift-ingress"}' というメトリックを使用して、ルーターコンテナー内の個々の HAProxy プロセスのメモリー使用量を監視できます。 |
|
| reloadInterval は、ルーターが新しい変更を受け入れるためにリロードできる最小間隔を定義します。この値を大きくすると、シナリオによっては HAProxy プロセスの蓄積を防ぐことができます。この間隔を長くすると、roundrobin balancing アルゴリズムを使用する場合に、バックエンドのサーバーでの負荷分散が軽減される可能性もあります。または、HAProxy の設定の更新はより迅速に有効になる可能性があるため、この値を下げるとレイテンシーが遅くなる可能性があります。値は期間の値でなければなりません。https://pkg.go.dev/time#ParseDuration を参照してください。現在、許容値は 1s で、最大許容値は 120s です。許可される最小値と最大値は、OpenShift の今後のバージョンで変更される可能性があります。これらの境界外の期間を指定すると、reloadInterval の値は制限/フラッシュされ、拒否されないことに注意してください(たとえば、120 を超える期間は 120s に上限)。IngressController は拒否されず、この拒否された値をデフォルトに置き換えます。reloadInterval の値がゼロの場合、IngressController に対してデフォルト(現時点では 5 秒)を選択し、通知なしに変更される可能性があります。このフィールドは、10 進数の符号なし期間文字列であり、それぞれにオプションの分数と単位接尾辞が付いています。以下に例を示します。"300ms", "1.5h" or "2h45m".有効な時間単位は、ns、us (または guavas の U+00B5 または ⚙s、U+03BC)、ms、s、m、h です。注記:デフォルトの 5 秒よりもはるかに大きな値を設定すると、ルートとそのエンドポイントの更新を監視する際にレイテンシーが発生する可能性があります。HAProxy の設定はリロード頻度が低く、新規に作成されたルートは後続のリロードまで提供されません。 |
|
| serverFinTimeout は、接続を閉じるクライアントへのサーバー/バックエンドの応答を待機している間、接続が開いたままになる時間を定義します。未設定の場合、デフォルトのタイムアウトは 1s です。 |
|
| serverTimeout は、サーバー/バックエンドの応答を待機している間、接続が開いたままになる時間を定義します。未設定の場合、デフォルトのタイムアウトは 30s です。 |
|
| threadCount は、HAProxy プロセスごとに作成されるスレッドの数を定義します。より多くのスレッドを作成すると、使用されるシステムリソースを増やすことで、各 Ingress コントローラー Pod がより多くの接続を処理できるようになります。HAProxy は現在、最大 64 のスレッドをサポートしています。このフィールドが空の場合、IngressController はデフォルト値を使用します。現在のデフォルトは 4 スレッドですが、これは将来のリリースで変更される可能性があります。通常、このフィールドを設定することは推奨しません。HAProxy スレッドの数を増やすと、入力コントローラー Pod は負荷がかかった状態でより多くの CPU 時間を利用できるようになり、設定が高すぎると他の Pod が不足する可能性があります。スレッドの数を減らすと、Ingress コントローラーのパフォーマンスが低下する可能性があります。 |
|
| tlsInspectDelay は、一致するルートを見つけるためにルーターがデータを保持できる期間を定義します。これを短く設定しすぎると、より一致する証明書を使用できる場合でも、ルーターがエッジ終端または再暗号化ルートのデフォルト証明書にフォールバックする可能性があります。未設定の場合、デフォルトの検査遅延は 5s です。 |
|
| tunnelTimeout は、トンネルがアイドル状態のときにトンネル接続 (WebSocket を含む) が開いたままになる時間を定義します。未設定の場合、デフォルトのタイムアウトは 1h です。 |
15.1.50. .status
- Description
- status は、IngressController の最後に観察されたステータスです。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| availableReplicas は、入力コントローラーのデプロイメントに応じて監視された使用可能なレプリカの数です。 |
|
| 条件は、条件とそのステータスのリストです。使用可能とは、入力コントローラーのデプロイメントが使用可能であり、ルートと入力リソースにサービスを提供していることを意味します (つまり、.status.availableReplicas は.spec.replicas と同じです)。他の入力コントローラーの機能のステータスを示す追加の条件があります。*LoadBalancerManaged- 次の条件が満たされた場合に真になります。*エンドポイント公開戦略にはサービ出力ドバランサーが必要です。- これらの条件のいずれかが満たされていない場合は False。*LoadBalancerReady- 次の条件が満たされた場合に真になります。*ロードバランサーが管理されている。*ロードバランサーの準備ができました。- これらの条件のいずれかが満たされていない場合は False。*DNSManaged- 次の条件が満たされた場合に真。*エンドポイント公開戦略とプラットフォームは DNS をサポートします。*入力コントローラードメインが設定されています。*dns.config.openshift.io/cluster は DNS ゾーンを設定します。- これらの条件のいずれかが満たされていない場合は False。*DNSReady- 次の条件が満たされた場合に真。*DNS が管理されている。*DNS レコードは正常に作成されました。- これらの条件のいずれかが満たされていない場合は False。 |
|
| OperatorCondition は、単なる標準の条件フィールドです。 |
|
| domain は、実際に使用されているドメインです。 |
|
| endpointPublishingStrategy は、実際に使用されている戦略です。 |
|
| namespaceSelector は、実際に使用されている namespaceSelector です。 |
|
| observedGeneration は、観察された最新の世代です。 |
|
| routeSelector は、実際に使用されている routeSelector です。 |
|
| セレクターは、IngressController に対応するイングレスコントローラー Pod 用の文字列形式のラベルセレクターです。一致する Pod の数は、availableReplicas の値と同じである必要があります。 |
|
| tlsProfile は、有効な TLS 接続設定です。 |
15.1.51. .status.conditions
- Description
- 条件は、条件とそのステータスのリストです。使用可能とは、入力コントローラーのデプロイメントが使用可能であり、ルートと入力リソースにサービスを提供していることを意味します (つまり、.status.availableReplicas は.spec.replicas と同じです)。他の入力コントローラーの機能のステータスを示す追加の条件があります。*LoadBalancerManaged- 次の条件が満たされた場合に真になります。*エンドポイント公開戦略にはサービ出力ドバランサーが必要です。- これらの条件のいずれかが満たされていない場合は False。*LoadBalancerReady- 次の条件が満たされた場合に真になります。*ロードバランサーが管理されている。*ロードバランサーの準備ができました。- これらの条件のいずれかが満たされていない場合は False。*DNSManaged- 次の条件が満たされた場合に真。*エンドポイント公開戦略とプラットフォームは DNS をサポートします。*入力コントローラードメインが設定されています。*dns.config.openshift.io/cluster は DNS ゾーンを設定します。- これらの条件のいずれかが満たされていない場合は False。*DNSReady- 次の条件が満たされた場合に真。*DNS が管理されている。*DNS レコードは正常に作成されました。- これらの条件のいずれかが満たされていない場合は False。
- タイプ
-
array
15.1.52. .status.conditions[]
- Description
- OperatorCondition は、単なる標準の条件フィールドです。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
|
15.1.53. .status.endpointPublishingStrategy
- Description
- endpointPublishingStrategy は、実際に使用されている戦略です。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | Description |
---|---|---|
|
| hostNetwork は、HostNetwork エンドポイント公開戦略のパラメーターを保持します。タイプが HostNetwork の場合にのみ存在します。 |
|
| loadBalancer は、ロードバランサーのパラメーターを保持します。タイプが LoadBalancerService の場合にのみ存在します。 |
|
| nodePort は、NodePortService エンドポイント公開戦略のパラメーターを保持します。タイプが NodePortService の場合にのみ存在します。 |
|
| private は、プライベートエンドポイント公開戦略のパラメーターを保持します。タイプがプライベートの場合にのみ存在します。 |
|
| type は、使用する公開戦略です。有効な値は次のとおりです。*LoadBalancerServiceKubernetesLoadBalancer サービスを使用して入力コントローラーを公開します。この設定では、Ingress コントローラーのデプロイメントはコンテナーのネットワークを使用します。LoadBalancer サービスは、デプロイメントを公開するために作成されます。https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer を参照してください。ドメインが設定されている場合、ワイルドカード DNS レコードは、LoadBalancer サービスの外部名を指すように管理されます。DNS レコードは、dns.config.openshift.io/cluster.spec.publicZone および.spec.privateZone で定義された DNS ゾーンでのみ管理されます。ワイルドカード DNS 管理は現在、AWS、Azure、および GCP プラットフォームでのみサポートされています。* HostNetwork は、入力コントローラーがデプロイされているノードポートに入力コントローラーを公開します。この設定では、入力コントローラーのデプロイメントは、ノードポート 80 および 443 にバインドされたホストネットワークを使用します。ユーザーは、ノードポートを介して入力コントローラーを公開するように外部ロードバランサーを設定する必要があります。*プライベート入力コントローラーを公開しません。この設定では、入力コントローラーのデプロイメントはコンテナーネットワークを使用し、明示的に公開されません。ユーザーは、入力コントローラーを手動で公開する必要があります。* NodePortService は、KubernetesNodePort サービスを使用して入力コントローラーを公開します。この設定では、Ingress コントローラーのデプロイメントはコンテナーのネットワークを使用します。デプロイメントを公開するために NodePort Service が作成されます。特定のノードポートは、OpenShift によって動的に割り当てられます。ただし、静的ポート割り当てをサポートするために、マネージド NodePort サービスのノードポートフィールドへのユーザーの変更は保持されます。 |
15.1.54. .status.endpointPublishingStrategy.hostNetwork
- Description
- hostNetwork は、HostNetwork エンドポイント公開戦略のパラメーターを保持します。タイプが HostNetwork の場合にのみ存在します。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| httpPort は、HTTP リクエストをリッスンするために使用するホストのポートです。このフィールドは、ポート 80 がすでに使用されている場合に設定する必要があります。この値は、クラスターの NodePort 範囲と競合してはなりません。値が 0 または指定されていない場合、デフォルト値は 80 になります。 |
|
| httpsPort は、HTTPS 要求をリッスンするために使用する必要があるホストのポートです。ポート 443 がすでに使用されている場合は、このフィールドを設定する必要があります。この値は、クラスターの NodePort 範囲と競合してはなりません。値が 0 または指定されていない場合、デフォルトは 443 になります。 |
|
| プロトコルは、IngressController が着信接続でプレーン TCP を使用することを期待するかどうか、または IngressController が PROXY プロトコルを期待するかどうかを指定します。PROXY プロトコルは、クライアント接続を IngressController に転送するときに、それらの接続の送信元アドレスを通信するためにそれをサポートするロードバランサーで使用できます。PROXY プロトコルを使用すると、IngressController は、HTTP ヘッダーとログでロードバランサーのアドレスを報告する代わりに、これらの送信元アドレスを報告できます。IngressController で PROXY プロトコルを有効にすると、PROXY プロトコルを使用して接続を IngressController に転送するロードバランサーを使用していない場合、接続が失敗することに注意してください。PROXY プロトコルについては、http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt を参照してください。このフィールドには、次の値が有効です。*空の文字列。* "TCP".* "PROXY".空の文字列はデフォルトを指定します。これは PROXY プロトコルなしの TCP です。デフォルトは変更される可能性があることに注意してください。 |
|
| statsPort は、ルーターの統計が公開されるホストのポートです。この値は、クラスターの NodePort 範囲と競合してはなりません。外部ロードバランサーがこの IngressController に接続を転送するように設定されている場合、ロードバランサーはこのポートをヘルスチェックに使用する必要があります。ロードバランサーは、指定されたノードのこのポートで HTTP プローブを送信し、パス /healthz/ready を使用して、入力コントローラーがノード上のトラフィックを受信する準備ができているかどうかを判断できます。適切な操作を行うには、ヘルスチェックが準備状態にあると報告されるまで、ロードバランサーはトラフィックをノードに転送しないでください。ロードバランサーは、/healthz/ready が not-ready 報告を開始した後、最大 45 秒以内にリクエストの転送を停止する必要があります。5 秒から 10 秒ごとにプローブし、5 秒のタイムアウトと、それぞれ成功した値または失敗した要求のしきい値は、それぞれ正常または異常になる値です。値が 0 または指定されていない場合、デフォルトは 1936 になります。 |
15.1.55. .status.endpointPublishingStrategy.loadBalancer
- Description
- loadBalancer は、ロードバランサーのパラメーターを保持します。タイプが LoadBalancerService の場合にのみ存在します。
- タイプ
-
object
- 必須
-
dnsManagementPolicy
-
scope
-
プロパティー | タイプ | 説明 |
---|---|---|
| `` | AllowedSourceRanges は、ロードバランサーへのアクセスを制限する必要がある IP アドレス範囲の許可リストを指定します。各範囲は CIDR 表記を使用して指定する必要があります(例:"10.0.0.0/8" または "fd00::/8")。範囲が指定されていない場合、IPv4 の場合は "0.0.0.0/0"、IPv6 の場合は::/0 がデフォルトで使用され、すべてのソースアドレスが許可されます。allowedSourceRanges フィールドを持たない以前のバージョンの OpenShift からの移行を容易にするために、openshift-ingress namespace で "router-<ingresscontroller name>" サービスに service.beta.kubernetes.io/load-balancer-source-ranges アノテーションを設定し、このアノテーションは OpenShift 4.12 で allowedSourceRanges が空の場合に有効になります。 |
|
| dnsManagementPolicy は、ロードバランサーサービスに関連付けられたワイルドカード DNS レコードのライフサイクルが Ingress オペレーターによって管理されるかどうかを示します。デフォルトは Managed です。有効な値は Managed および Unmanaged です。 |
|
| ProviderParameters は、基盤となるインフラストラクチャープロバイダーに固有の必要なロードバランサー情報を保持します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の providerParameters フィールドを参照してください。 |
|
| scope は、ロードバランサーが公開されるスコープを示します。可能な値は External と Internal です。 |
15.1.56. .status.endpointPublishingStrategy.loadBalancer.providerParameters
- Description
- ProviderParameters は、基盤となるインフラストラクチャープロバイダーに固有の必要なロードバランサー情報を保持します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の providerParameters フィールドを参照してください。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | Description |
---|---|---|
|
| aws は、AWS ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の aws フィールドを参照してください。 |
|
| gcp は、GCP ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の gcp フィールドを参照してください。 |
IBM |
| IBM は、IBM Cloud ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の aws フィールドを参照してください。 |
|
| type は、ロードバランサーの基盤となるインフラストラクチャープロバイダーです。許可される値は、AWS、Azure、BareMetal、GCP、IBM、Nutanix、OpenStack、および VSphere です。 |
15.1.57. .status.endpointPublishingStrategy.loadBalancer.providerParameters.aws
- Description
- aws は、AWS ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の aws フィールドを参照してください。
- タイプ
-
object
- 必須
-
type
-
プロパティー | タイプ | Description |
---|---|---|
|
| classicLoadBalancerParameters は、AWS クラシックロードバランサーの設定パラメーターを保持します。タイプがクラシックの場合にのみ表示されます。 |
|
| networkLoadBalancerParameters は、AWS ネットワークロードバランサーの設定パラメーターを保持します。タイプが NLB の場合にのみ存在します。 |
|
| type は、イングレスコントローラー用にインスタンス化する AWS ロードバランサーのタイプです。有効な値は次のとおりです。*"Classic": トランスポート層 (TCP/SSL) またはアプリケーション層 (HTTP/HTTPS) のいずれかでルーティングを決定するクラシックロードバランサー。詳細については、以下を参照して ください。https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#clb * "NLB": トランスポートでルーティングを決定するネットワークロードバランサーレイヤー (TCP/SSL)。詳細については、以下を参照してください: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#nlb |
15.1.58. .status.endpointPublishingStrategy.loadBalancer.providerParameters.aws.classicLoadBalancer
- Description
- classicLoadBalancerParameters は、AWS クラシックロードバランサーの設定パラメーターを保持します。タイプがクラシックの場合にのみ表示されます。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| connectionIdleTimeout は、ロードバランサーが接続を閉じる前に接続がアイドル状態でいられる最大期間を指定します。値は期間値として解析可能である必要があります。https://pkg.go.dev/time#ParseDuration を参照してください。nil またはゼロの値は意見がないことを意味します。その場合、デフォルト値が使用されます。このフィールドのデフォルト値は alb です。このデフォルトは変更される可能性があります。 |
15.1.59. .status.endpointPublishingStrategy.loadBalancer.providerParameters.aws.networkLoadBalancer
- Description
- networkLoadBalancerParameters は、AWS ネットワークロードバランサーの設定パラメーターを保持します。タイプが NLB の場合にのみ存在します。
- タイプ
-
object
15.1.60. .status.endpointPublishingStrategy.loadBalancer.providerParameters.gcp
- Description
- gcp は、GCP ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の gcp フィールドを参照してください。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| clientAccess は、内部ロードバランサーのクライアントアクセスがどのように制限されるかを記述します。有効な値は次のとおりです。*グローバル: グローバルクライアントアクセスで内部ロードバランサーを指定すると、VPC 内の任意のリージョンのクライアントがロードバランサーと通信できるようになります。https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing#global_access *ローカル: ローカルクライアントアクセスで内部ロードバランサーを指定すると、同じリージョン内のクライアントのみが意味されます (および VPC)GCP ロードバランサーはロードバランサーと通信できます。これがデフォルトの動作であることに注意してください。https://cloud.google.com/load-balancing/docs/internal#client_access |
15.1.61. .status.endpointPublishingStrategy.loadBalancer.providerParameters.ibm
- 説明
- IBM は、IBM Cloud ロードバランサーに固有の設定を提供します。空の場合、デフォルトが適用されます。デフォルトの詳細については、特定の aws フィールドを参照してください。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| プロトコルは、ロードバランサーが PROXY プロトコルを使用して接続を IngressController に転送するかどうかを指定します。https://cloud.ibm.com/docs/containers?topic=containers-vpc-lbaas の service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol" は、それをサポートするロードバランサーと使用でき、それらの接続を IngressController に転送する際にクライアント接続のソースアドレスと通信できます。PROXY プロトコルを使用すると、IngressController は、HTTP ヘッダーとログでロードバランサーのアドレスを報告する代わりに、これらの送信元アドレスを報告できます。IngressController で PROXY プロトコルを有効にすると、PROXY プロトコルを使用して接続を IngressController に転送するロードバランサーを使用していない場合、接続が失敗することに注意してください。PROXY プロトコルについては、http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt を参照してください。protocol の有効な値は、TCP、PROXY、および省略です。省略すると、これは意見がなく、プラットフォームは妥当なデフォルトを選択することになります。これは時間の経過とともに変更される可能性があります。現在のデフォルトは TCP で、プロキシープロトコルを有効にしません。 |
15.1.62. .status.endpointPublishingStrategy.nodePort
- Description
- nodePort は、NodePortService エンドポイント公開戦略のパラメーターを保持します。タイプが NodePortService の場合にのみ存在します。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| プロトコルは、IngressController が着信接続でプレーン TCP を使用することを期待するかどうか、または IngressController が PROXY プロトコルを期待するかどうかを指定します。PROXY プロトコルは、クライアント接続を IngressController に転送するときに、それらの接続の送信元アドレスを通信するためにそれをサポートするロードバランサーで使用できます。PROXY プロトコルを使用すると、IngressController は、HTTP ヘッダーとログでロードバランサーのアドレスを報告する代わりに、これらの送信元アドレスを報告できます。IngressController で PROXY プロトコルを有効にすると、PROXY プロトコルを使用して接続を IngressController に転送するロードバランサーを使用していない場合、接続が失敗することに注意してください。PROXY プロトコルについては、http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt を参照してください。このフィールドには、次の値が有効です。*空の文字列。* "TCP".* "PROXY".空の文字列はデフォルトを指定します。これは PROXY プロトコルなしの TCP です。デフォルトは変更される可能性があることに注意してください。 |
15.1.63. .status.endpointPublishingStrategy.private
- Description
- private は、プライベートエンドポイント公開戦略のパラメーターを保持します。タイプがプライベートの場合にのみ存在します。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| プロトコルは、IngressController が着信接続でプレーン TCP を使用することを期待するかどうか、または IngressController が PROXY プロトコルを期待するかどうかを指定します。PROXY プロトコルは、クライアント接続を IngressController に転送するときに、それらの接続の送信元アドレスを通信するためにそれをサポートするロードバランサーで使用できます。PROXY プロトコルを使用すると、IngressController は、HTTP ヘッダーとログでロードバランサーのアドレスを報告する代わりに、これらの送信元アドレスを報告できます。IngressController で PROXY プロトコルを有効にすると、PROXY プロトコルを使用して接続を IngressController に転送するロードバランサーを使用していない場合、接続が失敗することに注意してください。PROXY プロトコルについては、http://www.haproxy.org/download/2.2/doc/proxy-protocol.txt を参照してください。このフィールドには、次の値が有効です。*空の文字列。* "TCP".* "PROXY".空の文字列はデフォルトを指定します。これは PROXY プロトコルなしの TCP です。デフォルトは変更される可能性があることに注意してください。 |
15.1.64. .status.namespaceSelector
- 説明
- namespaceSelector は、実際に使用されている namespaceSelector です。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。 |
|
| ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。 |
|
| matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。 |
15.1.65. .status.namespaceSelector.matchExpressions
- 説明
- matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
- タイプ
-
array
15.1.66. .status.namespaceSelector.matchExpressions[]
- 説明
- ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
- タイプ
-
object
- 必須
-
key
-
operator
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| key は、セレクターの適用先のラベルキーです。 |
|
| operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 |
|
| values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。 |
15.1.67. .status.routeSelector
- 説明
- routeSelector は、実際に使用されている routeSelector です。
- タイプ
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。 |
|
| ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。 |
|
| matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。 |
15.1.68. .status.routeSelector.matchExpressions
- 説明
- matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
- タイプ
-
array
15.1.69. .status.routeSelector.matchExpressions[]
- 説明
- ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
- タイプ
-
object
- 必須
-
key
-
operator
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| key は、セレクターの適用先のラベルキーです。 |
|
| operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。 |
|
| values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。 |
15.1.70. .status.tlsProfile
- Description
- tlsProfile は、有効な TLS 接続設定です。
- タイプ
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| 暗号は、TLS ハンドシェイク中にネゴシエートされる暗号アルゴリズムを指定するために使用されます。Operator は、オペランドがサポートしていないエントリーを削除できます。たとえば、DES-CBC3-SHA(yaml) を使用するには: 暗号:-DES-CBC3-SHA |
|
| minTLSVersion は、TLS ハンドシェイク中にネゴシエートされる TLS プロトコルの最小バージョンを指定するために使用されます。たとえば、TLS バージョン 1.1、1.2、1.3(yaml) を使用するには:minTLSVersion:TLSv1.1 注: 現在許可されている最大の minTLSVersion は VersionTLS12 です。 |