Ingress セットアップの計画
Ingress コントローラーによって管理される Ingress リソースを作成することによって、Red Hat® OpenShift® on IBM Cloud® クラスター内の複数のアプリを公開します。
Satellite でアプリを公開する方法については、「 Satellite クラスタでのアプリの公開 」を参照してください。
1 つのプロジェクトを使用する場合と複数のプロジェクトを使用する場合のネットワーキングの計画
公開したいアプリを含むプロジェクトごとに、Ingressリソースが1つ必要です。
1 つのプロジェクトにすべてのアプリを入れる場合
クラスター内のすべてのアプリが同じプロジェクトにある場合は、公開したいアプリのルーティングルールを定義するために、1つのIngressリソースを作成してください。
例えば、開発用プロジェクトにあるサービスで app1 と app2 を公開する場合は、そのプロジェクトで 1 つの Ingress リソースを作成できます。 そのリソースで、domain.net をホストとして指定し、各アプリが domain.net で listen するパスを登録します。
ただし、同じプロジェクトに属するアプリが複数の異なるドメインを使用できるようにする場合は、ドメインごとに 1 つのリソースを作成します。
複数のプロジェクトにアプリを入れる場合
クラスター内のアプリが異なるプロジェクトにある場合は、各プロジェクトごとに1つのIngressリソースを作成し、アプリのルーティングルールを定義してください。
複数のリソースで同じドメインを定義することも、ワイルドカード・ドメインを使用して、Ingress リソース内でプロジェクトごとに別々のサブドメインを指定することもできます。
ワイルドカード・ドメインを登録すると、複数のサブドメインがすべて同じホストに解決されるように指定できます。 IBM 提供の Ingress サブドメイン・ワイルドカード *.<cluster_name>-<globally_unique_account_HASH>-0000.<region>.containers.appdomain.cloud は、デフォルトでクラスターに登録されています。
IBM 提供の TLS 証明書はワイルドカード証明書ですので、ワイルドカード・サブドメインに使用できます。 ワイルドカード・カスタム・ドメインを使用する場合は、カスタム・ドメインを *.custom_domain.net などのワイルドカード・ドメインとして登録する必要があります。TLS を使用する場合は、ワイルドカード証明を取得する必要があります。
ワイルドカード・サブドメインの使用例として以下のシナリオを考えてみます。
- テスト用の同じアプリに
app1とapp3という 2 つのバージョンがあります。 - それらのアプリを同じクラスター内の 2 つの異なるプロジェクトにデプロイします (
app1を開発用プロジェクトに、app3をステージング用プロジェクトにデプロイします)。
異なる複数のサブドメインを使用してそれらのアプリへのトラフィックを管理するには、以下のサービスとリソースを作成します。
app1を公開する開発用プロジェクトの Kubernetes サービス。- ホストを
dev.domain.netとして指定する、開発用プロジェクト内の Ingress リソース。 app3を公開するステージング用プロジェクトの Kubernetes サービス。- ホストを
stage.domain.netとして指定する、ステージング用プロジェクト内の Ingress リソース。
これで、両方の URL が同じドメインに解決されるようになります。 ただし、ステージング・プロジェクト内のリソースは stage サブドメインに登録されているため、Ingress コントローラーは、stage.domain.net/app3 URL からの要求を app3 のみに正しくプロキシー処理します。
1 つのプロジェクトの中で複数のドメインを使用する場合
それぞれのプロジェクトでは、1 つのドメインを使用して、そのプロジェクト内のすべてのアプリにアクセスできます。 1つのプロジェクト内のアプリごとに異なるドメインを使用したい場合は、ワイルドカードドメインを使用してください。 ワイルドカード・ドメインを登録すると、すべてのサブドメインが同じホストに解決されます。 そうすれば、1 つのリソースを使用し、そのリソースの中で複数のサブドメイン・ホストを指定することができます。 あるいは別の方法として、そのプロジェクトで複数の Ingress リソースを作成し、各 Ingress リソースで別々のサブドメインを指定することも可能です。
IBM 提供の Ingress サブドメイン・ワイルドカード *.<cluster_name>-<globally_unique_account_HASH>-0000.<region>.containers.appdomain.cloud は、デフォルトでクラスターに登録されています。 IBM 提供の TLS 証明書はワイルドカード証明書ですので、ワイルドカード・サブドメインに使用できます。 ワイルドカード・カスタム・ドメインを使用する場合は、カスタム・ドメインを
*.custom_domain.net などのワイルドカード・ドメインとして登録する必要があります。TLS を使用する場合は、ワイルドカード証明を取得する必要があります。