type
status
date
slug
summary
tags
category
icon
password
书籍
ルートの作成
目標
このセクションを完了すると、学生はサービスへのルートを作成できるようになります。
ルートの操作
OpenShift インスタンス内の Pod 同士がネットワークアクセスを許可するのがサービスである一方、ルートは OpenShift インスタンスの外部からのユーザーやアプリケーションに対してネットワークアクセスを提供します。

図 9.3: OpenShift のルートと Kubernetes サービス
ルートは、公開されている IP アドレスと DNS ホスト名を内部のサービス IP に接続します。実際には、パフォーマンスを向上させ、レイテンシを減らすために、OpenShift のルーターは内部の Pod ソフトウェア定義ネットワーク(SDN)を使用して直接 Pod に接続します。サービスを使用して、エンドポイント(サービスによって公開された Pod)を見つけます。
OpenShift のルートは、OpenShift インスタンス内で実行される Pod として動作し、他の一般的な Pod のようにスケールや複製が可能な共有ルーターサービスによって実装されます。このルーターサービスは、オープンソースソフトウェアである HAProxy をベースにしています。
OpenShift の管理者にとって重要な点は、ルート用に設定された公開 DNS ホスト名が、ルーターを実行しているノードの公開 IP アドレスを指すように設定される必要があることです。通常のアプリケーション Pod と異なり、ルーター Pod は内部 Pod SDN ではなく、ノードの公開 IP アドレスにバインドされます。
最小限のルート定義(JSON 形式)の例
この例では、
Route
というリソースが定義されています。kind
が Route
であることを示し、metadata.name
にはこのルートの識別子である quoteapp
が設定されています。重要なのは
spec
属性で、次の項目が含まれています:- host: ルートに関連付けられた FQDN(完全修飾ドメイン名)で、あらかじめ OpenShift ルーターの IP アドレスに解決される必要があります。
- to: ルートが指すリソースタイプを指定するオブジェクトで、この例では
quoteapp
という名前の OpenShift サービスを指しています。
注記:
リソース名は重複しません。たとえば、
quoteapp
という名前のルートが、同じ名前のサービスを指すことは問題ありません。重要:
サービスは特定のラベルを持つ Pod リソースとリンクするためにセレクターを使用しますが、ルートはサービスリソース名に直接リンクします。
ルートの作成
ルートリソースは、JSON または YAML 形式のリソース定義ファイルを提供することで、
oc create
を使って作成できます。oc new-app
コマンドは、コンテナイメージ、Dockerfile、またはアプリケーションソースコードから Pod をビルドする際にルートリソースを作成しません。oc new-app
は Pod が OpenShift インスタンスの外部からアクセスされるかどうかを認識しないためです。テンプレートから Pod を作成する場合、そのテンプレートにはルートリソースを含めることができます。同じことがウェブコンソールにも当てはまります。ルートの別の作成方法
oc expose
コマンドを使用して、サービスリソース名を入力としてルートを作成することもできます。--name
オプションを使用すると、ルートリソースの名前を制御できます。例えば:テンプレートまたは
oc expose
コマンドから作成されたルートは、次のような形式の DNS 名を生成します:ここで:
- route-name はルートに明示的に割り当てられた名前、または
oc new-app
やoc expose
(-name
オプション)で使用されたリソースの名前です。
- project-name はリソースが含まれているプロジェクトの名前です。
- default-domain は OpenShift マスターで設定され、OpenShift インストール時のワイルドカード DNS ドメインに対応しています。
例えば、プロジェクト
test
で quote
というルートを作成し、OpenShift インスタンスのワイルドカードドメインが cloudapps.example.com
であれば、結果として FQDN は quotetest.cloudapps.example.com
になります。注記:
ワイルドカードドメインをホストする DNS サーバーは、ルートホスト名については何も知りません。DNS サーバーは単に名前を設定された IP アドレスに解決します。ルートホスト名について知っているのは OpenShift ルーターのみで、各ホスト名は HTTP 仮想ホストとして処理されます。無効なワイルドカードドメインホスト名(ルートに対応していないホスト名)は OpenShift ルーターによってブロックされ、HTTP 404 エラーが発生します。
デフォルトドメインの確認
サブドメインまたはデフォルトドメインは、OpenShift の設定ファイル
masterconfig.yaml
の routingConfig
セクションで、キーワード subdomain
を使って定義されています。例えば、以下のように設定されます:参考資料
OpenShift におけるルートのアーキテクチャに関する追加情報は、OpenShift Container Platform のドキュメント「ルート」セクションにあります:
ルートに関する開発者向けの追加情報は、OpenShift Container Platform のドキュメント「開発者ガイド」セクションにあります:
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/1a6d7ae8-88e2-803d-8513-dde554624b46
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章