Kubernetes 어노테이션과 라벨 참조

Kubernetes 어노테이션과 라벨 참조 (Kubernetes annotations and labels reference)

Consul on Kubernetes는 connect-inject나 서비스 동기화 동작을 사용자 지정하는 몇 가지 옵션을 제공해요. 이를 통해 선택한 Kubernetes 리소스(예: 포드, 서비스)에서 Consul을 기본적으로 구성할 수 있어요.

출처: 문서

본문

Consul on Kubernetes는 connect-inject나 서비스 동기화 동작을 사용자 지정하는 몇 가지 옵션을 제공합니다. 이를 통해 선택한 Kubernetes 리소스(예: 포드, 서비스)에서 Consul을 기본적으로 구성할 수 있습니다.

이 문서 전체에서 connect 명사는 Consul의 서비스 메시 기능을 제공하는 connect 하위 시스템을 가리키는 데 사용됩니다.

Consul Service Mesh

Annotations

다음 Kubernetes 리소스 어노테이션을 포드에 사용해 connect-inject 동작을 제어할 수 있습니다:

consul.hashicorp.com/connect-inject - 이 값이 "true"이면 주입(injection)이 활성화됩니다. "false"이면 주입이 명시적으로 비활성화됩니다. 기본 주입기 동작은 포드가 이 값을 "true"로 지정하여 주입에 옵트인(opt-in)하도록 요구합니다. 이 기본값은 원하면 주입기의 구성에서 변경할 수 있습니다.

consul.hashicorp.com/transparent-proxy - 이 값이 "true"이면 이 포드는 트랜스페어런트 프록시가 활성화된 상태로 실행됩니다. 즉 Kubernetes DNS를 사용해 업스트림 서비스에 액세스할 수 있고 포드 내의 모든 인바운드/아웃바운드 트래픽이 프록시를 통과하도록 리디렉션됩니다.

consul.hashicorp.com/transparent-proxy-overwrite-probes - 이 값이 "true"이고 트랜스페어런트 프록시가 활성화되어 있으면 Connect 주입기가 Kubernetes HTTP 프로브를 덮어써서 Envoy 프록시를 가리키게 합니다.

consul.hashicorp.com/transparent-proxy-exclude-inbound-ports - 트랜스페어런트 프록시 모드로 실행할 때 트래픽 리디렉션에서 제외할 인바운드 포트의 쉼표로 구분된 목록입니다.

consul.hashicorp.com/transparent-proxy-exclude-outbound-cidrs - 트랜스페어런트 프록시 모드로 실행할 때 트래픽 리디렉션에서 제외할 아웃바운드 CIDR의 쉼표로 구분된 목록입니다.

consul.hashicorp.com/transparent-proxy-exclude-outbound-ports - 트랜스페어런트 프록시 모드로 실행할 때 트래픽 리디렉션에서 제외할 아웃바운드 포트의 쉼표로 구분된 목록입니다.

consul.hashicorp.com/transparent-proxy-exclude-uids - 트랜스페어런트 프록시 모드로 실행할 때 트래픽 리디렉션에서 제외할 추가 사용자 ID의 쉼표로 구분된 목록입니다.

consul.hashicorp.com/use-proxy-health-check - true로 설정하면 Consul 사이드카 프록시에 준비(readiness) 엔드포인트를 구성하고 요청을 애플리케이션으로 전달하는 프록시의 인바운드 포트 대신 프록시를 쿼리합니다.

consul.hashicorp.com/connect-service - 인바운드 연결을 수락하는 포드의 경우 제공되는 서비스의 이름을 지정합니다. 기본값은 포드와 연결된 Kubernetes 서비스의 이름입니다.

ACL을 사용하는 경우 이 값은 포드의 ServiceAccount 이름과 같아야 합니다.

consul.hashicorp.com/connect-service-port - 인바운드 연결을 수락하는 포드의 경우 인바운드 연결을 라우팅할 포트를 지정합니다. 지정하지 않으면 동작은 Consul 에디션에 따라 달라집니다:

* **Consul Enterprise** : 노출된 모든 컨테이너 포트를 기본값으로 하고 멀티포트 서비스를 등록합니다. 멀티포트 서비스 등록은 Consul Enterprise 기능입니다.
* **Consul CE** : 노출된 모든 컨테이너 포트를 기본값으로 하지만 첫 번째 포트만 등록합니다. 특정 포트를 등록하려면 이 어노테이션을 해당 포트로 설정해야 합니다.

지정하면 값은 http 같은 구성된 포트의 이름 또는 8080 같은 직접 포트 값일 수 있습니다. 이는 서비스의 포트입니다. 프록시 public 리스너는 동적 포트에서 수신합니다.

consul.hashicorp.com/connect-service-default-port - 여러 포트를 등록하는 포드의 경우 Consul 서비스 등록의 기본 포트를 지정합니다. 기본 포트는 consul.hashicorp.com/connect-service-port 어노테이션의 첫 번째 포트이거나, 해당 어노테이션이 설정되지 않은 경우 첫 번째 노출된 컨테이너 포트입니다.

여러 포트가 등록되면 Consul은 포트 접두사가 없는 가상 주소 트래픽을 이 기본 포트로 라우팅합니다. 예를 들어 <service_name>.virtual.consul은 <default_port>.<service_name>.virtual.consul과 같은 포트로 라우팅됩니다.

consul.hashicorp.com/connect-service-upstreams - 이 포드가 서비스 메시를 통해 연결해야 하는 업스트림 서비스 목록과 해당 연결을 수신할 정적 로컬 포트입니다. 트랜스페어런트 프록시가 활성화되면 이 어노테이션은 선택 사항입니다. 이 어노테이션은 라벨 형식(labeled) 또는 _비라벨 형식(unlabeled)_일 수 있습니다. 라벨 형식은 더 일관된 구문이며 클러스터 피어를 업스트림으로 참조할 수 있으므로 권장합니다.

트랜스페어런트 프록시가 비활성화되면 멀티포트 서비스를 포함한 모든 업스트림 서비스를 정의하려면 이 어노테이션을 사용해야 합니다. 멀티포트 업스트림을 구성하려면 destination_port 매개변수로 각 대상 포트를 지정하세요. 다음 예제는 service-response를 세 개의 명명된 포트가 있는 업스트림으로 구성합니다:

    annotations:
      "consul.hashicorp.com/connect-service-upstreams": "service-response.svc.default.ns.default.ap:9090:destination_port=api-port,service-response.svc.default.ns.default.ap:9091:destination_port=metrics,service-response.svc.default.ns.default.ap:9092:destination_port=admin-port"

참고: Kubernetes 어노테이션에는 문자 제한(256KB)이 있습니다. 이는 이 어노테이션을 사용해 서비스에 지정할 수 있는 업스트림 수를 제한합니다. Consul은 멀티포트 서비스에 대한 프로토콜 조합을 지원하지 않습니다. 서비스의 모든 포트는 동일한 프로토콜을 사용해야 합니다.

업스트림 어노테이션에 점(dot)이 포함되면 자동 생성된 환경 변수를 참조할 수 없습니다. 이는 Consul도 환경 변수에 점을 포함하여 렌더링하기 때문입니다. 예를 들어 Consul은 static-server.svc:8080에 대해 생성된 변수를 STATIC-SERVER.SVC_CONNECT_SERVICE_HOST 및 STATIC_SERVER.SVC_CONNECT_SERVICE_PORT로 렌더링하여 변수를 사용할 수 없게 만듭니다.

* **라벨 형식 (Labeled)**:

라벨 형식 어노테이션을 사용하면 어떤 서비스든 업스트림으로 참조할 수 있습니다. Consul Enterprise 네임스페이스를 지정할 수 있습니다. 같은 데이터센터의 admin 파티션, 클러스터 피어, 또는 WAN 피더레이션된 데이터센터도 지정할 수 있습니다.

  * 서비스 이름: 업스트림 서비스를 지정하려면 어노테이션 시작 부분에 서비스 이름을 놓고 `.svc`를 붙이세요.

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].svc:[port]"

  * 피어 또는 데이터센터: `svc.` 뒤에 피어 또는 데이터센터를 놓고 `peer` 또는 `dc`와 포트 번호를 붙이세요.

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].svc.[service-peer].peer:[port]"

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].svc.[service-dc].dc:[port]"

  * 네임스페이스 (Consul Enterprise 필요): `svc.` 뒤에 네임스페이스를 놓고 `ns`와 포트 번호를 붙이세요.

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].svc.[service-namespace].ns:[port]"

네임스페이스가 활성화되면 같은 데이터센터의 클러스터 피어, WAN 페더레이션된 데이터센터, 또는 admin 파티션을 지정하기 전에 네임스페이스를 어노테이션에 포함해야 합니다.

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].svc.[service-namespace].ns.[service-peer].peer:[port]"

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].svc.[service-namespace].ns.[service-partition].ap:[port]"

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].svc.[service-namespace].ns.[service-dc].dc:[port]"

* **비라벨 형식 (Unlabeled)**: 비라벨 형식 어노테이션을 사용하면 클러스터 피어에 없는 어떤 서비스든 업스트림으로 참조할 수 있습니다. Consul Enterprise 네임스페이스를 지정할 수 있습니다. 같은 데이터센터의 admin 파티션 또는 WAN 페더레이션된 데이터센터도 지정할 수 있습니다. 라벨 형식과 달리 prepared 쿼리도 업스트림으로 참조할 수 있습니다.

  * 서비스 이름: 업스트림 서비스를 지정하려면 어노테이션 시작 부분에 서비스 이름을 놓으세요. 서비스가 배포된 WAN 페더레이션된 데이터센터를 추가로 붙일 수도 있습니다.

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name]:[port]:[optional datacenter]"

  * 네임스페이스: 업스트림 서비스가 다른 네임스페이스에서 실행 중일 수 있습니다. 서비스 이름 뒤에 업스트림 네임스페이스를 놓으세요. 주입기 구성에 대한 추가 세부 정보는 [Consul Enterprise namespaces](/consul/docs/reference/k8s/annotation-label#consul-enterprise-namespaces)를 참조하세요.

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].[service-namespace]:[port]:[optional datacenter]"

네임스페이스가 지정되지 않으면 어노테이션은 기본적으로 소스 서비스의 네임스페이스로 설정됩니다. Consul Enterprise v1.7 이하에서는 네임스페이스 위치에 놓인 값을 서비스 이름의 일부로 해석합니다.

  * Admin 파티션: 업스트림 서비스가 다른 파티션에서 실행 중일 수 있습니다. 파티션을 지정할 때는 네임스페이스도 지정해야 합니다. 네임스페이스 뒤에 파티션 이름을 놓으세요. 데이터센터 이름을 지정하면 로컬 데이터센터여야 합니다. 이 방법을 사용한 파티션 간 통신은 데이터센터 내에서만 지원됩니다. 데이터센터를 가로지르는 파티션 간 통신의 경우 [클러스터 피어링 연결을 설정하고](/consul/docs/east-west/cluster-peering/establish/k8s) 라벨 형식 어노테이션으로 업스트림을 설정하세요.

        annotations:
          "consul.hashicorp.com/connect-service-upstreams":"[service-name].[service-namespace].[service-partition]:[port]:[optional datacenter]"

  * Prepared 쿼리: 업스트림 어노테이션에서 [prepared 쿼리](/consul/api-docs/query)를 참조하려면 어노테이션 앞에 `prepared_query`를 붙이고 쿼리 이름을 호출하세요.

        annotations:
          'consul.hashicorp.com/connect-service-upstreams': 'prepared_query:[query name]:[port]'

* **여러 업스트림 (Multiple upstreams)**: 쉼표로 여러 서비스나 업스트림을 구분하세요. 형식의 지원 버전을 사용할 때 비라벨, 라벨 또는 prepared 쿼리 형식을 지정할 수 있습니다.

      annotations:
        "consul.hashicorp.com/connect-service-upstreams":"[service-name]:[port]:[optional datacenter],[service-name]:[port]:[optional datacenter]"

      annotations:
        "consul.hashicorp.com/connect-service-upstreams":"[service-name]:[port]:[optional datacenter],prepared_query:[query name]:[port],[service-name].svc:[port]"

consul.hashicorp.com/envoy-extra-args - 주입된 envoy 바이너리에 전달할 인수의 공백으로 구분된 목록입니다.

    annotations:
      consul.hashicorp.com/envoy-extra-args: '--log-level debug --disable-hot-restart'

consul.hashicorp.com/kubernetes-service - Consul 서비스 등록에 사용되는 Kubernetes 서비스의 이름을 지정합니다. 여러 Kubernetes 서비스가 동일한 배포를 참조할 때 유용합니다. 이 어노테이션에 지정된 이름과 일치하지 않는 서비스는 무시됩니다. 지정하지 않으면 무시되는 서비스가 없습니다.

    annotations:
      consul.hashicorp.com/kubernetes-service: 'service-name-to-use'

consul.hashicorp.com/service-tags - Consul 서비스와 그 사이드카에 적용될 쉼표로 구분된 태그 목록입니다.

    annotations:
      consul.hashicorp.com/service-tags: foo,bar,baz

태그에 쉼표가 필요하면 \,로 쉼표를 이스케이프할 수 있습니다. 예를 들어 consul.hashicorp.com/service-tags: foo\,bar\,baz는 단일 태그 foo,bar,baz가 됩니다.

consul.hashicorp.com/service-meta-<YOUR_KEY> - Consul 서비스와 그 사이드카에 적용될 Consul 메타 키/값 쌍을 설정합니다. 키는 consul.hashicorp.com/service-meta- 뒤에 오는 것입니다. 예: consul.hashicorp.com/service-meta-foo: bar는 foo: bar가 됩니다.

    annotations:
      consul.hashicorp.com/service-meta-foo: baz
      consul.hashicorp.com/service-meta-bar: baz

consul.hashicorp.com/sidecar-proxy- - 사이드카 프록시 컨테이너의 기본 리소스 설정을 재정의합니다. 기본값은 Helm 구성에서 connectInject.sidecarProxy.resources 키로 설정됩니다.

* [](/consul/docs/reference/k8s/annotation-label#)[`consul.hashicorp.com/sidecar-proxy-cpu-limit`](/consul/docs/reference/k8s/annotation-label#consul-hashicorp-com-sidecar-proxy-cpu-limit) \- 기본 CPU 한도를 재정의합니다.
* [](/consul/docs/reference/k8s/annotation-label#)[`consul.hashicorp.com/sidecar-proxy-cpu-request`](/consul/docs/reference/k8s/annotation-label#consul-hashicorp-com-sidecar-proxy-cpu-request) \- 기본 CPU 요청을 재정의합니다.
* [](/consul/docs/reference/k8s/annotation-label#)[`consul.hashicorp.com/sidecar-proxy-memory-limit`](/consul/docs/reference/k8s/annotation-label#consul-hashicorp-com-sidecar-proxy-memory-limit) \- 기본 메모리 한도를 재정의합니다.
* [](/consul/docs/reference/k8s/annotation-label#)[`consul.hashicorp.com/sidecar-proxy-memory-request`](/consul/docs/reference/k8s/annotation-label#consul-hashicorp-com-sidecar-proxy-memory-request) \- 기본 메모리 요청을 재정의합니다.

consul.hashicorp.com/consul-envoy-proxy-concurrency - 기본 envoy 워커 스레드 수를 재정의합니다. 사이드카 사용 사례에는 낮게 설정하고 게이트웨이 같은 에지 프록시에는 높일 수 있습니다.

consul.hashicorp.com/consul-sidecar- - consul-sidecar 컨테이너의 기본 리소스 설정을 재정의합니다. 기본값은 Helm 구성에서 global.consulSidecarContainer.resources 키로 설정됩니다.

* [](/consul/docs/reference/k8s/annotation-label#)[`consul.hashicorp.com/consul-sidecar-cpu-limit`](/consul/docs/reference/k8s/annotation-label#consul-hashicorp-com-consul-sidecar-cpu-limit) \- 기본 CPU 한도를 재정의합니다.
* [](/consul/docs/reference/k8s/annotation-label#)[`consul.hashicorp.com/consul-sidecar-cpu-request`](/consul/docs/reference/k8s/annotation-label#consul-hashicorp-com-consul-sidecar-cpu-request) \- 기본 CPU 요청을 재정의합니다.
* [](/consul/docs/reference/k8s/annotation-label#)[`consul.hashicorp.com/consul-sidecar-memory-limit`](/consul/docs/reference/k8s/annotation-label#consul-hashicorp-com-consul-sidecar-memory-limit) \- 기본 메모리 한도를 재정의합니다.
* [](/consul/docs/reference/k8s/annotation-label#)[`consul.hashicorp.com/consul-sidecar-memory-request`](/consul/docs/reference/k8s/annotation-label#consul-hashicorp-com-consul-sidecar-memory-request) \- 기본 메모리 요청을 재정의합니다.

consul.hashicorp.com/enable-consul-dataplane-as-sidecar - true로 설정하면 consul-dataplane이 init 컨테이너로 로드되고 시작 프로브(startup probe)로 준비 상태를 확인합니다. 이는 consul-dataplane이 준비될 때까지 애플리케이션 컨테이너의 초기화를 지연시킵니다. 기본값은 false입니다.

consul.hashicorp.com/sidecar-initial-probe-check-delay-seconds - Kubernetes에서 시작 프로브가 consul-dataplane 사이드카 컨테이너 확인을 시작하기 전의 초기 지연(초)입니다. 기본값은 1입니다.

consul.hashicorp.com/sidecar-probe-period-seconds - Kubernetes 시작 프로브 확인 사이의 주기(초)입니다. 기본값은 1입니다.

consul.hashicorp.com/sidecar-probe-failure-threshold - consul-dataplane 사이드카 컨테이너를 다시 시작하기 전 Kubernetes 시작 프로브 확인의 연속 실패 횟수입니다. 기본값은 1입니다.

consul.hashicorp.com/sidecar-probe-check-timeout-seconds - Kubernetes가 시작 프로브 확인에서 시간 제한을 트리거하기까지의 시간(초)입니다. 기본값은 1입니다.

consul.hashicorp.com/enable-sidecar-proxy-lifecycle - 기본 Helm 값 connectInject.sidecarProxy.lifecycle.defaultEnabled을 재정의합니다.

consul.hashicorp.com/enable-sidecar-proxy-shutdown-drain-listeners - 기본 Helm 값 connectInject.sidecarProxy.lifecycle.defaultEnableShutdownDrainListeners을 재정의합니다.

consul.hashicorp.com/sidecar-proxy-lifecycle-shutdown-grace-period-seconds - 기본 Helm 값 connectInject.sidecarProxy.lifecycle.defaultShutdownGracePeriodSeconds을 재정의합니다.

consul.hashicorp.com/sidecar-proxy-lifecycle-graceful-port - 기본 Helm 값 connectInject.sidecarProxy.lifecycle.defaultGracefulPort를 재정의합니다.

consul.hashicorp.com/sidecar-proxy-lifecycle-graceful-shutdown-path - 기본 Helm 값 connectInject.sidecarProxy.lifecycle.defaultGracefulShutdownPath를 재정의합니다.

consul.hashicorp.com/enable-metrics - 기본 Helm 값 connectInject.metrics.defaultEnabled을 재정의합니다.

consul.hashicorp.com/enable-metrics-merging - 기본 Helm 값 connectInject.metrics.defaultEnableMerging을 재정의합니다.

consul.hashicorp.com/merged-metrics-port - 기본 Helm 값 connectInject.metrics.defaultMergedMetricsPort를 재정의합니다.

consul.hashicorp.com/prometheus-scrape-port - 기본 Helm 값 connectInject.metrics.defaultPrometheusScrapePort를 재정의합니다.

consul.hashicorp.com/prometheus-scrape-path - 기본 Helm 값 connectInject.metrics.defaultPrometheusScrapePath를 재정의합니다.

consul.hashicorp.com/prometheus-ca-file - Prometheus 메트릭 엔드포인트에서 TLS를 제공할 때 Envoy가 사용할 CA 파일의 로컬 파일 시스템 경로입니다. 프록시 구성에서 envoy_prometheus_bind_addr가 설정된 경우에만 적용됩니다.

consul.hashicorp.com/prometheus-ca-path - Prometheus 메트릭 엔드포인트에서 TLS를 제공할 때 Envoy가 사용할 CA 인증서 디렉터리의 로컬 파일 시스템 경로입니다. 프록시 구성에서 envoy_prometheus_bind_addr가 설정된 경우에만 적용됩니다.

consul.hashicorp.com/prometheus-cert-file - Prometheus 메트릭 엔드포인트에서 TLS를 제공할 때 Envoy가 사용할 인증서 파일의 로컬 파일 시스템 경로입니다. 프록시 구성에서 envoy_prometheus_bind_addr가 설정된 경우에만 적용됩니다.

consul.hashicorp.com/prometheus-key-file - Prometheus 메트릭 엔드포인트에서 TLS를 제공할 때 Envoy가 사용할 개인 키 파일의 로컬 파일 시스템 경로입니다. 프록시 구성에서 envoy_prometheus_bind_addr가 설정된 경우에만 적용됩니다.

consul.hashicorp.com/service-metrics-port - mesh 서비스가 메트릭을 노출하는 포트를 설정합니다.

consul.hashicorp.com/service-metrics-path - mesh 서비스가 메트릭을 노출하는 경로를 설정합니다.

consul.hashicorp.com/connect-inject-mount-volume - connect-inject 볼륨을 마운트할 컨테이너 이름의 쉼표로 구분된 목록입니다. 볼륨은 /consul/connect-inject에 마운트됩니다. connect-inject 볼륨에는 다른 사이드카 컨테이너가 필요로 하는 Consul 내부 데이터(예: consul 바이너리, 포드의 Consul ACL 토큰)가 포함됩니다. 이 데이터는 애플리케이션 컨테이너 내에서 Consul API에 요청하는 것과 같은 고급 사용 사례에 유용할 수 있습니다.

consul.hashicorp.com/consul-sidecar-user-volume - Envoy 사이드카에 추가할 볼륨을 정의하는 Volume 포드 스펙에 지정된 JSON 객체입니다.

    annotations:
      "consul.hashicorp.com/consul-sidecar-user-volume": "[{\"name\": \"secrets-data\", \"hostPath\": "[{\"path\": \"/mnt/secrets-path\"}]"}]"

consul.hashicorp.com/consul-sidecar-user-volume-mount - Envoy 사이드카에 추가할 volumeMount를 정의하는 Volume mount 포드 스펙에 지정된 JSON 객체입니다.

    annotations:
      "consul.hashicorp.com/consul-sidecar-user-volume-mount": "[{\"name\": \"secrets-store-mount\", \"mountPath\": \"/mnt/secrets-store\"}]"

consul.hashicorp.com/proxy-config-map - Proxy Config Options를 지정하는 JSON 객체입니다. 프록시 구성 맵은 서비스 등록 중에 프록시별로 구성 필드를 설정하기 위한 저수준 인터페이스를 제공합니다. 이 구성 필드는 service defaults 구성 항목에 없는 필드이고 다른 어노테이션에서 Envoy 구성 옵션 중 하나에 대한 명시적 액세스를 제공하지 않는 상황에서 사용하기 위한 것입니다.

    annotations:
      "consul.hashicorp.com/proxy-config-map": "{ \"xds_fetch_timeout_ms\": 30000 }"

Labels

Kubernetes 서비스의 connect-inject 동작을 제어하는 데 리소스 라벨을 사용할 수 있습니다.

  • consul.hashicorp.com/service-ignore - 이 라벨은 Kubernetes Service에 설정할 수 있습니다. "true"로 설정하면 해당 서비스는 Consul 엔드포인트를 등록하는 데 사용되지 않습니다. 이는 2개 이상의 서비스가 동일한 배포를 가리킬 때 유용할 수 있습니다. Consul은 동일한 배포에 여러 엔드포인트를 등록할 수 없습니다. 이 라벨을 사용해 Consul을 사용해 요청을 라우팅하는 데 사용해야 하는 서비스를 제외한 모든 서비스를 무시하도록 엔드포인트 등록에 지시할 수 있습니다.

Service Sync

Annotations

Service Sync 동작을 위해 포드에 다음 Kubernetes 리소스 어노테이션을 사용할 수 있습니다:

consul.hashicorp.com/service-sync: true로 설정하면 Kubernetes 서비스가 Consul로 동기화되도록 명시적으로 구성됩니다.

    annotations:
      'consul.hashicorp.com/service-sync': 'true'

consul.hashicorp.com/service-port: Kubernetes 서비스에 대해 Consul 카탈로그에 등록할 포트를 구성합니다. 어노테이션 값은 포트의 이름(권장) 또는 정확한 포트 값일 수 있습니다. 자세한 내용은 service ports를 참조하세요.

    annotations:
      'consul.hashicorp.com/service-port': 'http'

consul.hashicorp.com/service-tags: Consul에 등록된 서비스에 태그를 등록하는 데 사용할 쉼표로 구분된 문자열(공백 없음) 목록입니다. 이러한 사용자 정의 태그에는 자동으로 k8s 태그가 포함되며 비활성화할 수 없습니다.

    annotations:
      'consul.hashicorp.com/service-tags': 'primary,foo'

consul.hashicorp.com/service-meta-KEY: Consul 서비스에 대한 서비스 메타데이터를 지정하는 맵입니다. 아래 "KEY"는 어떤 키로도 설정할 수 있습니다. 이를 통해 여러 메타 값을 설정할 수 있습니다.

    annotations:
      'consul.hashicorp.com/service-meta-KEY': 'value'

consul.hashicorp.com/service-weight: - Catalog Sync의 서비스 어노테이션으로 가중 로드밸런싱 지원 기능을 구성합니다. 제공된 정수는 서비스 상태의 passing 상태에 대한 가중치로 적용됩니다. 이 값이 Consul 카탈로그의 서비스에 어떻게 활용되는지에 대한 자세한 내용은 서비스 구성의 weights를 참조하세요.

    annotations:
      consul.hashicorp.com/service-weight: 10

더 알아보기 (Learn more)