24.5. 使用 Microsoft Azure 外部负载均衡器作为服务
OpenShift Container Platform 可以通过使用 LoadBalancer
服务向外部公开服务来利用 Microsoft Azure 负载均衡器。OpenShift Container Platform 在 Microsoft Azure 中创建负载均衡器,并创建正确的防火墙规则。
目前,当将额外变量用作云供应商时,以及将其用作外部负载均衡器时,会导致在 Microsoft Azure 基础架构中包含额外的变量。如需更多信息,请参阅以下内容:
先决条件
确保位于 /etc/origin/cloudprovider/azure.conf 的 Azure 配置文件 使用适当的对象正确配置。如需示例 /etc/origin/cloudprovider/azure.conf 文件,请参阅 为 Microsoft Azure 手动配置 OpenShift Container Platform 部分。
添加值后,重启所有主机上的 OpenShift Container Platform 服务:
# systemctl restart atomic-openshift-node # master-restart api # master-restart controllers
24.5.1. 使用负载均衡器部署示例应用程序
流程
创建新应用程序:
$ oc new-app openshift/hello-openshift
公开负载均衡器服务:
$ oc expose dc hello-openshift --name='hello-openshift-external' --type='LoadBalancer'
这会创建类似如下的
Loadbalancer
服务:apiVersion: v1 kind: Service metadata: labels: app: hello-openshift name: hello-openshift-external spec: externalTrafficPolicy: Cluster ports: - name: port-1 nodePort: 30714 port: 8080 protocol: TCP targetPort: 8080 - name: port-2 nodePort: 30122 port: 8888 protocol: TCP targetPort: 8888 selector: app: hello-openshift deploymentconfig: hello-openshift sessionAffinity: None type: LoadBalancer
验证服务是否已创建:
$ oc get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-openshift ClusterIP 172.30.223.255 <none> 8080/TCP,8888/TCP 1m hello-openshift-external LoadBalancer 172.30.99.54 40.121.42.180 8080:30714/TCP,8888:30122/TCP 4m
LoadBalancer
类型和External-IP
字段表示该服务正在使用 Microsoft Azure 负载均衡器来公开应用程序。
这会在 Azure 基础架构中创建以下所需的对象:
一个负载均衡器:
az network lb list -o table Location Name ProvisioningState ResourceGroup ResourceGuid ---------- ----------- ------------------- --------------- ------------------------------------ eastus kubernetes Succeeded refarch-azr 30ec1980-b7f5-407e-aa4f-e570f06f168d eastus OcpMasterLB Succeeded refarch-azr acb537b2-8a1a-45d2-aae1-ea9eabfaea4a eastus OcpRouterLB Succeeded refarch-azr 39087c4c-a5dc-457e-a5e6-b25359244422
要验证负载均衡器是否已正确配置,请从外部主机运行以下命令:
$ curl 40.121.42.180:8080 1
Hello OpenShift!
- 1
- 使用上面的
EXTERNAL-IP
验证步骤中的值以及端口号替换。