21.3. RHOSP Octavia を使用した ingress トラフィックのスケーリング

Octavia ロードバランサーを使用して、Kuryr を使用するクラスターで Ingress コントローラーをスケーリングできます。

前提条件

  • OpenShift Container Platform クラスターは Kuryr を使用します。
  • Octavia は RHOSP デプロイメントで利用できます。

手順

  1. 現在の内部ルーターサービスをコピーするには、コマンドラインで以下を入力します。

    $ oc -n openshift-ingress get svc router-internal-default -o yaml > external_router.yaml
  2. external_router.yaml ファイルで、metadata.name および spec.type の値を LoadBalancer に変更します。

    ルーターファイルの例

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        ingresscontroller.operator.openshift.io/owning-ingresscontroller: default
      name: router-external-default 1
      namespace: openshift-ingress
    spec:
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: http
      - name: https
        port: 443
        protocol: TCP
        targetPort: https
      - name: metrics
        port: 1936
        protocol: TCP
        targetPort: 1936
      selector:
        ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default
      sessionAffinity: None
      type: LoadBalancer 2

    1
    この値は router-external-default のように記述的であることを確認します。
    2
    この値は LoadBalancer であることを確認します。
注記

ロードバランシングと関連性のないタイムスタンプやその他の情報を削除できます。

  1. コマンドラインで、external_router.yaml ファイルからサービスを作成します。

    $ oc apply -f external_router.yaml
  2. サービスの外部 IP アドレスがロードバランサーに関連付けられているものと同じであることを確認します。

    1. コマンドラインで、サービスの外部 IP アドレスを取得します。

      $ oc -n openshift-ingress get svc

      出力例

      NAME                      TYPE           CLUSTER-IP       EXTERNAL-IP    PORT(S)                                     AGE
      router-external-default   LoadBalancer   172.30.235.33    10.46.22.161   80:30112/TCP,443:32359/TCP,1936:30317/TCP   3m38s
      router-internal-default   ClusterIP      172.30.115.123   <none>         80/TCP,443/TCP,1936/TCP                     22h

    2. ロードバランサーの IP アドレスを取得します。

      $ openstack loadbalancer list | grep router-external

      出力例

      | 21bf6afe-b498-4a16-a958-3229e83c002c | openshift-ingress/router-external-default | 66f3816acf1b431691b8d132cc9d793c | 172.30.235.33  | ACTIVE | octavia |

    3. 直前のステップで取得したアドレスが、Floating IP の一覧で相互に関連付けられていることを確認します。

      $ openstack floating ip list | grep 172.30.235.33

      出力例

      | e2f80e97-8266-4b69-8636-e58bacf1879e | 10.46.22.161 | 172.30.235.33 | 655e7122-806a-4e0a-a104-220c6e17bda6 | a565e55a-99e7-4d15-b4df-f9d7ee8c9deb | 66f3816acf1b431691b8d132cc9d793c |

EXTERNAL-IP の値を新規 Ingress アドレスとして使用できるようになりました。

注記

Kuryr が Octavia Amphora ドライバーを使用する場合、すべてのトラフィックは単一の Amphora 仮想マシン (VM) 経由でルーティングされます。

この手順を繰り返して追加のロードバランサーを作成します。これにより、ボトルネックを軽減することができます。