클러스터 피어링을 통한 API 게이트웨이 라우팅 대상

클러스터 피어링을 통한 API 게이트웨이 라우팅 대상 (K8s)

이 주제에서는 클러스터 피어링 연결을 통해 메시에 연결된 서비스로 트래픽을 라우팅하도록 Consul API 게이트웨이를 구성하는 방법을 설명해요.

출처: 문서

본문

이 주제에서는 클러스터 피어링 연결을 통해 메시에 연결된 서비스로 트래픽을 라우팅하도록 Consul API 게이트웨이를 구성하는 방법을 설명합니다.

요구 사항 (Requirements)

  • Consul v1.14 이상
  • 요구 사항이 충족되었는지 확인하세요.
  • Consul API gateway CRD와 컨트롤러가 설치되고 적용되었는지 확인하세요. 자세한 내용은 Installation을 참조하세요.
  • Consul 클러스터 사이에 피어링 연결이 이미 설정되어 있어야 합니다. 지침은 Cluster Peering on Kubernetes을 참조하세요.
  • 트래픽을 라우팅하려는 Consul 서비스가 Gateway가 있는 클러스터로 내보내져야 합니다. 지침은 Cluster Peering on Kubernetes을 참조하세요.
  • 트래픽을 라우팅하려는 Consul 서비스에 대한 ServiceResolver가 Gateway가 있는 클러스터에 생성되어야 합니다. 지침은 Service Resolver Configuration Entry를 참조하세요.

구성 (Configuration)

이 기능을 사용하려면 MeshService 구성에서 다음 필드를 지정하세요. 매개변수에 대한 자세한 내용은 MeshService configuration reference를 참조하세요.

예시 (Example)

다음 예시에서는 example-mesh-service를 백엔드로 사용하는 경로가 피어링된 Consul 클러스터 cluster-02가 내보낸 echo 서비스로 요청을 보내도록 구성됩니다.

serviceresolver.yaml

apiVersion: consul.hashicorp.com/v1alpha1
kind: ServiceResolver
metadata:
  name: echo
spec:
  redirect:
    peer: cluster-02
    service: echo

meshservice.yaml

apiVersion: consul.hashicorp.com/v1alpha1
kind: MeshService
metadata:
  name: example-mesh-service
spec:
  name: echo
  peer: cluster-02

meshservice.yaml 구성을 적용한 후 HTTPRoute는 example-mesh-service를 backendRef로 참조할 수 있습니다.

route.yaml

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: example-route
spec:
  ...
  rules:
    - backendRefs:
        - group: consul.hashicorp.com
          kind: MeshService
          name: example-mesh-service
          port: 3000
      ...

더 알아보기 (Learn more)