잡 스펙의 `proxy` 블록
잡 스펙의 proxy 블록
proxy 블록은 Consul 서비스 메시용으로 Nomad가 관리하는 사이드카 프록시의 다양한 옵션을 구성할 수 있게 해요. sidecar_service 블록 안에서만 유효해요.
출처: 문서
본문
| 배치 | job -> group -> service -> connect -> sidecar_service -> **proxy** |
|---|
job "countdash" {
datacenters = ["dc1"]
group "api" {
network {
mode = "bridge"
}
service {
name = "count-api"
port = "9001"
connect {
sidecar_service {
proxy {}
}
}
}
task "web" {
driver = "docker"
config {
image = "hashicorpdev/counter-api:v3"
}
}
}
}
매개변수 (Parameters)
-
config(map: nil)- Nomad에 불투명하고 Consul에 직접 전달되는 프록시 구성. 자세한 내용은 Consul 서비스 메시 문서를 참고하세요. 키와 값은 런타임 변수 보간을 지원해요. -
expose([expose]: nil)- Envoy의 expose 경로 구성을 구성하는 데 사용. 자세한 내용은 Consul의 Expose Paths Configuration Reference를 참고하세요. -
local_service_address(string: "127.0.0.1")- 로컬 서비스가 바인딩하는 주소. Connect와 비-Connect 서비스가 혼합된 클러스터에서 사용자 정의하는 데 유용해요. -
local_service_port(int: <varies>)- 로컬 서비스가 바인딩하는 포트. 보통 부모 서비스의 포트와 같으며, Connect와 비-Connect 서비스가 혼합된 클러스터에서 사용자 정의하는 데 유용해요. -
transparent_proxy([transparent_proxy]: nil)- 투명 프록시 모드를 활성화하는 데 사용. 이 모드는 프록시가 Consul 서비스 의도(intentions)를 사용해 업스트림을 자동으로 구성하고, 할당에서 오는 트래픽이 프록시를 통과하도록 iptables 규칙을 구성해요. -
upstreams([upstreams]: nil)- 이 사이드카 프록시가 통신하는 각 업스트림 서비스의 세부 사항을 구성하는 데 사용.
예시 (Examples)
다음 예시는 upstreams 구성을 포함하는 프록시 스펙이에요.
sidecar_service {
proxy {
upstreams {
destination_name = "count-api"
local_bind_port = 8080
}
}
}
다음 예시는 투명 프록시 구성을 포함하는 프록시 스펙이에요. 투명 프록시에서는 upstreams 블록을 구성할 필요가 없다는 점에 유의하세요.
sidecar_service {
proxy {
transparent_proxy {
}
}
}