Nomad에서 서비스 등록
Nomad에서 서비스 등록 (Register Service with Nomad)
Nomad 작업 사양(jobspec)에 정의된 서비스를 Consul이 자동으로 등록하기 위한 요구 사항을 설명하는 문서예요. Nomad jobspec의 service 블록에서 서비스와 헬스 검사, 태그 같은 메타데이터를 정의하면 Consul이 자동으로 등록해요.
출처: 문서
본문
이 페이지는 Nomad 작업 사양에 정의된 서비스를 Consul이 자동으로 등록하기 위한 요구 사항을 설명합니다.
이 페이지에서 설명하는 구성에 대한 자세한 내용은 Nomad 문서의 service 블록 사양 참조를 참조하세요.
개요 (Overview)
Nomad는 Consul 서비스 발견 및 서비스 메시 작업을 위한 내장 지원이 있는 유연한 워크로드 스케줄러입니다. 애플리케이션 워크로드는 Nomad가 클라이언트 전체에서 실행 중인 작업을 오케스트레이션하는 데 사용하는 Nomad 작업 사양(즉, jobspec)에 정의됩니다. 작업(task) 그룹 또는 각 개별 작업에 대해 서비스를 정의할 수 있습니다.
Nomad 서비스를 Consul에 등록하기 위해 서비스 정의를 만들 필요가 없습니다. 대신 Consul용 서비스를 Nomad jobspec의 service 블록에서 헬스 검사와 태그 같은 메타데이터와 함께 정의할 수 있습니다. Nomad 클라이언트에서 작업을 실행하고 Consul 클라이언트도 설치되어 실행 중이면 Consul이 서비스를 자동으로 등록합니다. 이러한 서비스는 Consul UI에 Nomad가 등록했음을 나타내는 배지와 함께 표시됩니다.
서비스 구성 (Service configuration)
다음 예시는 Nomad jobspec에서 Consul 서비스를 정의하는 최소 구성입니다.
job "job-name" {
group "group-name" {
service {
name = "my-svc"
provider = "consul"
}
task "task-name" {
# ...
}
}
}
서비스 정의와 비교 (Compared to service definition)
다음 예시들은 동일한 서비스 구성을 보여줍니다. 하나는 Consul 서비스 정의로, 다른 하나는 Nomad jobspec의 service 블록으로 형식화되었습니다.
Consul 서비스 정의:
service {
name = "db"
port = "db"
tags = ["leader", "mysql"]
weights {
passing = 5
warning = 1
}
checks = [
{
type = "tcp"
port = "db"
interval = "10s"
timeout = "2s"
},
{
type = "http"
name = "app_health"
path = "/health"
interval = "20s"
timeout = "5s"
check_restart {
limit = 3
grace = "90s"
ignore_warnings = false
}
}
]
}
Nomad jobspec:
service {
tags = ["leader", "mysql"]
port = "db"
provider = "consul"
weights {
passing = 5
warning = 1
}
check {
type = "tcp"
port = "db"
interval = "10s"
timeout = "2s"
}
check {
type = "http"
name = "app_health"
path = "/health"
interval = "20s"
timeout = "5s"
check_restart {
limit = 3
grace = "90s"
ignore_warnings = false
}
}
}
다음 단계 (Next steps)
Consul이 카탈로그에 서비스를 등록한 후, 나머지 Consul 서비스 발견 기능이 해당 서비스에 사용 가능해집니다. 서비스 발견에 Consul을 사용하는 방법에 대한 자세한 내용은 discover services를 참조하세요.
Nomad 작업에서 Consul의 서비스 메시 기능을 사용하려면 Nomad jobspec의 connect 블록에서 서비스의 사이드카 프록시도 구성해야 합니다. 자세한 내용은 Connect workloads to Consul service mesh를 참조하세요.
Nomad 통합과 Consul과 Nomad가 어떻게 더 잘 함께 작동하는지 배우려면 Migrate a monolith to microservices tutorial을 완료하세요.