2.8. アプリケーション用のロードバランサーのデプロイ
次の手順例では、ノード IP アドレスを LoadBalancer
サービス設定ファイルの外部 IP アドレスとして使用します。この例を、ロードバランサーをデプロイする方法のガイダンスとして使用します。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - OVN-Kubernetes ネットワークプラグインで設定されたインフラストラクチャーにクラスターがインストールされている。
-
KUBECONFIG
環境変数が設定されている。
手順
次のコマンドを入力して、Pod が実行されていることを確認します。
oc get pods -A
$ oc get pods -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、namespace を作成します。
NAMESPACE=<nginx-lb-test>
$ NAMESPACE=<nginx-lb-test>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- _<nginx-lb-test> は、作成するアプリケーション namespace に置き換えます。
oc create ns $NAMESPACE
$ oc create ns $NAMESPACE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace の例
次の例では、
nginx
テストアプリケーションの 3 つのレプリカを、作成された namespace にデプロイします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行すると、3 つのサンプルレプリカが正常に開始したことを確認できます。
oc get pods -n $NAMESPACE
$ oc get pods -n $NAMESPACE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
nginx
テストアプリケーションのLoadBalancer
サービスを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記port
パラメーターが、他のLoadBalancer
サービスまたは MicroShift コンポーネントによって占有されていないホストポートであることを確認する必要があります。サービスファイルが存在し、外部 IP アドレスが適切に割り当てられていること、および外部 IP がノード IP と同一であることを確認するには、次のコマンドを実行します。
oc get svc -n $NAMESPACE
$ oc get svc -n $NAMESPACE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx LoadBalancer 10.43.183.104 192.168.1.241 81:32434/TCP 2m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx LoadBalancer 10.43.183.104 192.168.1.241 81:32434/TCP 2m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドは、LoadBalancer
サービス設定の外部 IP アドレスを使用して、例の nginx
アプリケーションへの 5 つの接続を形成します。コマンドの結果は、それらのサーバー IP アドレスのリストです。
次のコマンドを実行して、ロードバランサーが実行中のすべてのアプリケーションにリクエストを送信していることを確認します。
EXTERNAL_IP=192.168.1.241 seq 5 | xargs -Iz curl -s -I http://$EXTERNAL_IP:81 | grep X-Server-IP
EXTERNAL_IP=192.168.1.241 seq 5 | xargs -Iz curl -s -I http://$EXTERNAL_IP:81 | grep X-Server-IP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LoadBalancer
サービスがトラフィックをアプリケーションに正常に分散している場合、前のコマンドの出力には異なる IP アドレスが含まれます。次に例を示します。出力例
X-Server-IP: 10.42.0.41 X-Server-IP: 10.42.0.41 X-Server-IP: 10.42.0.43 X-Server-IP: 10.42.0.41 X-Server-IP: 10.42.0.43
X-Server-IP: 10.42.0.41 X-Server-IP: 10.42.0.41 X-Server-IP: 10.42.0.43 X-Server-IP: 10.42.0.41 X-Server-IP: 10.42.0.43
Copy to Clipboard Copied! Toggle word wrap Toggle overflow