跳到正文
Træfɪk

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 网关能力快捷且平滑,无需推倒重来,现有配置也会完整保留。请通过这个简短视频了解实际效果。


版权所有 © 头文件软件工作室

文档由 HeadFile Studio 翻译。

Traefik v3.7 中文快照 · 原文版权归 Traefik Labs 及贡献者所有 · MIT 许可证