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

Gateway API 지원

원문 보기 위키 갱신

Gateway API는 gateway.networking.k8s.io API 그룹의 CRD 집합으로, 특정 메시나 인그레스 구현과 무관한 방식으로 트래픽의 유형을 설명해요. 최신 버전의 Linkerd는 Kubernetes Gateway API를 핵심 구성 메커니즘으로 완전히 지원하며, 인가 정책, 동적 트래픽 라우팅, 요청 타임아웃을 포함한 많은 Linkerd 기능이 사용되려면 Gateway API의 리소스 유형을 필요로 해요.

출처: Linkerd Gateway API support

본문

Gateway API는 gateway.networking.k8s.io API 그룹의 CRD 집합으로, 특정 메시나 인그레스 구현과 무관한 방식으로 트래픽 유형을 설명해요. 최신 Linkerd는 Kubernetes Gateway API를 핵심 구성 메커니즘으로 완전히 지원하며, 인가 정책, 동적 트래픽 라우팅, 요청 타임아웃을 포함한 많은 기능이 Gateway API의 리소스 유형을 필요로 해요.

Linkerd를 구성하는 데 사용되는 두 가지 주요 Gateway API 유형은 다음과 같아요.

  • HTTPRoute: HTTP 요청을 파라미터화해요.
  • GRPCRoute: gRPC 요청을 파라미터화해요.

이 두 유형 모두 Linkerd를 구성할 때 다양한 방식으로 사용돼요.

기존 Gateway API 버전 확인

클러스터에 Gateway API가 이미 설치되어 있을 수 있어요. 다음을 실행해 확인해 봐요.

`kubectl get crds/httproutes.gateway.networking.k8s.io -o "jsonpath={.metadata.annotations.gateway\.networking\.k8s\.io/bundle-version}"
`

이 명령이 Not Found 오류를 반환하면 Gateway API가 설치되지 않은 거예요. 그렇지 않으면 Gateway API 버전 번호를 반환해요. 그 버전을 호환성 표와 대조해 보세요.

Linkerd versions Gateway API version compatibility HTTPRoute version gRPC version
Linkerd versions Gateway API version compatibility HTTPRoute version gRPC version
2.15 - 2.17 0.7 - 1.1.1 v1beta1 v1alpha2
2.18 - 2.19 1.1.1 - 1.2.1 v1 v1
2.20 1.2.1 - 1.5.1 v1 v1

참고

GRPCRoute를 사용한다면 Gateway API 1.1.1에서 1.2.0 이상으로 업그레이드할 때 각별히 주의해야 해요. 자세한 내용은 Gateway API 1.2.0 릴리스 노트를 참고해 주세요.

경고

클러스터에 호환되지 않는 Gateway API 버전으로 Linkerd를 실행하면 Linkerd 설치에서 디버깅하기 어려운 문제가 생길 수 있어요.

Gateway API 설치

클러스터에 Gateway API가 아직 없다면 Gateway API 설치 가이드를 따라 설치할 수 있는데, 보통 이렇게 간단해요.

`kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.5.1/standard-install.yaml
`

참고: Gateway API 기반 구성의 전신

Linkerd 2.14에서 Gateway API를 완전히 지원하기 전에, Linkerd는 두 가지 이전 변형 구성을 제공했어요.

  • Linkerd가 policy.linkerd.io API 그룹에 제공한 Linkerd 고유 HTTPRoute CRD.
  • Gateway API 유형이 도입되기 전에 라우트별 메트릭, 재시도, 타임아웃을 구성할 수 있게 한 ServiceProfiles.

이 두 이전 구성 메커니즘은 계속 지원돼요. 다만 새로운 기능 개발은 표준 Gateway API 유형에 집중되고 있어요.

더 알아보기

Gateway API 유형으로 시작하려면 다음을 할 수 있어요.

  • 장애 주입(fault injection) 구성
  • 타임아웃 구성
  • 동적 요청 라우팅 구성
  • 라우트별 인가 정책 구성

더 알아보기 (Learn more)