This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.14.3. ロードバランサーを使用した ingress クラスターの設定
OpenShift Container Platform は、クラスター内で実行されるサービスを使ってクラスター外からの通信を可能にする方法を提供します。この方法では、ロードバランサーを使用します。
14.3.1. ロードバランサーを使用したトラフィックのクラスターへの送信
特定の外部 IP アドレスを必要としない場合、ロードバランサーサービスを OpenShift Container Platform クラスターへの外部アクセスを許可するよう設定することができます。
ロードバランサーサービスは固有の IP を割り当てます。ロードバランサーには単一の edge ルーター IP があります (これは仮想 IP (VIP) の場合もありますが、初期の負荷分散では単一マシンになります。
プールが設定される場合、これはクラスター管理者によってではなく、インフラストラクチャーレベルで実行されます。
このセクションの手順では、クラスターの管理者が事前に行っておく必要のある前提条件があります。
14.3.2. 前提条件
以下の手順を開始する前に、管理者は以下の条件を満たしていることを確認する必要があります。
- 要求がクラスターに到達できるように、クラスターネットワーク環境に対して外部ポートをセットアップします。
- クラスター管理者ロールを持つユーザーが 1 名以上いることを確認します。このロールをユーザーに追加するには、以下のコマンドを実行します。 - oc adm policy add-cluster-role-to-user cluster-admin username - oc adm policy add-cluster-role-to-user cluster-admin username- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- OpenShift Container Platform クラスターを、1 つ以上のマスターと 1 つ以上のノード、およびクラスターへのネットワークアクセスのあるクラスター外のシステムと共に用意します。この手順では、外部システムがクラスターと同じサブセットにあることを前提とします。別のサブセットの外部システムに必要な追加のネットワーク設定については、このトピックでは扱いません。
14.3.3. プロジェクトおよびサービスの作成
公開するプロジェクトおよびサービスが存在しない場合、最初にプロジェクトを作成し、次にサービスを作成します。
プロジェクトおよびサービスがすでに存在する場合は、サービスを公開してルートを作成する手順に進みます。
前提条件
- 
							クラスター管理者として ocCLI をインストールし、ログインします。
手順
- サービスの新規プロジェクトを作成します。 - oc new-project <project_name> - $ oc new-project <project_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下は例になります。 - oc new-project myproject - $ oc new-project myproject- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- oc new-appコマンドを使用してサービスを作成します。以下は例になります。- oc new-app \ -e MYSQL_USER=admin \ -e MYSQL_PASSWORD=redhat \ -e MYSQL_DATABASE=mysqldb \ registry.redhat.io/rhscl/mysql-80-rhel7- $ oc new-app \ -e MYSQL_USER=admin \ -e MYSQL_PASSWORD=redhat \ -e MYSQL_DATABASE=mysqldb \ registry.redhat.io/rhscl/mysql-80-rhel7- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下のコマンドを実行して新規サービスが作成されていることを確認します。 - oc get svc -n myproject - $ oc get svc -n myproject- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE mysql-80-rhel7 ClusterIP 172.30.63.31 <none> 3306/TCP 4m55s - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE mysql-80-rhel7 ClusterIP 172.30.63.31 <none> 3306/TCP 4m55s- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - デフォルトで、新規サービスには外部 IP アドレスがありません。 
14.3.4. ルートの作成によるサービスの公開
					oc expose コマンドを使用して、サービスをルートとして公開することができます。
				
手順
サービスを公開するには、以下を実行します。
- OpenShift Container Platform にログインします。
- 公開するサービスが置かれているプロジェクトにログインします。 - oc project project1 - $ oc project project1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下のコマンドを実行してルートを公開します。 - oc expose service <service_name> - $ oc expose service <service_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下は例になります。 - oc expose service mysql-80-rhel7 - $ oc expose service mysql-80-rhel7- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - route "mysql-80-rhel7" exposed - route "mysql-80-rhel7" exposed- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- cURL などのツールを使用し、サービスのクラスター IP アドレスを使用してサービスに到達できることを確認します。 - curl <pod_ip>:<port> - $ curl <pod_ip>:<port>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下は例になります。 - curl 172.30.131.89:3306 - $ curl 172.30.131.89:3306- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - このセクションの例では、クライアントアプリケーションを必要とする MySQL サービスを使用しています。 - Got packets out of orderのメッセージと共に文字ストリングを取得する場合は、このサービスに接続されていることになります。- MySQL クライアントがある場合は、標準 CLI コマンドでログインします。 - mysql -h 172.30.131.89 -u admin -p - $ mysql -h 172.30.131.89 -u admin -p- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. MySQL [(none)]> - Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. MySQL [(none)]>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
14.3.5. ロードバランサーサービスの作成
以下の手順を使用して、ロードバランサーサービスを作成します。
前提条件
- 公開するプロジェクトとサービスがあること。
手順
ロードバランサーサービスを作成するには、以下を実行します。
- OpenShift Container Platform にログインします。
- 公開するサービスが置かれているプロジェクトを読み込みます。 - oc project project1 - $ oc project project1- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- マスターノードでテキストファイルを開き、以下のテキストを貼り付け、必要に応じてファイルを編集します。 - ロードバランサー設定ファイルのサンプル - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- ファイルを保存し、終了します。
- 以下のコマンドを実行してサービスを作成します。 - oc create -f <file-name> - $ oc create -f <file-name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下は例になります。 - oc create -f mysql-lb.yaml - $ oc create -f mysql-lb.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下のコマンドを実行して新規サービスを表示します。 - oc get svc - $ oc get svc- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE egress-2 LoadBalancer 172.30.22.226 ad42f5d8b303045-487804948.example.com 3306:30357/TCP 15m - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE egress-2 LoadBalancer 172.30.22.226 ad42f5d8b303045-487804948.example.com 3306:30357/TCP 15m- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 有効にされたクラウドプロバイダーがある場合、サービスには外部 IP アドレスが自動的に割り当てられます。 
- マスターで cURL などのツールを使用し、パブリック IP アドレスを使用してサービスに到達できることを確認します。 - curl <public-ip>:<port> - $ curl <public-ip>:<port>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 以下は例になります。 - curl 172.29.121.74:3306 - $ curl 172.29.121.74:3306- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - このセクションの例では、クライアントアプリケーションを必要とする MySQL サービスを使用しています。 - Got packets out of orderのメッセージと共に文字ストリングを取得する場合は、このサービスに接続していることになります。- MySQL クライアントがある場合は、標準 CLI コマンドでログインします。 - mysql -h 172.30.131.89 -u admin -p - $ mysql -h 172.30.131.89 -u admin -p- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. MySQL [(none)]> - Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. MySQL [(none)]>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow