22.3. RHOSP Octavia を使用した ingress トラフィックのスケーリング
Octavia ロードバランサーを使用して、Kuryr を使用するクラスターで Ingress コントローラーをスケーリングできます。
前提条件
- OpenShift Container Platform クラスターは Kuryr を使用します。
- Octavia は RHOSP デプロイメントで利用できます。
手順
現在の内部ルーターサービスをコピーするには、コマンドラインで以下を入力します。
$ oc -n openshift-ingress get svc router-internal-default -o yaml > external_router.yaml
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
ロードバランシングと関連性のないタイムスタンプやその他の情報を削除できます。
コマンドラインで、
external_router.yaml
ファイルからサービスを作成します。$ oc apply -f external_router.yaml
サービスの外部 IP アドレスがロードバランサーに関連付けられているものと同じであることを確認します。
コマンドラインで、サービスの外部 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
ロードバランサーの IP アドレスを取得します。
$ openstack loadbalancer list | grep router-external
出力例
| 21bf6afe-b498-4a16-a958-3229e83c002c | openshift-ingress/router-external-default | 66f3816acf1b431691b8d132cc9d793c | 172.30.235.33 | ACTIVE | octavia |
直前のステップで取得したアドレスが、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) 経由でルーティングされます。
この手順を繰り返して追加のロードバランサーを作成します。これにより、ボトルネックを軽減することができます。