非公開スペースでは、すべてのアプリケーションレプリカが非公開スペース内のエンドポイントを公開しています。インバウンドトラフィックを有効にすると、このエンドポイントは外部に公開されます。
非公開スペースの内部ドメイン内のすべてのアプリケーションに DNS レコードがあります。たとえば、2abc2ce6-cce6-463b-afaa-a1979e3xxxxx 環境のアプリケーション helloch2 の DNS レコードは次のとおりです。
helloch2.2abc2ce6-cce6-463b-afaa-a1979e3xxxxx.svc.cluster.local
アプリケーションレプリカは親ドメインを検索する前にまず同じドメイン内の DNS レコードを検索するため、同じ非公開スペース内の別のアプリケーションに要求を送信するには、アプリケーション名のみが必要です。両方のアプリケーションが同じ名前空間にある場合は、アプリケーション名のみが必要です。
http://helloch2:8081/hello
必要に応じて http を https に置き換えます。
|
|
svc.cluster.local エンドポイントを使用して、異なる名前空間のアプリケーション間でトラフィックを送信することはできません。
|
アプリケーション間の通信
-
デフォルトの公開 DNS 名: app.sxjsip.aus-s1.cloudhub.io
-
デフォルトの内部 DNS 名 (非公開スペースのみ): app.internal-sxjsip.aus-s1.cloudhub.io
-
カスタムドメイン名 (設定されている場合): acme.example.com
-
クラスターローカル DNS: app または app.envid.svc.cluster.local
内部 DNS 名を使用する場合、トラフィックは非公開スペースネットワークに留まります。アプリケーションを非公開スペースにデプロイする場合、外部に公開されるエンドポイントを削除または省略できます。その場合、内部トラフィック用にアプリケーションの内部エンドポイントを使用できます。
クラスターローカルエンドポイントを使用する場合、トラフィックはクラスター内に留まります。ただし、クラスターローカルエンドポイントは高可用性ではありません。一部のクラスター操作 (障害回復など) により、エンドポイントに到達できなくなる可能性があります。
障害回復中にアプリケーションが新しいクラスターに移行すると、クラスターローカル DNS エンドポイントが失敗する可能性があります。これは、ローカル DNS エンドポイントを介してルーティングされるトラフィックが、トラフィックを新しいクラスターに転送するために必要なイングレスロードバランサーをトラバースしないために発生します。ただし、ほかの使用可能なエンドポイントを使用すると、トラフィックがイングレスロードバランサーを通過するようになります。イングレスロードバランサーは、障害回復イベントが発生しているかどうかを検出します。また、特定のエンドポイントにリンクされているアプリケーションが新しいクラスターに移動したかどうかも把握しています。これにより、必要に応じてトラフィックが新しいクラスターにルーティングされます。
複数のアプリケーションレプリカをデプロイすれば、ノードのアップグレードおよびスケーリング中にクラスターローカル DNS エンドポイントは到達可能な状態を維持できます。
クラスターローカルエンドポイントでは、同じ環境内のトラフィックのみが許可されます。