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=<nginx-lb-test>
$ NAMESPACE=<nginx-lb-test>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 _<nginx-lb-test> 替换为您要创建的应用程序命名空间。
oc create ns $NAMESPACE
$ oc create ns $NAMESPACECopy to Clipboard Copied! Toggle word wrap Toggle overflow 命名空间示例
以下示例在创建的命名空间中部署测试
nginx应用程序的三个副本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以运行以下命令来验证三个副本是否已成功启动:
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 应用程序的连接。命令的结果是这些服务器 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