클러스터 피어링을 통한 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
...