2.7. 为工作负载部署负载均衡器
MicroShift 具有网络负载均衡器的内置实现。以下示例使用节点 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 运行以下命令来创建示例命名空间:
NAMESPACE=nginx-lb-test
$ NAMESPACE=nginx-lb-test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create ns $NAMESPACE
$ oc create ns $NAMESPACE
Copy 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 $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
应用程序的连接。命令的结果是这些服务器 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 如果负载均衡器成功将流量分发到应用程序,则上一命令的输出包含不同的 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