클러스터 피어링 기술 사양

클러스터 피어링 기술 사양 (Cluster peering technical specifications)

이 참조 주제에서는 배포에서 클러스터 피어링 사용과 관련된 기술 사양을 설명해요. 이러한 사양에는 필요한 Consul 구성 요소와 그 구성이 포함돼요. Consul의 클러스터 피어링 기능에 대해 자세히 알아보려면 cluster peering overview을 참조하세요.

출처: 문서

본문

이 참조 주제에서는 배포에서 클러스터 피어링 사용과 관련된 기술 사양을 설명합니다. 이러한 사양에는 필요한 Consul 구성 요소와 그 구성이 포함됩니다. Consul의 클러스터 피어링 기능에 대해 자세히 알아보려면 cluster peering overview을 참조하세요.

Kubernetes 배포의 클러스터 피어링 요구 사항은 Kubernetes의 cluster peering 기술 사양을 참조하세요.

요구 사항 (Requirements)

Consul의 기본 구성은 클러스터 간에 직접 클러스터 피어링 연결을 지원합니다. 프로덕션 환경에서는 mesh 게이트웨이를 사용하여 클러스터 피어링 연결로 파티션 간에 서비스 메시 트래픽을 안전하게 라우팅하는 것을 권장합니다.

또한 Consul 환경이 다음 사전 요구 사항을 충족하는지 확인하세요:

  • Consul v1.14 이상.
  • Envoy 프록시 사용. Envoy는 Consul에서 mesh 게이트웨이 기능이 있는 유일한 프록시입니다.
  • mesh 게이트웨이 구성을 관리하려면 로컬 Consul 에이전트가 필요합니다.

Mesh 게이트웨이 사양 (Mesh gateway specifications)

Consul의 기본 구성을 변경하고 mesh 게이트웨이를 통해 클러스터 피어링을 활성화하려면 mesh 구성 항목을 사용하여 네트워크의 서비스 메시 프록시를 전역적으로 업데이트하세요:

  1. mesh 구성 항목에서 PeerThroughMeshGateways를 true로 설정합니다:

mesh-config.hcl

Kind = "mesh"
Peering {
  PeerThroughMeshGateways = true
}
  1. 구성 항목을 Consul에 작성합니다:
$ consul config write mesh-config.hcl

mesh 게이트웨이를 통해 클러스터 피어링할 때 다음 배포 요구 사항을 고려하세요:

  • 클러스터는 다른 지역 또는 클라우드 제공자의 피어에 서비스를 내보내려면 등록된 mesh 게이트웨이가 필요합니다.
  • mesh 게이트웨이는 내보낸 서비스와 해당 exported-services 구성 항목과 동일한 admin 파티션에 등록되어야 합니다. 단일 Consul 서버 클러스터에서 여러 admin 파티션을 사용하려면 엔터프라이즈 라이선스가 필요합니다.
  • local mesh 게이트웨이 모드를 사용하려면 가져오는 클러스터에 mesh 게이트웨이를 등록해야 합니다.
  • 프록시와 호환되는 불투명 매개변수로 Proxy.Config 설정을 정의하세요. 추가 Envoy 프록시 구성 정보는 Gateway options 및 Escape-hatch Overrides 문서를 참조하세요.

Mesh 게이트웨이 모드 (Mesh gateway modes)

기본적으로 클러스터 피어링 연결은 remote 모드의 mesh 게이트웨이를 사용합니다. mesh 게이트웨이의 모드를 변경할 때 다음 추가 요구 사항을 알아 두세요.

  • 피어링된 클러스터를 연결하는 mesh 게이트웨이의 경우 mode를 remote 또는 local로 설정할 수 있습니다.
  • none 모드는 클러스터 피어링 연결이 있는 mesh 게이트웨이에 유효하지 않습니다.

자세한 내용은 mesh gateway modes를 참조하세요.

사이드카 프록시 사양 (Sidecar proxy specifications)

서비스 메시에서 사이드카로 기능하는 Envoy 프록시는 피어로 트래픽을 올바르게 라우팅하려면 구성이 필요합니다. 사이드카 프록시는 서비스 정의에서 정의됩니다.

  • proxy.upstreams 매개변수를 구성하여 올바른 서비스, namespace, 피어로 트래픽을 라우팅합니다. 자세한 내용은 upstreams 문서를 참조하세요.
  • proxy.upstreams.destination_name 매개변수는 항상 필요합니다.
  • 클러스터 간 트래픽을 활성화하려면 proxy.upstreams.destination_peer 매개변수를 구성해야 합니다.
  • proxy.upstream/destination_namespace 구성은 대상 서비스가 기본이 아닌 namespace에 있는 경우에만 필요합니다.

내보낸 서비스 사양 (Exported service specifications)

서비스가 클러스터 피어링 연결로 파티션 간에 통신하려면 exported-services 구성 항목이 필요합니다. exported-services 구성 항목 사용에 대한 기본 지침은 Establish cluster peering connections에 포함되어 있습니다.

자세한 내용은 exported-services 구성 항목 참조를 참조하세요.

ACL 사양 (ACL specifications)

ACL이 활성화된 경우 다음 권한을 부여하는 토큰을 추가해야 합니다:

  • 서버 정의에서 mesh 게이트웨이를 정의하는 서비스에 service:write 권한을 부여합니다.
  • 파티션의 모든 서비스에 대해 service:read 권한을 부여합니다.
  • 클러스터 피어링 연결에 참여하는 mesh 게이트웨이에 mesh:write 권한을 부여합니다. 이 권한을 사용하면 HTTP 요청에 대한 TLS 세션을 종료하기 위해 mesh 게이트웨이에 리프 인증서가 발급될 수 있습니다.

더 알아보기 (Learn more)