네임스페이스에 서비스 등록
네임스페이스에 서비스 등록 (Register a Service into a Namespace)
이 문서는 특정 Consul 네임스페이스에 서비스를 등록하는 방법을 설명해요. namespace 속성, -namespace 플래그, 네임스페이스 상속(inheritance) 토큰을 사용하는 세 가지 방법을 다룰게요. 이 기능은 Consul Enterprise에서 사용할 수 있어요.
출처: 문서
본문
이 페이지는 특정 Consul 네임스페이스에 서비스를 등록하는 방법을 설명합니다.
Enterprise
이 기능은 Consul Enterprise가 필요합니다. 추가 정보는 enterprise 기능 매트릭스를 참조하세요.
소개 (Introduction)
네임스페이스를 사용하면 조직의 여러 팀이 각 팀의 서비스, Consul KV 데이터, 기타 Consul 데이터를 분리하여 하나 이상의 Consul 데이터센터를 공유할 수 있습니다. 이를 통해 운영자가 Consul을 서비스로 더 쉽게 제공하고 ACL 관리를 위임할 수 있습니다.
모든 Consul 클러스터는 default 네임스페이스에 접근할 수 있지만, 여러 네임스페이스를 사용하려면 Consul Enterprise 라이선스가 필요합니다. Consul은 서비스 정의에 선언된 네임스페이스에 서비스를 등록합니다. 네임스페이스를 지정하지 않으면 Consul은 서비스를 default 네임스페이스에 등록합니다.
네임스페이스에 서비스 등록 (Register a service into a namespace)
다음 방법 중 하나를 사용해 네임스페이스에 서비스를 등록합니다:
- 서비스 등록 파일에
namespace속성을 추가합니다. - 서비스 등록 중 API 호출이나 CLI 명령에
-namespace플래그를 추가합니다. - 네임스페이스 상속을 활용하려면 네임스페이스 토큰을 사용합니다.
기존 서비스를 새 네임스페이스로 마이그레이션하려면 서비스를 다시 등록하고 두 방법 중 하나로 네임스페이스를 제공합니다.
namespace 속성 사용 (Use the namespace attribute)
서비스 등록 파일에 namespace 속성을 포함하고 값이 존재하는 네임스페이스로 설정합니다. service 블록으로 서비스 등록에 대한 자세한 내용은 서비스 정의 참조 페이지를 참조하세요.
db-service.hcl:
service {
name = "db-service"
port = 5432
namespace = "db-team"
# ...
}
서비스 등록 파일을 제공해 Consul에 서비스를 등록합니다.
$ consul services register db-service.hcl
Registered service: db-service
-namespace 플래그 사용 (Use the -namespace flag)
Consul CLI로 서비스를 등록할 때 -namespace 플래그를 포함합니다.
services register 명령의 CLI 참조 페이지에서 더 많은 정보와 추가 구성 옵션을 참조하세요.
$ consul services register \
-name=db-service \
-port=5432 \
-namespace=db-team
네임스페이스 상속 사용 (Use namespace inheritance)
특정 네임스페이스로 범위가 지정된 토큰을 사용해 서비스, 의도, Consul KV, 헬스 체크, ACL과 관련된 CLI 및 API 요청을 하면 요청이 토큰에서 네임스페이스 정보를 상속합니다. 즉, db-team 네임스페이스의 토큰을 사용해 Consul에 서비스를 등록하면 명시적으로 지정하지 않아도 서비스가 그 네임스페이스에 등록됩니다.
네임스페이스 토큰을 만들려면 네임스페이스로 ACL 토큰 관리 위임의 지침을 따르세요.
먼저 CLI용 토큰을 설정합니다.
$ export CONSUL_HTTP_TOKEN=<db-team namespace token here>
그런 다음 -namespace 플래그 없이 서비스를 등록합니다.
consul services register -name=db-service -port=5432
Registered service: db-service
참고
서비스 정의 파일로 서비스를 등록했다면 요청에 ACL 토큰과 네임스페이스 이름을 모두 포함해야 합니다. 서비스 정의는 토큰을 해석하기 전에 구문 분석되기 때문입니다.
Consul DNS 쿼리에서 네임스페이스 지정 (Specify namespace in a Consul DNS query)
Consul DNS 쿼리에는 데이터센터 또는 데이터센터 와 네임스페이스를 포함할 수 있습니다.
데이터센터 전용 형식
데이터센터·네임스페이스 형식
<service-name>.service.<datacenter>.consul
<service-name>.service.<namespace>.<datacenter>.consul