機械翻訳について

OCIロード・バランサの使用

KubernetesクラスタをOracle Container Engine for Kubernetes (通常はOKE)で実行している場合、Traefikのようなイングレス・コントローラをインストールする(または追加する)のではなく、タイプLoadBalancerServiceを作成することで、Oracle Cloud Infrastructureでロード・バランサを自動的にプロビジョニングできます。

OKE Kubernetesワーカー・ノードには、通常、パブリックIPアドレスはありません。 つまり、オペレータが作成したNodePortサービスは、ワーカー・ノードのプライベートIPアドレスでのみポートを公開し、クラスタの外部からはアクセスできないため、使用できません。
かわりに、Oracle Cloud Infrastructureロード・バランサを使用して、OKEで実行されているサービスへのアクセスを提供できます。

また、必要に応じて、Oracle Cloud Infrastructureロード・バランサでKubernetesクラスタ内で実行されているイングレス・コントローラにトラフィックをルーティングし、そのイングレス・コントローラでトラフィックをクラスタ内のサービスにルーティングすることも可能です。

Oracle Cloud Infrastructureロード・バランサのリクエスト

オペレータがドメインを作成すると、WebLogic Server管理サーバーおよび各管理対象サーバーとクラスタ用のサービスを含む、多数のKubernetesサービスがオペレータによって作成されます。

次の例では、bobネームスペースにbobs-bookstoreというドメインがあります。 このドメインには、ポート31111でトラフィックを公開するcluster-1と呼ばれるクラスタがあります。

次のKubernetes YAMLファイルは、同じネームスペースに新しいServiceを定義します。 selectorは、オペレータによってこれらのポッドに配置された注釈を使用して、クラスタcluster-1の一部であるこのネームスペース内のすべてのポッドをターゲットにします。 また、ポートとプロトコルも定義します。

ロード・バランサのシェイプを指定する場合は、オプションのoci-load-balancer-shape注釈を含めることができます(図を参照)。 それ以外の場合は、デフォルトのシェイプ(100Mbps)が使用されます。

apiVersion: v1
kind: Service
metadata:
  name: bobs-bookstore-oci-lb-service
  namespace: bob
  annotations:
    service.beta.kubernetes.io/oci-load-balancer-shape: 400Mbps
spec:
  ports:
  - name: http
    port: 31111
    protocol: TCP
    targetPort: 31111
  selector:
    weblogic.clusterName: cluster-1
    weblogic.domainUID: bobs-bookstore
  sessionAffinity: None
  type: LoadBalancer

このYAMLファイルをクラスタに適用すると、新しいサービスが作成されますが、最初は外部IPが<pending>として表示されます。

$ kubectl -n bob get svc
NAME                                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                       AGE
bobs-bookstore-admin-server            ClusterIP      None            <none>        8888/TCP,7001/TCP,30101/TCP   9d
bobs-bookstore-admin-server-ext        NodePort       10.96.224.13    <none>        7001:32401/TCP                9d
bobs-bookstore-cluster-cluster-1       ClusterIP      10.96.86.113    <none>        8888/TCP,8001/TCP,31111/TCP   9d
bobs-bookstore-managed-server1         ClusterIP      None            <none>        8888/TCP,8001/TCP,31111/TCP   9d
bobs-bookstore-managed-server2         ClusterIP      None            <none>        8888/TCP,8001/TCP,31111/TCP   9d
bobs-bookstore-oci-lb-service          LoadBalancer   10.96.121.216   <pending>     31111:31671/TCP               9s

短時間(通常は1分未満)の後、Oracle Cloud Infrastructureロード・バランサがプロビジョニングされ、外部IPアドレスが表示されます:

$ kubectl -n bob get svc
NAME                                   TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)                       AGE
bobs-bookstore-admin-server            ClusterIP      None            <none>            8888/TCP,7001/TCP,30101/TCP   9d
bobs-bookstore-admin-server-ext        NodePort       10.96.224.13    <none>            7001:32401/TCP                9d
bobs-bookstore-cluster-cluster-1       ClusterIP      10.96.86.113    <none>            8888/TCP,8001/TCP,31111/TCP   9d
bobs-bookstore-managed-server1         ClusterIP      None            <none>            8888/TCP,8001/TCP,31111/TCP   9d
bobs-bookstore-managed-server2         ClusterIP      None            <none>            8888/TCP,8001/TCP,31111/TCP   9d
bobs-bookstore-oci-lb-service          LoadBalancer   10.96.121.216   132.145.235.215   31111:31671/TCP               55s

これで、外部IPアドレスとポートを使用してポッドにアクセスできます。 より高度なロード・バランシング動作を構成するために使用できるオプションがいくつかあります。 SSLサポートの構成方法、内部および外部サブネットのサポート方法などの詳細は、「Oracle Cloud Infrastructureのドキュメント」を参照してください。