본문 바로가기
WIKI 기술 지식 베이스

Traefik UDP 서비스 문서

원문 보기 위키 갱신

출처: Traefik UDP Services Documentation

본문

Service

General

서비스 섹션의 각 필드는 한 종류의 서비스를 나타내요. 즉, 지정된 각 서비스에 대해 필드 중 하나(그리고 오직 하나)만 활성화해서 어떤 종류의 서비스가 생성되는지 정의해야 해요. 현재 사용 가능한 두 종류는 LoadBalancer와 Weighted예요.

Servers Load Balancer

서버 로드 밸런서는 같은 서비스의 서버들 사이에서 요청의 균형을 맞추는 일을 맡아요.

Servers

Servers 필드는 이 로드 밸런싱 그룹에 속한 모든 서버를 정의해요. 즉, 서비스 프로그램의 인스턴스가 배포된 각 주소(IP:Port)를 뜻해요.

설정 예시

서버 한 개를 가진 서비스 -- 파일 프로바이더 사용하기

Structured (YAML)

## Dynamic configuration
udp:
  services:
    my-service:
      loadBalancer:
        servers:
          - address: "xx.xx.xx.xx:xx"

Structured (TOML)

## Dynamic configuration
[udp.services]
  [udp.services.my-service.loadBalancer]
    [[udp.services.my-service.loadBalancer.servers]]
      address = "xx.xx.xx.xx:xx"

Weighted Round Robin

Weighted Round Robin(별칭 WRR) 서비스 로드 밸런서는 제공된 가중치를 바탕으로 여러 서비스 사이에서 연결의 균형을 맞추는 일을 맡아요.

이 전략은 서버 사이가 아니라 서비스 사이에서만 사용할 수 있어요.

지원되는 프로바이더

이 전략은 현재 파일(File) 프로바이더와 Kubernetes CRD 프로바이더(IngressRouteUDP)로 정의할 수 있어요.

가중치(Weights)

가중치는 음수가 아닌 정수여야 하며, 0 가중치는 하위 서비스를 로테이션에서 제외해요. 음수 가중치를 선언한 가중치 서비스는 비활성화되고, 이를 참조하는 라우터는 생성되지 않아요.

Structured (YAML)

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"

Structured (TOML)

[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"

설정 옵션

| Field | Description | Default | Required | | services | 로드 밸런싱할 서비스 목록을 정의해요. | | Yes | | services.name | 로드 밸런싱할 서비스의 이름이에요. | "" | Yes | | services.weight | 연결을 밸런싱할 때 서비스에 적용되는 가중치예요. | 1 | No |

프로덕션에서 Traefik OSS를 사용 중인가요?

업무에서 Traefik을 사용한다면 엔터프라이즈급 API 게이트웨이 기능이나 Traefik OSS용 상용 지원을 고려해 보세요.

  • API Gateway 데모 영상 보기

  • 24/7/365 OSS 지원 요청하기

Traefik OSS에 API 게이트웨이 기능을 추가하는 건 빠르고 매끄러워요. 대체(rip and replace)가 필요 없고 모든 구성이 그대로 유지돼요. 이 짧은 영상으로 직접 확인해 보세요.

더 알아보기