서비스 및 헬스 체크 등록

서비스 및 헬스 체크 등록

가상 머신(VM) 네트워크에서 Consul에 서비스와 헬스 체크를 등록하는 방법을 설명해 드릴게요. 에이전트 시작, 리로드, CLI, HTTP API로 등록하는 방법을 살펴볼게요.

출처: 문서

본문

이 문서는 가상 머신(VM)에서 실행되는 네트워크에서 서비스와 헬스 체크를 Consul에 등록하는 방법을 설명해요. 서비스와 헬스 체크를 정의하는 방법은 서비스 정의와 헬스 체크 정의를 참고해 주세요.

개요

VM 환경에서 서비스 정의를 Consul 에이전트에 제공하여 서비스와 헬스 체크를 등록해요. 서비스와 헬스 체크를 등록하는 몇 가지 다른 방법이 있어요.

  • Consul 에이전트를 시작하고 에이전트의 구성 디렉터리에 서비스 정의를 전달해요.

  • 실행 중인 Consul 에이전트를 리로드하고 에이전트의 구성 디렉터리에 서비스 정의를 전달해요. 기존 서비스 또는 헬스 체크 정의를 변경할 때 이 방법을 사용해 주세요.

  • consul services register 명령을 사용하여 실행 중인 Consul 에이전트에 새 서비스와 헬스 체크를 등록해요.

  • /agent/service/register HTTP API 엔드포인트를 호출하여 실행 중인 Consul 에이전트에 새 서비스와 헬스 체크를 등록해요.

  • /agent/check/register HTTP API 엔드포인트를 호출하여 서비스와 독립적으로 헬스 체크를 등록해요.

HTTP API 엔드포인트나 CLI 명령으로 서비스를 등록하면 체크가 Consul 데이터 폴더에 유지돼요. 에이전트가 다시 시작되면 Consul은 구성 디렉터리의 서비스 및 체크 구성을 사용하여 서비스를 시작해요.

서비스와 연관된 헬스 체크는 애플리케이션 수준 체크라는 점에 유의해 주세요.

에이전트 시작

에이전트가 실패하면 서비스가 유지되므로 시작 시 서비스를 등록하는 것을 권장해요. 시작 시 -config-dir 옵션으로 서비스 정의가 포함된 디렉터리를 지정해 주세요. Consul 에이전트가 시작되면 디렉터리의 모든 구성을 처리하고 구성에 포함된 모든 서비스를 등록해요. 다음 예시에서 Consul 에이전트는 시작되어 configs 디렉터리에 포함된 구성을 로드해요:

$ consul agent -config-dir configs

자세한 내용은 Consul 에이전트 시작을 참고해 주세요.

에이전트 리로드

서비스 정의 파일을 Consul 구성 파일이 포함된 디렉터리에 저장하고 Consul 에이전트 서비스에 SIGHUP 신호를 보내거나 consul reload 명령을 실행해 주세요. 자세한 내용은 Consul Reload를 참고해 주세요.

CLI로 등록

consul services register 명령을 실행하고 서비스 정의 파일을 지정하여 파일에 정의된 서비스와 헬스 체크를 등록해 주세요. 다음 예시에서 web이라는 서비스가 등록돼요:

$ consul services register -name=web services.hcl

명령 사용에 대한 자세한 내용은 Consul Agent Service Registration을 참고해 주세요.

API로 등록

HTTP API를 사용하여 서비스와 헬스 체크를 등록하려면 다음 방법을 사용해 주세요.

서비스 등록

/agent/service/register API 엔드포인트에 PUT 요청을 보내 서비스와 관련 헬스 체크를 동적으로 등록해 주세요. 헬스 체크를 독립적으로 등록하려면 checks API 엔드포인트를 호출해 주세요.

다음 예시 요청은 service.json 파일에 정의된 서비스를 등록해요.

$ curl --request PUT --data @service.json http://localhost:8500/v1/agent/service/register

services 엔드포인트에 대한 자세한 내용은 Service - Agent HTTP API를 참고해 주세요.

더 알아보기 (Learn more)