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

서비스 프로파일

원문 보기 위키 갱신

서비스 프로파일 (Service Profiles)

서비스 프로파일은 Linkerd에 서비스에 대한 추가 정보를 제공해요. 이 문서는 서비스 프로파일로 할 수 있는 모든 것을 다루는 레퍼런스예요. 다만 Linkerd 2.16부터 ServiceProfile은 라우트별 메트릭, 타임아웃, 재시도 지정을 포함해 Gateway API 유형으로 완전히 대체되었고, 하위 호환성을 위해 계속 지원되지만 더 이상의 기능 개발은 없어요.

출처: Linkerd Service Profiles

본문

경고

Linkerd 2.16부터 ServiceProfile은 Gateway API 유형으로 완전히 대체되었어요. 여기에는 라우트별 메트릭 얻기, 타임아웃 지정, 재시도 지정이 포함돼요. 서비스 프로파일은 하위 호환성을 위해 계속 지원되지만, 더 이상의 기능 개발은 없어요.

서비스 프로파일은 Linkerd에 서비스에 대한 추가 정보를 제공해요. 이 문서는 서비스 프로파일로 할 수 있는 모든 것에 대한 레퍼런스예요.

Spec

서비스 프로파일 스펙은 다음 최상위 필드를 포함해야 해요.

field value
field value
routes 라우트 객체 목록
retryBudget 이 서비스로의 최대 재시도 비율을 정의하는 재시도 예산 객체

Route

라우트 객체는 다음 필드를 포함해야 해요.

field value
field value
name 라우트 레이블에 나타날 이 라우트의 이름
condition 요청이 이 라우트와 일치하는지 정의하는 요청 매치 객체
responseClasses (선택) 응답 클래스 객체 목록
isRetryable 이 라우트로의 요청이 항상 재시도하기에 안전하다는 것을 나타내며, 가능할 때마다 프록시가 이 라우트의 실패한 요청을 재시도하게 함
timeout 요청 전송 후 응답(재시도 포함)이 완료될 때까지 기다리는 최대 시간

Request Match

요청 매치 객체는 다음 필드 중 정확히 하나를 포함해야 해요.

field value
field value
pathRegex 요청 경로와 매칭할 정규식
method GET, POST, PUT, DELETE, OPTION, HEAD, TRACE 중 하나
all 모두 일치해야 하는 요청 매치 객체 목록
any 적어도 하나는 일치해야 하는 요청 매치 객체 목록
not 일치하지 않아야 하는 요청 매치 객체

Request Match 사용 예시

가장 단순한 조건은 경로 정규식이에요.

`pathRegex: '/authors/\d+'
`

이것은 요청 메서드를 확인하는 조건이에요.

`method: POST
`

둘 이상의 조건 필드가 설정되면 모두 충족되어야 해요. 이는 'all' 조건을 사용하는 것과 같아요.

`all:
  - pathRegex: '/authors/\d+'
  - method: POST
`

조건은 'all', 'any', 'not'으로 결합할 수 있어요.

`any:
  - all:
      - method: POST
      - pathRegex: '/authors/\d+'
  - all:
      - not:
          method: DELETE
      - pathRegex: /info.txt
`

Response Class

응답 클래스 객체는 다음 필드를 포함해야 해요.

field value
field value
condition 응답이 이 응답 클래스와 일치하는지 정의하는 응답 매치 객체
isFailure 이 응답들을 실패로 분류해야 하는지 정의하는 불리언

Response Match

응답 매치 객체는 다음 필드 중 정확히 하나를 포함해야 해요.

field value
field value
status 응답 상태 코드를 매칭할 상태 범위 객체
all 모두 일치해야 하는 응답 매치 객체 목록
any 적어도 하나는 일치해야 하는 응답 매치 객체 목록
not 일치하지 않아야 하는 응답 매치 객체

Response Match 조건은 위의 Request Match 사용 예시와 비슷한 방식으로 결합할 수 있어요.

Status Range

상태 범위 객체는 다음 필드 중 적어도 하나를 포함해야 해요. min이나 max 중 하나만 지정하면 그 단일 상태 코드만 매칭돼요.

field value
field value
min 상태 코드가 이 값보다 크거나 같아야 함
max 상태 코드가 이 값보다 작거나 같아야 함

Retry Budget

재시도 예산은 원래 요청량의 비율로 이 서비스로 보내야 하는 최대 총 재시도 횟수를 지정해요.

field value
field value
retryRatio 원래 요청에 대한 재시도 요청의 최대 비율
minRetriesPerSecond retryRatio가 허용하는 것 외에 초당 추가로 허용되는 재시도
ttl retryRatio 계산 목적으로 요청을 얼마나 오랫동안 고려해야 하는지 나타냄

더 알아보기 (Learn more)