2.8. アプリケーション用のロードバランサーのデプロイ
次の手順例では、ノード IP アドレスを LoadBalancer サービス設定ファイルの外部 IP アドレスとして使用します。この例を、ロードバランサーをデプロイする方法のガイダンスとして使用します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 - OVN-Kubernetes ネットワークプラグインで設定されたインフラストラクチャーにノードがインストールされている。
-
KUBECONFIG環境変数が設定されている。
手順
次のコマンドを入力して、Pod が実行されていることを確認します。
oc get pods -A
$ oc get pods -ACopy 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 $NAMESPACECopy 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 $NAMESPACECopy 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 $NAMESPACECopy 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 2mCopy 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-IPCopy 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.43Copy to Clipboard Copied! Toggle word wrap Toggle overflow