第16章 Ingress [config.openshift.io/v1]


説明
Ingress は、ルートに使用されるデフォルトの入力ドメインを含む、入力に関するクラスター全体の情報を保持します。正規名は cluster です。互換性レベル 1: メジャーリリース内で最低 12 か月または 3 つのマイナーリリース (どちらか長い方) の間安定しています。
object
必須
  • spec

16.1. 仕様

プロパティー説明

apiVersion

string

APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。

kind

string

kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できることがあります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。

metadata

ObjectMeta

標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。

spec

object

spec 設定でユーザーが設定できる値を保持します。

status

object

status クラスターから監視される値を保持します。それらはオーバーライドされない場合があります。

16.1.1. .spec

説明
spec 設定でユーザーが設定できる値を保持します。
object
プロパティー説明

appsDomain

string

appsDomain は、明示的なホストを指定せずにルートを作成するときに、ドメインフィールドで指定されたドメインの代わりに使用するオプションのドメインです。appsDomain が空でない場合、この値は Route のデフォルトのホスト値を生成するために使用されます。ドメインとは異なり、appsDomain はインストール後に変更される場合があります。これは、新しい ingresscontroller がワイルドカード証明書を使用してセットアップされていることを前提としています。

componentRoutes

array

componentRoutes は、クラスター管理者がホスト名とサービング証明書を設定できる OpenShift コンポーネントによって管理されるルートのオプションのリストです。このリストの各ルートの名前空間と名前は、status.componentRoutes リストの既存のエントリーと一致する必要があります。設定可能なルートのセットを判別するには、.status.componentRoutes リストの名前空間とエントリーの名前を確認します。ここで、参加している Operator が設定可能なルートのステータスを書き込みます。

componentRoutes[]

object

ComponentRouteSpec を使用すると、ルートのホスト名とサービング証明書を設定できます。

domain

string

ドメインは、ルートのホスト名が空の場合に、ルートのデフォルトのホスト名を生成するために使用されます。生成されたホスト名は、"<route-name>.<route-namespace>.<domain>" のパターンに従います。これは、入力のデフォルトのワイルドカードドメイン接尾辞としても使用されます。デフォルトの ingresscontroller ドメインは、"*.<domain>" のパターンに従います。一度設定すると、ドメインの変更は現在サポートされていません。

loadBalancer

object

loadBalancer には、現在のクラスターの基盤となるインフラストラクチャープロバイダーに固有のものだけではなく、Ingress Controller が OpenShift 上で動作するために必要となる、一般的なロードバランサーの詳細が含まれています。

requiredHSTSPolicies

array

requiredHSTSPolicies は、ポリシーで指定された domainPattern/s および namespaceSelector/s に一致する新しく作成または更新されたルートに設定する必要がある HSTS ポリシーを指定します。各 requiredHSTSPolicy には、ルート HSTS ポリシールートアノテーションを検証し、ルートアドミッションに影響を与えるために、少なくとも domainPattern と maxAge が必要です。HSTS ポリシールートアノテーションが付いている場合、候補ルートは HSTS ポリシーについてチェックされます: "haproxy.router.openshift.io/hsts_header" 例:haproxy.router.openshift.io/hsts_header:max-age = 31536000; preload; includeSubDomains-For 各候補ルートは、requiredHSTSPolicy domainPattern およびオプションの namespaceSelector と一致する場合、maxAge、preloadPolicy、および includeSubdomainsPolicy が許可されるために有効である必要があります。それ以外の場合、ルートは拒否されます。- domainPattern およびオプションの namespaceSelector による、RequiredHSTSPolicies の順序での最初の一致により、ルートのアドミッションステータスが決まります。- 候補ルートが requiredHSTSPolicy の domainPattern およびオプションの namespaceSelector と一致しない場合、HSTS ポリシーアノテーションを使用できます。HSTS ポリシー設定は、ルートがすでに作成された後で変更される場合があります。更新されたルートが更新された HSTS ポリシー設定に準拠していない場合、以前に許可されたルートへの更新は失敗する可能性があります。ただし、HSTS ポリシー設定を変更しても、すでに許可されているルートが機能しなくなることはありません。RequiredHSTSPolicies がない場合、ルート上のすべての HSTS ポリシーアノテーションが有効であることに注意してください。

requiredHSTSPolicies[]

object

 

16.1.2. .spec.componentRoutes

説明
componentRoutes は、クラスター管理者がホスト名とサービング証明書を設定できる OpenShift コンポーネントによって管理されるルートのオプションのリストです。このリストの各ルートの名前空間と名前は、status.componentRoutes リストの既存のエントリーと一致する必要があります。設定可能なルートのセットを判別するには、.status.componentRoutes リストの名前空間とエントリーの名前を確認します。ここで、参加している Operator が設定可能なルートのステータスを書き込みます。
array

16.1.3. .spec.componentRoutes[]

説明
ComponentRouteSpec を使用すると、ルートのホスト名とサービング証明書を設定できます。
object
必須
  • hostname
  • name
  • namespace
プロパティー説明

hostname

string

hostname は、ルートで使用されるホスト名です。

name

string

name は、カスタマイズするルートの論理名です。ルートをカスタマイズする場合は、この componentRoute の名前空間と名前が status.componentRoutes のリストの対応するエントリーと一致する必要があります。

namespace

string

namespace は、カスタマイズするルートの名前空間です。ルートをカスタマイズする場合は、この componentRoute の名前空間と名前が status.componentRoutes のリストの対応するエントリーと一致する必要があります。

servingCertKeyPairSecret

object

servingCertKeyPairSecret は、openshift-config 名前空間のタイプ kubernetes.io/tls のシークレットへの参照です。サービング証明書/キーのペアは一致する必要があり、この名前でサービングする目的を果たすために Operator によって使用されます。カスタムホスト名がクラスターのデフォルトのルーティング接尾辞を使用する場合、サービング証明書のシークレット指定は必要ありません。

16.1.4. .spec.componentRoutes[].servingCertKeyPairSecret

説明
servingCertKeyPairSecret は、openshift-config 名前空間のタイプ kubernetes.io/tls のシークレットへの参照です。サービング証明書/キーのペアは一致する必要があり、この名前でサービングする目的を果たすために Operator によって使用されます。カスタムホスト名がクラスターのデフォルトのルーティング接尾辞を使用する場合、サービング証明書のシークレット指定は必要ありません。
object
必須
  • name
プロパティー説明

name

string

name は、参照されるシークレットの metadata.name です。

16.1.5. .spec.loadBalancer

説明
loadBalancer には、現在のクラスターの基盤となるインフラストラクチャープロバイダーに固有のものだけではなく、Ingress Controller が OpenShift 上で動作するために必要となる、一般的なロードバランサーの詳細が含まれています。
object
プロパティー説明

platform

object

platform は、Ingress ロードバランサーの基盤となるインフラストラクチャープロバイダーに固有の設定を保持します。これを省略した場合、ユーザーには選択する意図がないことを意味し、プラットフォームが適切なデフォルトを選択します。これらのデフォルトは時間の経過とともに変更される可能性があります。

16.1.6. .spec.loadBalancer.platform

説明
platform は、Ingress ロードバランサーの基盤となるインフラストラクチャープロバイダーに固有の設定を保持します。これを省略した場合、ユーザーには選択する意図がないことを意味し、プラットフォームが適切なデフォルトを選択します。これらのデフォルトは時間の経過とともに変更される可能性があります。
object
プロパティー説明

aws

object

aws には、Amazon Web Services インフラストラクチャープロバイダーに固有の設定が含まれています。

type

string

type は、クラスターの基盤となるインフラストラクチャープロバイダーです。許可される値は、"AWS"、"Azure"、"BareMetal"、"GCP"、"Libvirt"、"OpenStack"、"VSphere"、"oVirt"、"KubeVirt"、"EquinixMetal"、"PowerVS"、"AlibabaCloud"、"Nutanix"、"None" です。個々のコンポーネントはすべてのプラットフォームをサポートしているわけではなく、認識されていないプラットフォームをサポートしていない場合は、そのプラットフォームをなしとして処理する必要があります。

16.1.7. .spec.loadBalancer.platform.aws

説明
aws には、Amazon Web Services インフラストラクチャープロバイダーに固有の設定が含まれています。
object
必須
  • type
プロパティー説明

type

string

type を使用すると、ユーザーはロードバランサーのタイプを設定できます。このフィールドが設定されている場合、指定された LBType を使用してデフォルトの ingresscontroller が作成されます。このフィールドが設定されていない場合、LBType Classic のデフォルトの ingress controller が作成されます。有効な値は次のとおりです。*"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 を参照してください。

16.1.8. .spec.requiredHSTSPolicies

説明
requiredHSTSPolicies は、ポリシーで指定された domainPattern/s および namespaceSelector/s に一致する新しく作成または更新されたルートに設定する必要がある HSTS ポリシーを指定します。各 requiredHSTSPolicy には、ルート HSTS ポリシールートアノテーションを検証し、ルートアドミッションに影響を与えるために、少なくとも domainPattern と maxAge が必要です。HSTS ポリシールートアノテーションが付いている場合、候補ルートは HSTS ポリシーについてチェックされます: "haproxy.router.openshift.io/hsts_header" 例:haproxy.router.openshift.io/hsts_header:max-age = 31536000; preload; includeSubDomains-For 各候補ルートは、requiredHSTSPolicy domainPattern およびオプションの namespaceSelector と一致する場合、maxAge、preloadPolicy、および includeSubdomainsPolicy が許可されるために有効である必要があります。それ以外の場合、ルートは拒否されます。- domainPattern およびオプションの namespaceSelector による、RequiredHSTSPolicies の順序での最初の一致により、ルートのアドミッションステータスが決まります。- 候補ルートが requiredHSTSPolicy の domainPattern およびオプションの namespaceSelector と一致しない場合、HSTS ポリシーアノテーションを使用できます。HSTS ポリシー設定は、ルートがすでに作成された後で変更される場合があります。更新されたルートが更新された HSTS ポリシー設定に準拠していない場合、以前に許可されたルートへの更新は失敗する可能性があります。ただし、HSTS ポリシー設定を変更しても、すでに許可されているルートが機能しなくなることはありません。RequiredHSTSPolicies がない場合、ルート上のすべての HSTS ポリシーアノテーションが有効であることに注意してください。
array

16.1.9. .spec.requiredHSTSPolicies[]

説明
object
必須
  • domainPatterns
プロパティー説明

domainPatterns

array (string)

domainPatterns は、必要な HSTS アノテーションが必要なドメインのリストです。domainPatterns が指定され、ドメインの 1 つと一致する spec.host を使用してルートが作成される場合、ルートは、一致する RequiredHSTSPolicy で説明されている HSTS ポリシーコンポーネントを指定する必要があります。ワイルドカードの使用は次のように許可され ます。.foo.com は foo.com の下のすべてに一致します。foo.com は foo.com とのみ一致するため、foo.com とその下のすべてをカバーするには、*both を指定する必要があります

includeSubDomainsPolicy

string

includeSubDomainsPolicy は、HSTS ポリシーがホストのドメイン名のすべてのサブドメインに適用される必要があることを意味します。したがって、ホスト bar.foo.com の場合、includeSubDomainsPolicy が RequireIncludeSubDomains に設定されていると、次のようになります。- ホスト app.bar.foo.com は bar.foo.com の HSTS ポリシーを継承します - ホスト bar.foo.com は bar.foo.com の HSTS ポリシー - ホスト foo.com は bar.foo.com の HSTS ポリシーを継承しません - ホスト def.foo.com は bar.foo.com の HSTS ポリシーを継承しません

maxAge

object

maxAge は、ホストが HSTS ホストと見なされる秒単位のデルタ時間範囲です。0 に設定すると、効果が無効になり、ホストは HSTS ホストとして削除されます。0 に設定し、includeSubdomains を指定すると、ホストのすべてのサブドメインも HSTS ホストとして削除されます。maxAge は存続時間の値であり、このポリシーがクライアントで更新されない場合、HSTS ポリシーは最終的にそのクライアントで期限切れになります。

namespaceSelector

object

namespaceSelector は、ポリシーがセレクターと一致するラベルを持つ名前空間にあり、DomainPatterns の 1 つにあるルートにのみ適用されるようにラベルセレクターを指定します。デフォルトは空の LabelSelector で、すべてに一致します。

preloadPolicy

string

preloadPolicy は、HSTS ヘッダーを取得するために初期ロードを実行する必要がないように、ホストをホストプリロードリストに含めるようにクライアントに指示します (これは RFC 6797 で定義されていないため、クライアントの実装に依存します)。

16.1.10. .spec.requiredHSTSPolicies[].maxAge

説明
maxAge は、ホストが HSTS ホストと見なされる秒単位のデルタ時間範囲です。0 に設定すると、効果が無効になり、ホストは HSTS ホストとして削除されます。0 に設定し、includeSubdomains を指定すると、ホストのすべてのサブドメインも HSTS ホストとして削除されます。maxAge は存続時間の値であり、このポリシーがクライアントで更新されない場合、HSTS ポリシーは最終的にそのクライアントで期限切れになります。
object
プロパティー説明

largestMaxAge

integer

RequiredHSTSPolicy max-age の最大許容値 (秒単位) この値は指定しないでおくことができます。その場合、上限は適用されません。

smallestMaxAge

integer

RequiredHSTSPolicy max-age の最小許容値 (秒単位)max-age = 0 を設定すると、ホストから既存の HSTS ヘッダーを削除できます。これは、管理者が間違いをすばやく修正するために必要なツールです。この値は指定しないでおくことができます。その場合、下限は適用されません。

16.1.11. .spec.requiredHSTSPolicies[].namespaceSelector

説明
namespaceSelector は、ポリシーがセレクターと一致するラベルを持つ名前空間にあり、DomainPatterns の 1 つにあるルートにのみ適用されるようにラベルセレクターを指定します。デフォルトは空の LabelSelector で、すべてに一致します。
object
プロパティー説明

matchExpressions

array

matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。

matchExpressions[]

object

ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。

matchLabels

object (string)

matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。

16.1.12. .spec.requiredHSTSPolicies[].namespaceSelector.matchExpressions

説明
matchExpressions はラベルセレクターの要件のリストです。要件は AND で結合されます。
array

16.1.13. .spec.requiredHSTSPolicies[].namespaceSelector.matchExpressions[]

説明
ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。
object
必須
  • key
  • operator
プロパティー説明

key

string

key は、セレクターの適用先のラベルキーです。

operator

string

operator はキーと値のセットの関係を表します。有効な演算子は In、NotIn、Exists、および DoesNotExist です。

array (string)

values は文字列値の配列です。operator が In または NotIn の場合には、values 配列を空白にできません。operator が Exists または DoesNotExist の場合には、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。

16.1.14. .status

説明
status クラスターから監視される値を保持します。それらはオーバーライドされない場合があります。
object
プロパティー説明

componentRoutes

array

componentRoutes は、参加している Operator が、クラスター管理者がホスト名とサービング証明書をカスタマイズできるルートの現在のルートステータスを配置する場所です。

componentRoutes[]

object

ComponentRouteStatus には、ルートのホスト名とサービング証明書の設定を可能にする情報が含まれています。

defaultPlacement

string

defaultPlacement はインストール時に設定され、デフォルトで Ingress ルーター Pod をホストするノードを制御します。オプションは、コントロールプレーンノードまたはワーカーノードです。このフィールドは、対応するデプロイメントの作成時に、Cluster Ingress Operator が IngressController リソース内の未設定のレプリカと nodePlacement フィールドをどのように考慮するかを指示します。詳細は、IngressController レプリカおよび nodePlacement フィールドのドキュメントを参照してください。省略した場合、デフォルト値は Workers です。

16.1.15. .status.componentRoutes

説明
componentRoutes は、参加している Operator が、クラスター管理者がホスト名とサービング証明書をカスタマイズできるルートの現在のルートステータスを配置する場所です。
array

16.1.16. .status.componentRoutes[]

説明
ComponentRouteStatus には、ルートのホスト名とサービング証明書の設定を可能にする情報が含まれています。
object
必須
  • defaultHostname
  • name
  • namespace
  • relatedObjects
プロパティー説明

conditions

array

条件は、componentRoutes エントリーの状態を伝達するために使用されます。サポートされている条件には、Available、Degraded、および Progressing が含まれます。利用可能が true の場合、ルートによって提供されるコンテンツにユーザーがアクセスできます。これには、cluster-admin によって指定されたカスタマイズされたルートが設定されている間、デフォルトがコンテンツを提供し続ける場合が含まれます。Degraded が true の場合、componentRoutes エントリーを処理しようとして問題が発生したことを意味します。currentHostnames フィールドは、有効な場合と無効な場合があります。Progressing が true の場合、コンポーネントが componentRoutes エントリーに関連するアクションを実行していることを意味します。

conditions[]

object

条件には、この API リソースの現在の状態の 1 つの側面の詳細が含まれています。--- この構造体は、フィールドパスの .status.conditions で配列として直接使用することを目的としています。たとえば、次のように入力します。FooStatus struct{ // Represents the observations of a foo’s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions" // other fields }

consumingUsers

array (string)

consumingUsers は、servingCertKeyPairSecret シークレットの読み取り権限が必要な ServiceAccounts のスライスです。

currentHostnames

array (string)

currentHostnames は、ルートで使用されている現在の名前のリストです。通常、このリストは単一のホスト名で構成されている必要がありますが、ルートで複数のホスト名がサポートされている場合、Operator はこのリストに複数のエントリーを書き込むことができます。

defaultHostname

string

defaultHostname は、カスタマイズ前のこのルートのホスト名です。

name

string

name は、カスタマイズするルートの論理名です。ルートリソースの実際の名前である必要はありませんが、名前を変更することはできません。ルートをカスタマイズする場合、この componentRoute の名前空間と名前は、spec.componentRoutes のリスト内の対応するエントリーと一致する必要があります。

namespace

string

namespace は、カスタマイズするルートの名前空間です。実際の名前空間である必要があります。実際の名前空間を使用すると、2 つのコンポーネントが競合することはなく、同じコンポーネントを複数回インストールできます。ルートをカスタマイズする場合、この componentRoute の名前空間と名前は、spec.componentRoutes のリスト内の対応するエントリーと一致する必要があります。

relatedObjects

array

relatedObjects は、spec.componentRoutes がどのように適用されるかをデバッグまたは検査するときに役立つリソースのリストです。

relatedObjects[]

object

ObjectReference には参照先のオブジェクトを調査または変更するのに十分な情報が含まれます。

16.1.17. .status.componentRoutes[].conditions

説明
条件は、componentRoutes エントリーの状態を伝達するために使用されます。サポートされている条件には、Available、Degraded、および Progressing が含まれます。利用可能が true の場合、ルートによって提供されるコンテンツにユーザーがアクセスできます。これには、cluster-admin によって指定されたカスタマイズされたルートが設定されている間、デフォルトがコンテンツを提供し続ける場合が含まれます。Degraded が true の場合、componentRoutes エントリーを処理しようとして問題が発生したことを意味します。currentHostnames フィールドは、有効な場合と無効な場合があります。Progressing が true の場合、コンポーネントが componentRoutes エントリーに関連するアクションを実行していることを意味します。
array

16.1.18. .status.componentRoutes[].conditions[]

説明
条件には、この API リソースの現在の状態の 1 つの側面の詳細が含まれています。--- この構造体は、フィールドパスの .status.conditions で配列として直接使用することを目的としています。たとえば、次のように入力します。FooStatus struct{ // Represents the observations of a foo’s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions" // other fields }
object
必須
  • lastTransitionTime
  • message
  • reason
  • status
  • type
プロパティー説明

lastTransitionTime

string

lastTransitionTime は、ある状態から別の状態に最後に遷移した時間です。これは、基本的な条件が変更された時点となります。不明な場合には、API フィールドが変更された時点を使用することも可能です。

message

string

message は、遷移の詳細を示す人が判読できるメッセージです。空の文字列の場合もあります。

observedGeneration

integer

observedGeneration は、それをベースに条件が設定された .metadata.generation を表します。たとえば、.metadata.generation が現在 12 で、.status.conditions[x].observedGeneration が 9 の場合、インスタンスの現在の状態に対して条件が古くなっています。

reason

string

reason には、条件の最後の遷移の理由を示すプログラムによる識別子が含まれます。特定の条件タイプのプロデューサーは、このフィールドの期待値と意味、および値が保証された API と見なされるかどうかを定義できます。値は CamelCase 文字列である必要があります。このフィールドには空白を指定できません。

status

string

条件のステータス、True、False、Unknown のいずれか。

type

string

CamelCase または foo.example.com/CamelCase の条件のタイプ。--- 多くの.condition.type 値は、Available などのリソース全体で一貫していますが、任意の条件が役立つ可能性があるため (.node.status.conditions を参照)、競合を解消する機能が重要です。一致する正規表現は (dns1123SubdomainFmt/)?(qualifiedNameFmt) です。

16.1.19. .status.componentRoutes[].relatedObjects

説明
relatedObjects は、spec.componentRoutes がどのように適用されるかをデバッグまたは検査するときに役立つリソースのリストです。
array

16.1.20. .status.componentRoutes[].relatedObjects[]

説明
ObjectReference には参照先のオブジェクトを調査または変更するのに十分な情報が含まれます。
object
必須
  • group
  • name
  • resource
プロパティー説明

group

string

指示対象のグループ。

name

string

参照先の名前。

namespace

string

参照先の namespace。

resource

string

指示対象のリソース。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.