第22章 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

22.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

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

spec

object

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

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

status

object

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

22.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 サブドメインの規則に従う必要があります。

httpHeaders

object

RouteHTTPHeaders は、HTTP ヘッダーのポリシーを定義します。

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' のみが許可されています。

22.1.2. .spec.alternateBackends

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

22.1.3. .spec.alternateBackends[]

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

kind

string

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

name

string

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

weight

integer

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

22.1.4. .spec.httpHeaders

説明
RouteHTTPHeaders は、HTTP ヘッダーのポリシーを定義します。
タイプ
object
プロパティータイプDescription

アクション

object

RouteHTTPHeaderActions は、HTTP リクエストおよび応答ヘッダーに対するアクションの設定を定義します。

22.1.5. .spec.httpHeaders.actions

説明
RouteHTTPHeaderActions は、HTTP リクエストおよび応答ヘッダーに対するアクションの設定を定義します。
タイプ
object
プロパティータイプDescription

request

array

request は、変更する HTTP リクエストヘッダーのリストです。現在、アクションはヘッダーの値を 設定 または 削除 のいずれかに定義できます。ここで定義されたアクションは、ルートを介して行われるすべてのリクエストの要求ヘッダーを変更します。これらのアクションは、クラスター内で定義された特定の Route (ルートを介して行われる接続など)に適用されます。現在、アクションはヘッダーの値を 設定 または 削除 のいずれかに定義できます。ルートアクションは、リクエストヘッダーの IngressController アクションの後に実行されます。アクションは、この一覧で定義されているように順番に適用されます。最大 20 個の要求ヘッダーアクションを設定できます。このフィールドを使用して、クライアントからアプリケーションに接続を転送するときに設定または削除する HTTP リクエストヘッダーを指定できます。Sample fetchers allowed are "req.hdr" and "ssl_c_der".許可されるコンバーターは、より低いコンバーターと base64 です。Example header values: "%[req.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]".この API を使用して Route リソース経由で直接適用される要求ヘッダー設定は、IngressController またはルートアノテーションの spec.httpHeaders.actions で適用される同じ名前のヘッダーのヘッダー設定をオーバーライドします。注記:ルートが TLS パススルーを使用する場合、このフィールドは使用できません。

request[]

object

RouteHTTPHeader は、HTTP ヘッダーを設定または削除するための設定を指定します。

response

array

response は、変更する HTTP 応答ヘッダーのリストです。現在、アクションはヘッダーの値を 設定 または 削除 のいずれかに定義できます。ここで定義されたアクションは、ルートを介して行われるすべてのリクエストのレスポンスヘッダーを変更します。これらのアクションは、クラスター内で定義された特定の Route (ルートを介して行われる接続など)に適用されます。ルートアクションは、応答ヘッダーの IngressController アクションの前に実行されます。アクションは、この一覧で定義されているように順番に適用されます。レスポンスヘッダーの最大アクションは 20 個設定できます。このフィールドを使用して、アプリケーションからクライアントにレスポンスを転送するときに設定または削除する HTTP 応答ヘッダーを指定できます。Sample fetchers allowed are "res.hdr" and "ssl_c_der".許可されるコンバーターは、より低いコンバーターと base64 です。Example header values: "%[res.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]".注記:ルートが TLS パススルーを使用する場合、このフィールドは使用できません。

response[]

object

RouteHTTPHeader は、HTTP ヘッダーを設定または削除するための設定を指定します。

22.1.6. .spec.httpHeaders.actions.request

説明
request は、変更する HTTP リクエストヘッダーのリストです。現在、アクションはヘッダーの値を 設定 または 削除 のいずれかに定義できます。ここで定義されたアクションは、ルートを介して行われるすべてのリクエストの要求ヘッダーを変更します。これらのアクションは、クラスター内で定義された特定の Route (ルートを介して行われる接続など)に適用されます。現在、アクションはヘッダーの値を 設定 または 削除 のいずれかに定義できます。ルートアクションは、リクエストヘッダーの IngressController アクションの後に実行されます。アクションは、この一覧で定義されているように順番に適用されます。最大 20 個の要求ヘッダーアクションを設定できます。このフィールドを使用して、クライアントからアプリケーションに接続を転送するときに設定または削除する HTTP リクエストヘッダーを指定できます。Sample fetchers allowed are "req.hdr" and "ssl_c_der".許可されるコンバーターは、より低いコンバーターと base64 です。Example header values: "%[req.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]".この API を使用して Route リソース経由で直接適用される要求ヘッダー設定は、IngressController またはルートアノテーションの spec.httpHeaders.actions で適用される同じ名前のヘッダーのヘッダー設定をオーバーライドします。注記:ルートが TLS パススルーを使用する場合、このフィールドは使用できません。
タイプ
array

22.1.7. .spec.httpHeaders.actions.request[]

説明
RouteHTTPHeader は、HTTP ヘッダーを設定または削除するための設定を指定します。
タイプ
object
必須
  • name
  • action
プロパティータイプ説明

action

object

RouteHTTPHeaderActionUnion は、HTTP ヘッダーに対して実行するアクションを指定します。

name

string

name は、アクションを実行するヘッダーの名前を指定します。この値は、RFC 2616 セクション 4.2 で定義されている有効な HTTP ヘッダー名である必要があります。名前は英数字と以下の特殊文字 "-!#$%&'*+.^_' のみで設定する必要があります。以下のヘッダー名は予約されており、この API では変更できません:Strict-Transport-Security、Proxy、Cookie、Set-Cookie。255 文字以下である必要があります。ヘッダー名は一意である必要があります。

22.1.8. .spec.httpHeaders.actions.request[].action

説明
RouteHTTPHeaderActionUnion は、HTTP ヘッダーに対して実行するアクションを指定します。
タイプ
object
必須
  • type
プロパティータイプ説明

set

object

RouteSetHTTPHeader は、HTTP ヘッダーで設定する必要がある値を指定します。

type

string

type は、ヘッダーに適用されるアクションのタイプを定義します。使用できる値は Set または Delete です。Set を使用すると、HTTP リクエストとレスポンスヘッダーを設定できます。Delete を使用すると、HTTP リクエストとレスポンスヘッダーを削除できます。

22.1.9. .spec.httpHeaders.actions.request[].action.set

説明
RouteSetHTTPHeader は、HTTP ヘッダーで設定する必要がある値を指定します。
タイプ
object
必須
  • value
プロパティータイプDescription

value

string

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 の値を超えてはなりません。

22.1.10. .spec.httpHeaders.actions.response

説明
response は、変更する HTTP 応答ヘッダーのリストです。現在、アクションはヘッダーの値を 設定 または 削除 のいずれかに定義できます。ここで定義されたアクションは、ルートを介して行われるすべてのリクエストのレスポンスヘッダーを変更します。これらのアクションは、クラスター内で定義された特定の Route (ルートを介して行われる接続など)に適用されます。ルートアクションは、応答ヘッダーの IngressController アクションの前に実行されます。アクションは、この一覧で定義されているように順番に適用されます。レスポンスヘッダーの最大アクションは 20 個設定できます。このフィールドを使用して、アプリケーションからクライアントにレスポンスを転送するときに設定または削除する HTTP 応答ヘッダーを指定できます。Sample fetchers allowed are "res.hdr" and "ssl_c_der".許可されるコンバーターは、より低いコンバーターと base64 です。Example header values: "%[res.hdr(X-target),lower]", "%{+Q}[ssl_c_der,base64]".注記:ルートが TLS パススルーを使用する場合、このフィールドは使用できません。
タイプ
array

22.1.11. .spec.httpHeaders.actions.response[]

説明
RouteHTTPHeader は、HTTP ヘッダーを設定または削除するための設定を指定します。
タイプ
object
必須
  • name
  • action
プロパティータイプ説明

action

object

RouteHTTPHeaderActionUnion は、HTTP ヘッダーに対して実行するアクションを指定します。

name

string

name は、アクションを実行するヘッダーの名前を指定します。この値は、RFC 2616 セクション 4.2 で定義されている有効な HTTP ヘッダー名である必要があります。名前は英数字と以下の特殊文字 "-!#$%&'*+.^_' のみで設定する必要があります。以下のヘッダー名は予約されており、この API では変更できません:Strict-Transport-Security、Proxy、Cookie、Set-Cookie。255 文字以下である必要があります。ヘッダー名は一意である必要があります。

22.1.12. .spec.httpHeaders.actions.response[].action

説明
RouteHTTPHeaderActionUnion は、HTTP ヘッダーに対して実行するアクションを指定します。
タイプ
object
必須
  • type
プロパティータイプ説明

set

object

RouteSetHTTPHeader は、HTTP ヘッダーで設定する必要がある値を指定します。

type

string

type は、ヘッダーに適用されるアクションのタイプを定義します。使用できる値は Set または Delete です。Set を使用すると、HTTP リクエストとレスポンスヘッダーを設定できます。Delete を使用すると、HTTP リクエストとレスポンスヘッダーを削除できます。

22.1.13. .spec.httpHeaders.actions.response[].action.set

説明
RouteSetHTTPHeader は、HTTP ヘッダーで設定する必要がある値を指定します。
タイプ
object
必須
  • value
プロパティータイプDescription

value

string

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 の値を超えてはなりません。

22.1.14. .spec.port

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

targetPort

IntOrString

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

22.1.15. .spec.tls

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

caCertificate

string

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

certificate

string

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

destinationCACertificate

string

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

externalCertificate

object

LocalObjectReference には、同じ namespace 内で参照オブジェクトを見つけるのに十分な情報が含まれます。

insecureEdgeTerminationPolicy

string

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

ルートが insecureEdgeTerminationPolicy を指定しない場合、デフォルトの動作は None です。

* allow - トラフィックはセキュアでないポートでサーバーに送信されます(edge/reencrypt 終端のみ)。

* none - 安全でないポートでのトラフィックは許可されません(デフォルト)。

*Redirect - クライアントはセキュアなポートにリダイレクトされます。

key

string

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

termination

string

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

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

注記:passthrough termination には httpHeader アクションとの互換性がありません。

22.1.16. .spec.tls.externalCertificate

説明
LocalObjectReference には、同じ namespace 内で参照オブジェクトを見つけるのに十分な情報が含まれます。
タイプ
object
プロパティータイプ説明

name

string

参照先の名前。詳細: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

22.1.17. .spec.to

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

kind

string

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

name

string

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

weight

integer

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

22.1.18. .status

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

ingress

array

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

ingress[]

object

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

22.1.19. .status.ingress

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

22.1.20. .status.ingress[]

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

conditions

array

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

conditions[]

object

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

host

string

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

routerCanonicalHostname

string

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

routerName

string

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

wildcardPolicy

string

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

22.1.21. .status.ingress[].conditions

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

22.1.22. .status.ingress[].conditions[]

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

lastTransitionTime

Time

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

message

string

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

reason

string

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

status

string

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

type

string

タイプは条件のタイプです。現在、Admitted または UnservableInFutureVersions のみ。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.