MicroShift is Technology Preview software only.
For more information about the support scope of Red Hat Technology Preview software, see Technology Preview Support Scope.1.8. ワークロードのロードバランサーのデプロイ
Red Hat build of MicroShift は、ネットワークロードバランサーの組み込み実装を提供します。次の手順例では、ノード IP アドレスを LoadBalancer
サービス設定ファイルの外部 IP アドレスとして使用します。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - クラスター管理者のロールを持つユーザーとしてクラスターにアクセスできます。
- OVN-Kubernetes ネットワークプラグインで設定されたインフラストラクチャーにクラスターがインストールされている。
-
KUBECONFIG
環境変数が設定されている。
手順
次のコマンドを実行して、Pod が実行していることを確認します。
$ oc get pods -A
次のコマンドを実行して、サンプルの名前空間を作成します。
$ NAMESPACE=nginx-lb-test
$ oc create ns $NAMESPACE
次の例では、テスト
nginx
アプリケーションの 3 つのレプリカを名前空間にデプロイします。$ oc apply -n $NAMESPACE -f - <<EOF apiVersion: v1 kind: ConfigMap metadata: name: nginx data: headers.conf: | add_header X-Server-IP \$server_addr always; --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: quay.io/packit/nginx-unprivileged imagePullPolicy: Always name: nginx ports: - containerPort: 8080 volumeMounts: - name: nginx-configs subPath: headers.conf mountPath: /etc/nginx/conf.d/headers.conf securityContext: allowPrivilegeEscalation: false seccompProfile: type: RuntimeDefault capabilities: drop: ["ALL"] runAsNonRoot: true volumes: - name: nginx-configs configMap: name: nginx items: - key: headers.conf path: headers.conf EOF
次のコマンドを実行すると、3 つのサンプルレプリカが正常に開始したことを確認できます。
$ oc get pods -n $NAMESPACE
次のサンプルコマンドを使用して、
nginx
テストアプリケーションのLoadBalancer
サービスを作成します。$ oc create -n $NAMESPACE -f - <<EOF apiVersion: v1 kind: Service metadata: name: nginx spec: ports: - port: 81 targetPort: 8080 selector: app: nginx type: LoadBalancer EOF
注記port
パラメーターが、他のLoadBalancer
サービスまたは Red Hat build of MicroShift コンポーネントによって占有されていないホストポートであることを確認する必要があります。サービスファイルが存在し、外部 IP アドレスが適切に割り当てられていること、および外部 IP がノード IP と同一であることを確認するには、次のコマンドを実行します。
$ oc get svc -n $NAMESPACE
出力例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx LoadBalancer 10.43.183.104 192.168.1.241 81:32434/TCP 2m
検証
次のコマンドは、
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
ロードバランサーがトラフィックをアプリケーションに正常に分散している場合、前のコマンドの出力には異なる 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