47.2. 추가 Camel Quarkus 구성
이번 Camel Extensions for Quarkus 릴리스에서 camel-quarkus-kubernetes
확장 기능은 클러스터 서비스로 camel-quarkus-master
확장과 함께 사용되는 경우에만 지원됩니다. 또한 camel-quarkus-kubernetes
확장을 지원하려면 애플리케이션의 quarkus-openshift-client
확장에 대한 종속성을 명시적으로 추가해야 합니다.
47.2.1. Kubernetes 클라이언트 인스턴스 자동 등록 링크 복사링크가 클립보드에 복사되었습니다!
확장 프로그램은 kubernetesClient
라는 Kubernetes 클라이언트 빈을 자동으로 등록합니다. 다음과 같이 경로의 8080을 참조할 수 있습니다.
from("direct:pods") .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
from("direct:pods")
.to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
기본적으로 클라이언트는 로컬 kubeconfig 파일에서 구성됩니다. application.properties
: 내에서 속성을 통해 클라이언트 구성을 사용자 지정할 수 있습니다.
quarkus.kubernetes-client.master-url=https://my.k8s.host quarkus.kubernetes-client.namespace=my-namespace
quarkus.kubernetes-client.master-url=https://my.k8s.host
quarkus.kubernetes-client.namespace=my-namespace
전체 구성 옵션 세트는 Quarkus Kubernetes 클라이언트 가이드에 설명되어 있습니다.
47.2.2. 지정된 끝점에서 사용하는 클러스터에 단일 소비자만 있으면 링크 복사링크가 클립보드에 복사되었습니다!
동일한 경로가 여러 포드에 배포되면 마스터와 함께 이 확장을 사용하는 것이 유용할 수 있습니다. 이러한 설정에서 단일 소비자는 전체 camel master 네임 스페이스에서 한 번에 활성화됩니다.
예를 들어 아래 경로가 여러 Pod에 배포되었습니다.
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
다음과 같은 속성으로 kubernetes 클러스터 서비스를 활성화할 수 있습니다.
quarkus.camel.cluster.kubernetes.enabled = true
quarkus.camel.cluster.kubernetes.enabled = true
결과적으로 단일 소비자가 ns
camel 마스터 네임스페이스에서 활성화됩니다. 이는 한 번에 하나의 타이머만 전체 클러스터에서 교환을 생성하는 것을 의미합니다. 즉, 한 번에 단일 Pod에 100ms마다 메시지가 기록됩니다.
quarkus.camel.cluster.kubernetes.*
속성을 조정하여 kubernetes 클러스터 서비스를 추가로 조정할 수 있습니다.
구성 속성 | 유형 | Default |
---|---|---|
Kubernetes 클러스터 서비스가 'quarkus.camel.cluster.kubernetes.*' 구성에 따라 자동으로 구성해야 하는지 여부입니다. |
|
|
클러스터 서비스 ID(기본값: null). |
| |
Kubernetes 마스터의 URL입니다(기본적으로 Kubernetes 클라이언트 속성 읽기). |
| |
Kubernetes API 서버에 요청할 때 사용할 연결 제한 시간(밀리초)입니다. |
| |
Pod 및 configmap을 포함하는 Kubernetes 네임스페이스의 이름입니다(기본적으로 자동 검색됨). |
| |
현재 Pod의 이름입니다(기본적으로 컨테이너 호스트 이름에서 자동 검색). |
| |
모든 Pod가 동일한 즉시 Kubernetes API를 호출하지 못하도록 적용할 jitter 인수입니다(기본값: 1.2). |
| |
현재 리더의 기본 리스 기간(기본값: 15000). |
| |
리더가 서비스를 중지해야 하는 데드라인(기본값: 10000). |
| |
후속 두 시도 사이의 시간은 리더십을 확인하고 얻는 것입니다. jitter 인수를 사용하여 임의화됩니다(기본값: 2000). |
| |
서비스 조회 순서/priority(기본값: 2147482647). |
| |
최적화 잠금을 수행하는 데 사용되는 리스 리소스의 이름입니다(기본값: 'leaders'). 기본 Kubernetes 리소스에서 단일 잠금을 관리할 수 있는 경우 리소스 이름은 접두사로 사용됩니다. |
| |
Kubernetes에서 'config-map' 또는 'lease'에 사용되는 리스 리소스 유형입니다(기본값: 'lease'). |
| |
camel 마스터 네임스페이스 리더는 클러스터의 모든 카멜 컨텍스트에 균등하게 배포해야 하는지 여부입니다. |
|
|
클러스터를 구성하는 Pod를 식별하는 데 사용되는 라벨 키/값이며 기본값은 빈 맵입니다. |
|
빌드 시 수정된 구성 속성입니다. 다른 모든 구성 속성은 런타임 시 덮어쓸 수 있습니다.