type
Post
status
Published
date
Feb 26, 2025
slug
summary
tags
DO285
Redhat
EX280
学習ノート
category
民間資格勉強
icon
password

ルートの作成

目標

このセクションを完了すると、学生はサービスへのルートを作成できるようになります。

ルートの操作

OpenShift インスタンス内の Pod 同士がネットワークアクセスを許可するのがサービスである一方、ルートは OpenShift インスタンスの外部からのユーザーやアプリケーションに対してネットワークアクセスを提供します。
notion image
図 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 というリソースが定義されています。kindRoute であることを示し、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-appoc expose-name オプション)で使用されたリソースの名前です。
  • project-name はリソースが含まれているプロジェクトの名前です。
  • default-domain は OpenShift マスターで設定され、OpenShift インストール時のワイルドカード DNS ドメインに対応しています。
例えば、プロジェクト testquote というルートを作成し、OpenShift インスタンスのワイルドカードドメインが cloudapps.example.com であれば、結果として FQDN は quotetest.cloudapps.example.com になります。
注記: ワイルドカードドメインをホストする DNS サーバーは、ルートホスト名については何も知りません。DNS サーバーは単に名前を設定された IP アドレスに解決します。ルートホスト名について知っているのは OpenShift ルーターのみで、各ホスト名は HTTP 仮想ホストとして処理されます。無効なワイルドカードドメインホスト名(ルートに対応していないホスト名)は OpenShift ルーターによってブロックされ、HTTP 404 エラーが発生します。

デフォルトドメインの確認

サブドメインまたはデフォルトドメインは、OpenShift の設定ファイル masterconfig.yamlroutingConfig セクションで、キーワード subdomain を使って定義されています。例えば、以下のように設定されます:

参考資料

OpenShift におけるルートのアーキテクチャに関する追加情報は、OpenShift Container Platform のドキュメント「ルート」セクションにあります:
ルートに関する開発者向けの追加情報は、OpenShift Container Platform のドキュメント「開発者ガイド」セクションにあります:
 
37- 第9章:OpenShift上でのコンテナ化アプリケーションのデプロイ-4:(S2I)でアプリケーション作成の演習39- 第9章:OpenShift上でのコンテナ化アプリケーションのデプロイ-6:ルートの作成の演習
Loading...
minami
minami
みなみの成長 🐝
Announcement

🎉 ブログへようこそ 🎉

名前: みなみ一人会社
性別:
国籍: China 🇨🇳
政治スタンス: 民主主義支持者
完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
独学で合格できる学習法や勉強法、試験対策を発信中!

📚 発信内容

  • 💻 IT・システム開発
  • 🏠 不動産 × 宅建士
  • 🎓 MBA 学習記録