2.5.4. ロードバランサーサービスの作成
OpenShift Container Platform でアプリケーションの受信トラフィックを効率的に分散し、高い可用性を確保するには、ロードバランサーサービスを作成します。
前提条件
- 公開するプロジェクトとサービスがあること。
- クラウドプロバイダーがロードバランサーをサポートしている。
手順
- OpenShift Container Platform にログインします。
公開するサービスが置かれているプロジェクトを読み込みます。
コマンドの例
$ oc project project1コントロールプレーンノード上のテキストファイルを開き、以下のテキストをファイルに貼り付けてください。必要に応じてファイルを編集してください。
ロードバランサー設定ファイルのサンプル
apiVersion: v1 kind: Service metadata: name: egress-2 spec: ports: - name: db port: 3306 loadBalancerIP: loadBalancerSourceRanges: - 10.0.0.0/8 - 192.168.0.0/16 type: LoadBalancer selector: name: mysqlここでは、以下のようになります。
metadata.name- ロードバランサーサービスの説明的な名前を指定します。
ポート.ポート- 公開したいサービスがリッスンしているポートと同じポートを指定します。
loadBalancerSourceRanges- ロードバランサーを通過するトラフィックを制限する特定の IP アドレスのリストを指定します。クラウドプロバイダーがこの機能をサポートしていない場合、このパラメーターは無視されます。
type-
タイプとして
ロードバランサーを指定します。 セレクター名サービスの名前を指定します。
注記ロードバランサーを経由するトラフィックを特定の IP アドレスに制限するには、
spec.endpointPublishingStrategy.loadBalancer.allowedSourceRangesIngress Controller パラメーターを使用します。loadBalancerSourceRangesパラメーターを設定しないでください。
- ファイルを保存し、終了します。
以下のコマンドを実行してサービスを作成します。
$ oc create -f <file_name>以下に例を示します。
$ oc create -f mysql-lb.yaml以下のコマンドを実行して新規サービスを表示します。
$ oc get svc出力例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE egress-2 LoadBalancer 172.30.22.226 ad42f5d8b303045-487804948.example.com 3306:30357/TCP 15m有効にされたクラウドプロバイダーがある場合、サービスには外部 IP アドレスが自動的に割り当てられます。
マスターサーバー上で、
curlなどのツールを使用して、パブリック IP アドレスを使用してサービスにアクセスできることを確認してください。$ curl <public_ip>:<port>以下に例を示します。
$ curl 172.29.121.74:3306このセクションの例では、クライアントアプリケーションを必要とする MySQL サービスを使用しています。
Got packets out of orderのメッセージと共に文字ストリングを取得する場合は、このサービスに接続していることになります。MySQL クライアントがある場合は、標準 CLI コマンドでログインします。
$ mysql -h 172.30.131.89 -u admin -p出力例
Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. MySQL [(none)]>