Service
概述¶
服务段中的每个字段代表一种服务类型。
也就是说,每个指定服务都必须且只能
启用其中一个字段,以定义所创建的服务类型。
目前有两种可用类型:LoadBalancer 和 Weighted。
服务器负载均衡器¶
服务器负载均衡器负责将请求均衡分配到同一服务的各台服务器。
服务器¶
Servers 字段定义此负载均衡组中的所有服务器, 也就是部署服务程序实例的每个地址(IP:Port)。
配置示例¶
包含一台服务器的服务——使用文件提供者
## Dynamic configuration
udp:
services:
my-service:
loadBalancer:
servers:
- address: "xx.xx.xx.xx:xx"## Dynamic configuration
[udp.services]
[udp.services.my-service.loadBalancer]
[[udp.services.my-service.loadBalancer.servers]]
address = "xx.xx.xx.xx:xx"加权轮询¶
服务的加权轮询(简称 WRR)负载均衡器负责按给定权重在多个服务之间均衡分配连接。
此策略仅支持在服务之间执行负载均衡,不支持在服务器之间使用。
支持的提供者
目前可以通过文件提供者 和 Kubernetes CRD 提供者(IngressRouteUDP)定义此策略。
权重
权重必须是非负整数,权重为 0 时会将子服务移出轮转。
声明了负权重的加权服务会被禁用,引用该服务的路由器也不会创建。
udp:
services:
app:
weighted:
services:
- name: appv1
weight: 3
- name: appv2
weight: 1
appv1:
loadBalancer:
servers:
- address: "xxx.xxx.xxx.xxx:8080"
appv2:
loadBalancer:
servers:
- address: "xxx.xxx.xxx.xxx:8080"[udp.services]
[udp.services.app]
[[udp.services.app.weighted.services]]
name = "appv1"
weight = 3
[[udp.services.app.weighted.services]]
name = "appv2"
weight = 1
[udp.services.appv1]
[udp.services.appv1.loadBalancer]
[[udp.services.appv1.loadBalancer.servers]]
address = "xxx.xxx.xxx.xxx:8080"
[udp.services.appv2]
[udp.services.appv2.loadBalancer]
[[udp.services.appv2.loadBalancer.servers]]
address = "xxx.xxx.xxx.xxx:8080"配置选项¶
| 字段 | 说明 | 默认值 | 必填 |
|---|---|---|---|
services |
定义参与负载均衡的服务列表。 | 是 | |
services.name |
负载均衡目标服务的名称。 | "" | 是 |
services.weight |
均衡分配连接时应用于服务的权重。 | 1 | 否 |
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为 Traefik OSS 增加企业级 API 网关能力或商业支持。
为 Traefik OSS 增加 API 网关能力快捷且平滑,无需推倒重来,现有配置也会完整保留。请通过这个简短视频了解实际效果。