잡 스펙의 `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 {
    }
  }
}

더 알아보기 (Learn more)