Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

5.7.12. 대체 백엔드 및 가중치

경로는 일반적으로 를 통해 하나의 서비스와 kind가 있는 토큰과 연결됩니다. service. 경로에 대한 모든 요청은 부하 분산 전략을 기반으로 서비스의 엔드포인트에서 처리합니다.

경로를 지원하는 최대 4개의 서비스가 있을 수 있습니다. 각 서비스에서 처리하는 요청의 일부는 서비스 가중치에 의해 관리됩니다.

첫 번째 서비스는 to: 토큰을 사용하여 이전과 같이 입력하며, alternateBackend: 토큰을 사용하여 최대 3개의 추가 서비스를 입력할 수 있습니다. 각 서비스는 kind여야 합니다. service 기본값입니다.

각 서비스에는 연결된 가중치 가 있습니다. 서비스에서 처리하는 요청의 일부는 weight / sum_of_all_weights입니다. 서비스에 둘 이상의 엔드포인트가 있는 경우 서비스의 weight는 각 엔드포인트에 최소 1을 갖는 엔드포인트에 분산됩니다. 서비스 weight 가 0이면 각 서비스 엔드포인트에 0이 부여됩니다.

가중치 는 범위 0-256에 있어야합니다. 기본값은 100입니다. weight 가 0이면 서비스는 부하 분산에 참여하지 않지만 기존 영구 연결을 계속 제공합니다.

alternateBackends 를 사용하는 경우 roundrobin 부하 분산 전략을 사용하여 요청이 weight 를 기반으로 서비스에 예상대로 배포되도록 합니다. 경로 주석을 사용하여 경로에 대해roundrobin 을 설정하거나 일반적으로 환경 변수를 사용하여 라우터에 대해 설정할 수 있습니다.

다음은 A/B 배포에 대체 백엔드를 사용하는 경로 구성의 예입니다.

alternateBackends 및 weights가 있는 경로:

apiVersion: v1
kind: Route
metadata:
  name: route-alternate-service
  annotations:
    haproxy.router.openshift.io/balance: roundrobin  1
spec:
  host: www.example.com
  to:
    kind: Service
    name: service-name  2
    weight: 20          3
  alternateBackends:
  - kind: Service
    name: service-name2 4
    weight: 10          5
  - kind: Service
    name: service-name3 6
    weight: 10          7

1
이 경로는 roundrobin부하 분산 전략을 사용합니다.
2
첫 번째 서비스 이름은 0개 이상의 Pod가 있을 수 있는 service-name 입니다.
4 6
alternateBackend 서비스에 0개 이상의 Pod도 있을 수 있습니다.
3 5 7
가중치 는 40입니다. service-name 은 요청의 20/40 또는 1/2을 얻습니다. service-name2service-name3 은 각 서비스에 1개 이상의 엔드포인트가 있다고 가정하면 각각 요청의 1/4을 얻습니다.