第16章 Route [route.openshift.io/v1]


説明

ルートを使用すると、開発者は HTTP(S) 対応の負荷分散とパブリック DNS エントリーを介したプロキシー階層を介してサービスを公開できます。ルートは、TLS オプションと証明書をさらに指定するか、ルーターが HTTP および HTTPS トラフィックに対しても受け入れる必要があるパブリック CNAME を指定する場合があります。管理者は通常、ルーターをクラスターファイアウォールの外側に表示されるように設定し、サービスコンテンツにセキュリティー、キャッシュ、またはトラフィック制御を追加する場合もあります。ルーターは通常、サービスエンドポイントと直接通信します。

ルートが作成されると、host フィールドは変更されない場合があります。通常、ルーターは、競合を解決するときに、特定のホストで最も古いルートを使用します。

ルーターは追加のカスタマイズの対象であり、アノテーションフィールドを介して追加の制御をサポートする場合があります。

管理者は複数のルーターを設定できるため、ルートステータスフィールドは、各ルーターの下のルートの名前と状態に関する情報をクライアントに返すために使用されます。たとえば、クライアントが重複した名前を選択した場合、ルートステータス条件を使用して、ルートを選択できないことを示します。

ルートで HTTP/2 ALPN を有効にするには、カスタム (非ワイルドカード) 証明書が必要です。これにより、クライアント、特に Web ブラウザーによる接続の結合が防止されます。接続の再利用/結合のリスクがあるため、デフォルトの証明書を使用するルートでは HTTP/2ALPN をサポートしていません。そのため、独自のカスタム証明書を持たないルートは、フロントエンドまたはバックエンドのいずれかで HTTP/2 ALPN で有効にされません。

互換性レベル 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

 

spec

object

RouteSpec は、ルートが公開するホスト名またはパス、セキュリティー情報、およびルートが指す 1 つから 4 つのバックエンド (サービス) を記述します。要求は、各バックエンドに割り当てられた重みに応じてバックエンドに分散されます。ラウンドロビンスケジューリングを使用する場合、各バックエンドに送信される要求の部分は、バックエンドの重みをすべてのバックエンドの重みの合計で割ったものです。バックエンドに複数のエンドポイントがある場合、バックエンドで終了する要求は、エンドポイント間でラウンドロビン分散されます。重みは 0〜256 で、デフォルトは 100 です。重みが 0 の場合は、バックエンドへの要求は送信されません。すべての重みがゼロの場合、ルートにはバックエンドがないと見なされ、標準の 503 応答が返されます。

tls フィールドはオプションであり、ルートの特定の証明書または動作を許可します。ルーターは通常、ワイルドカードドメインでデフォルトの証明書を設定して、明示的な証明書なしでルートを終了しますが、カスタムホスト名は通常、パススルー (TLS サーバー - 名前 - 表示フィールドを介してトラフィックをバックエンドに直接送信する) を選択するか、証明書を提供する必要があります。

status

object

RouteStatus は、どのルーターがルートを確認するかなど、ルートのステータスの関連情報を提供します。

16.1.1. .spec

説明

RouteSpec は、ルートが公開するホスト名またはパス、セキュリティー情報、およびルートが指す 1 つから 4 つのバックエンド (サービス) を記述します。要求は、各バックエンドに割り当てられた重みに応じてバックエンドに分散されます。ラウンドロビンスケジューリングを使用する場合、各バックエンドに送信される要求の部分は、バックエンドの重みをすべてのバックエンドの重みの合計で割ったものです。バックエンドに複数のエンドポイントがある場合、バックエンドで終了する要求は、エンドポイント間でラウンドロビン分散されます。重みは 0〜256 で、デフォルトは 100 です。重みが 0 の場合は、バックエンドへの要求は送信されません。すべての重みがゼロの場合、ルートにはバックエンドがないと見なされ、標準の 503 応答が返されます。

tls フィールドはオプションであり、ルートの特定の証明書または動作を許可します。ルーターは通常、ワイルドカードドメインでデフォルトの証明書を設定して、明示的な証明書なしでルートを終了しますが、カスタムホスト名は通常、パススルー (TLS サーバー - 名前 - 表示フィールドを介してトラフィックをバックエンドに直接送信する) を選択するか、証明書を提供する必要があります。

object
必須
  • to
プロパティータイプ説明

alternateBackends

array

AlternativeBackends を使用すると、最大 3 つの追加のバックエンドをルートに割り当てることができます。Kind は Service のみ使用でき、デフォルトは Service になります。RouteTargetReference オブジェクトの重みフィールドを使用して、相対的な優先順位を指定します。

alternateBackends[]

object

RouteTargetReference は、エンドポイントに解決されるターゲットを指定します。kind は 'Service' のみ使用できます。'weight' フィールドを使用して、1 つを他よりも強調します。

host

string

ホストは、サービスを指すエイリアス/DNS です。任意。指定しない場合、ルート名は通常自動的に選択されます。DNS952 サブドメインの規則に従う必要があります。

path

string

トラフィックをサービスにルーティングするために、ルーターが監視するパス。任意。

port

object

RoutePort は、ルーターからサービスエンドポイントのエンドポイントへのポートマッピングを定義します。

subdomain

string

サブドメインは、Ingress コントローラーのドメイン内で (サブドメインとして) 要求される DNS サブドメインです。ホストが設定されている場合、このフィールドは無視されます。Ingress コントローラーは、この提案された名前を無視できます。その場合、コントローラーは、割り当てられた名前を status.ingress 配列に報告するか、ルートの許可を拒否します。この値が設定されていて、サーバーがこのフィールドをサポートしていない場合、ホストは自動的に入力されます。それ以外の場合、ホストは空のままになります。フィールドにはドットで区切られた複数の部分が含まれる場合がありますが、すべての Ingress コントローラーが要求を受け入れるとは限りません。このフィールドは、ルートの更新/カスタムホスト権限を持つユーザーを除いて、作成後に変更することはできません。

例: サブドメイン frontend は、ルーターサブドメイン apps.mycluster.com を自動的に受信して、完全なホスト名 frontend.apps.mycluster.com を取得します。

tls

object

TLSConfig は、ルートを保護し、終了を提供するために使用される設定を定義します。

to

object

RouteTargetReference は、エンドポイントに解決されるターゲットを指定します。kind は 'Service' のみ使用できます。'weight' フィールドを使用して、1 つを他よりも強調します。

wildcardPolicy

string

ルートにワイルドカードポリシーがある場合。現在、'Subdomain' または 'None' のみが許可されています。

16.1.2. .spec.alternateBackends

説明
AlternativeBackends を使用すると、最大 3 つの追加のバックエンドをルートに割り当てることができます。Kind は Service のみ使用でき、デフォルトは Service になります。RouteTargetReference オブジェクトの重みフィールドを使用して、相対的な優先順位を指定します。
array

16.1.3. .spec.alternateBackends[]

説明
RouteTargetReference は、エンドポイントに解決されるターゲットを指定します。kind は 'Service' のみ使用できます。'weight' フィールドを使用して、1 つを他よりも強調します。
object
必須
  • kind
  • name
プロパティータイプ説明

kind

string

ルートが参照しているターゲットの kind。現在、Service のみが許可されています。

name

string

参照されているサービス/ターゲットの名前。例: サービスの名前

weight

integer

0〜256 の整数としての重み (デフォルトは 100)。これは、他のターゲット参照オブジェクトに対するターゲットの相対的な重みを指定します。0 は、このバックエンドへの要求を抑制します。

16.1.4. .spec.port

説明
RoutePort は、ルーターからサービスエンドポイントのエンドポイントへのポートマッピングを定義します。
object
必須
  • targetPort
プロパティータイプ説明

targetPort

IntOrString

このルートが指すサービスによって選択された Pod のターゲットポート。これが文字列の場合は、ターゲットエンドポイントのポートリストで名前付きポートとして検索されます。必須

16.1.5. .spec.tls

説明
TLSConfig は、ルートを保護し、終了を提供するために使用される設定を定義します。
object
必須
  • termination
プロパティータイプ説明

caCertificate

string

caCertificate は、証明書機関の証明書の内容を提供します

certificate

string

certificate は証明書の内容を提供します。これは、証明書チェーンではなく、単一のサービス証明書である必要があります。CA 証明書を含めないでください。

destinationCACertificate

string

destinationCACertificate は、最終的な宛先の CA 証明書の内容を提供します。reencrypt の停止を使用する場合は、ルーターがセキュアな接続のヘルスチェックに使用するためにこのファイルを提供する必要があります。このフィールドが指定されていない場合、ルーターは独自の宛先 CA を提供し、短いサービス名 (service.namespace.svc) を使用してホスト名の検証を実行する可能性があります。これにより、インフラストラクチャーが生成した証明書を自動的に検証できます。

insecureEdgeTerminationPolicy

string

insecureEdgeTerminationPolicy は、ルートへの安全でない接続に必要な動作を示します。各ルーターは公開するポートを独自に決定することがありますが、通常はポート 80 になります。

*許可 - トラフィックは安全でないポートでサーバーに送信されます (デフォルト)。*無効 - 安全でないポートでのトラフィックは許可されません。*リダイレクト - クライアントはセキュアポートにリダイレクトされます。

key

string

key はキーファイルの内容を提供します。

termination

string

termination はターミネーションタイプを示します。

*edge -TLS Termination はルーターによって行われ、http はバックエンドとの通信に使用されます (デフォルト)。* passthrough - トラフィックはルーターが TLS Termination を提供せずに宛先に直接送信されます。*reencrypt -TLS Termination はルーターとによって行われ、https はバックエンドとの通信に使用されます。

16.1.6. .spec.to

説明
RouteTargetReference は、エンドポイントに解決されるターゲットを指定します。kind は 'Service' のみ使用できます。'weight' フィールドを使用して、1 つを他よりも強調します。
object
必須
  • kind
  • name
プロパティータイプ説明

kind

string

ルートが参照しているターゲットの kind。現在、Service のみが許可されています。

name

string

参照されているサービス/ターゲットの名前。例: サービスの名前

weight

integer

0〜256 の整数としての重み (デフォルトは 100)。これは、他のターゲット参照オブジェクトに対するターゲットの相対的な重みを指定します。0 は、このバックエンドへの要求を抑制します。

16.1.7. .status

説明
RouteStatus は、どのルーターがルートを確認するかなど、ルートのステータスの関連情報を提供します。
object
プロパティータイプ説明

ingress

array

ingress は、ルートが公開する可能性のある場所を表します。Ingress ポイントのリストには、Host または RouterName の値が重複して含まれる可能性があります。Ready になると、ルートはライブと見なされます。

ingress[]

object

RouteIngress は、ルートが公開されている場所に関する情報を保持します。

16.1.8. .status.ingress

説明
ingress は、ルートが公開する可能性のある場所を表します。Ingress ポイントのリストには、Host または RouterName の値が重複して含まれる可能性があります。Ready になると、ルートはライブと見なされます。
array

16.1.9. .status.ingress[]

説明
RouteIngress は、ルートが公開されている場所に関する情報を保持します。
object
プロパティータイプ説明

conditions

array

Conditions はルートの状態であり、空の場合があります。

conditions[]

object

RouteIngressCondition には、特定のルーターにおけるこのルートの現況に関する情報が含まれます。

host

string

Host は、ルートが公開されるホスト文字列です。この値は必須です。

routerCanonicalHostname

string

CanonicalHostname は、このルートに要求されたホストの CNAME として使用できるルーターの外部ホスト名です。この値はオプションであり、すべての場合に設定できるとは限りません。

routerName

string

名前は、ルーターが自身を識別するために選択した名前です。この値は必須です。

wildcardPolicy

string

Wildcardpolicy は、このルートが公開されている場所で許可されたワイルドカードポリシーです。

16.1.10. .status.ingress[].conditions

説明
Conditions はルートの状態であり、空の場合があります。
array

16.1.11. .status.ingress[].conditions[]

説明
RouteIngressCondition には、特定のルーターにおけるこのルートの現況に関する情報が含まれます。
object
必須
  • type
  • status
プロパティータイプ説明

lastTransitionTime

Time

この条件が最後に遷移した RFC3339 の日付と時刻

message

string

最後にある状態から別の状態に遷移した時間。

reason

string

(簡単な) 状態の最後の遷移の理由であり、通常は機械と人間が読み取れる定数です。

status

string

ステータスは、状態のステータスです。True、False、Unknown の場合があります。

type

string

タイプは条件のタイプです。現在のみ承認されています。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.