イングレスは、ロード・バランサを構成するためにKubernetesによって提供されるアプローチの1つです。 使用しているKubernetesのバージョンおよびクラウド・プロバイダによっては、イングレスの使用が必要になる場合があります。 イングレスの詳細は、「Kubernetesイングレス」ドキュメントを参照してください。
イングレス・オブジェクトでは、ロード・バランシングされるターゲットごとにバックエンドのリストが提供されます。 各バックエンドは通常、「Kubernetesサービス」、具体的にはserviceName
とservicePort
の組合せです。
オペレータがWebLogicドメインを作成すると、ドメイン内のWebLogicクラスタごとにサービスも作成されます。 オペレータは、そのセレクタが準備完了状態のWebLogicクラスタ内のすべてのWebLogic Serverポッドと一致するようにサービスを定義します。
WebLogicクラスタ用に作成されたサービスの名前は、パターン<domainUID>-cluster-<clusterName>
に従います。 たとえば、domainUID
がdomain1
で、クラスタ名がcluster-1
の場合、対応するサービスの名前はdomain1-cluster-cluster-1
になります。
サービス名は、オブジェクトのネーミングに関する標準のKubernetesルール、特にDNS-1035に準拠している必要があります:
DNS-1035ラベルは、小文字の英数字または'-'で構成され、英字で始まり、英数字で終わる必要があります。(たとえば、
my-name
、またはabc-123
、バリデーションに使用される正規表現は[a-z]([-a-z0-9]*[a-z0-9])?
です)。
これらの要件に準拠するために、domainUID
またはクラスタ名に大文字またはアンダースコアが含まれている場合、サービス名では大文字が小文字に変換され、アンダースコアがハイフンに変換されます。 たとえば、domainUID
がmyDomain_1
で、クラスタ名がmyCluster_1
の場合、対応するサービスの名前はmydomain-1-cluster-mycluster-1
になります。
WebLogicクラスタのサービス、serviceName
およびservicePort
はイングレス・オブジェクトで定義されたルーティング・ルールで使用され、ロード・バランサはルールに基づいてクラスタ内のWebLogic Serversにトラフィックをルーティングします。
TraefikやNGINXなどの最も一般的なイングレス・コントローラは、サービスの背後にゼロ個以上の実際のポッドがあることを理解し、実際にはバックエンド・リストを作成し、サービスを経由せずにそれらのバックエンドにリクエストを直接ルーティングします。 つまり、使用されているロード・バランシング・アルゴリズムに従って、ポッド間でリクエストが適切に分散されます。 ほとんどのイングレス・コントローラは、サービスの更新をサブスクライブし、追加のポッドが準備完了になったとき、またはポッドが非準備完了状態になったときに内部バックエンド・セットを調整します。
イングレス・コントローラをインストールします。
イングレス・コントローラが実行されると、指定されたネームスペースのイングレス・リソースを監視し、それに応じて動作します。
イングレス・リソースの作成。
イングレス・リソースには、1つ以上のバックエンドへのルーティング・ルールが含まれます。 イングレス・コントローラは、基礎となるロード・バランサにルールを適用します。 イングレス・リソースを作成するには、2つのアプローチがあります:
Helmチャートを使用します。
各イングレス・プロバイダは、イングレス・リソースで多数の注釈をサポートしています。 Helmチャートでは、プロバイダ固有の詳細な注釈を処理せずにルーティング・ルールを定義できます。
YAMLファイルからイングレス・リソースを手動で作成します。
イングレスYAMLファイルを手動で作成し、Kubernetesクラスタに適用します。
WebLogicクラスタをロード・バランシングするためにこれらのイングレス・コントローラをインストールおよび構成する方法の詳細は、次のとおりです:
本番環境では、NGINX、Traefik (2.2.1以上)のイングレス・コントローラ、またはクラウド・プロバイダが提供するロード・バランサをお薦めします。
Traefikイングレス・コントローラにもサンプルが提供されており、様々なルーティング・ルール、ホスト・ルーティングおよびパス・ルーティングを使用して複数のWebLogicクラスタをバックエンドとして管理する方法が示されています。また、TLSターミネーションも提供されます: Traefik samples。
NOTE 次の「既知の制限」では、NGINX SSLパススルー・イングレス・サービスは、Kubernetesヘッドレス・サービスでは機能しません。