Consul 카탈로그

Consul 카탈로그 (Catalog)

Consul 카탈로그가 등록된 서비스와 그 위치를 어떻게 추적하는지 개념적으로 설명하는 문서예요. 서비스 디스커버리와 서비스 메시 두 가지 사용 사례 모두에서 활용돼요.

출처: 문서

본문

이 페이지는 서비스 디스커버리와 서비스 메시 사용 사례를 위해 등록된 서비스와 그 위치를 추적하는 Consul 카탈로그에 대한 개념적 정보를 제공해요.

카탈로그를 쿼리할 때 반환되는 정보(노드, 서비스, 게이트웨이 목록을 쿼리할 때의 필터링 옵션 포함)에 대한 참조 문서는 HTTP API 문서의 /catalog 엔드포인트 참조를 참고하세요.

소개 (Introduction)

Consul은 카탈로그 API를 통해 등록된 서비스에 대한 정보를 추적해요. 이 API는 외부 서비스에 대한 사용자 정의 정보(예: 파티션, 필요한 헬스 체크)를 기록해요. 또한 Consul이 자체 운영을 위해 할당하는 정보(예: 각 서비스 인스턴스의 ID, 인스턴스가 등록되고 수정될 때의 Raft 인덱스)도 기록해요.

v2 카탈로그 (v2 Catalog)

Consul은 v1.17.0에서 실험적인 v2 카탈로그 API를 도입했어요. 이 API는 Kubernetes에서 다중 포트(Multi-port) Service 구성을 지원했으며, 테스트와 개발 목적으로 제공되었어요. v1.19.0 릴리스에서 v2 카탈로그와 다중 포트 Kubernetes Service 지원은 더 이상 사용되지 않게 되었어요(Deprecated).

v1.22부터 Consul의 카탈로그는 Service sync를 사용해 등록된 다중 포트 서비스에 대한 서비스 디스커버리 작업을 지원해요. 자세한 내용은 서비스 포트를 참고하세요.

카탈로그 구조 (Catalog structure)

Consul이 v1 카탈로그 API로 서비스 인스턴스를 등록하면 각 인스턴스에 대해 다음 정보를 기록해요:

카탈로그 필드 설명 출처
ID 서비스 인스턴스의 고유 식별자. 서비스 정의에서 사용자가 정의.
Node 서비스를 사용할 수 있는 연결 지점. VM에서는 사용자가 정의.
Kubernetes에서는 Consul이 Kubernetes Nodes에 따라 계산.
Address 서비스 인스턴스의 등록된 주소. 서비스 정의에서 사용자가 정의.
Tagged Addresses 주소에 대한 사용자 정의 레이블. 서비스 정의에서 사용자가 정의.
NodeMeta 노드에 대한 사용자 정의 메타데이터. 사용자가 정의
Datacenter 서비스가 등록된 데이터센터의 이름. 사용자가 정의
Service Consul이 서비스 인스턴스를 등록하는 서비스 이름. 사용자가 정의
Agent Check Consul 클라이언트 에이전트가 관리하는 서비스 인스턴스에 대해 정의된 헬스 체크. Consul이 계산
Health Checks 서비스에 대해 정의된 헬스 체크. 자세한 내용은 헬스 체크 정의를 참고. 사용자가 정의
Partition 서비스가 등록된 admin 파티션의 이름. 자세한 내용은 admin 파티션을 참고. 사용자가 정의
Locality 서비스의 리전과 가용 영역. 자세한 내용은 locality를 참고. 사용자가 정의

Consul 설치에 적용하는 구성 항목(configuration entry)이나 커스텀 리소스 정의(CRD)에 따라 프록시 기본 동작 같은 추가 정보가 서비스에 대해 카탈로그에 자동으로 기록돼요. 이 정보는 /catalog HTTP API 엔드포인트로 반환할 수 있어요.

더 알아보기 (Learn more)