2.44. Kubernetes
Kubernetes API에 대한 작업 수행
2.44.1. 내부 내용 링크 복사링크가 클립보드에 복사되었습니다!
-
Kubernetes ConfigMap component, URI syntax:
kubernetes-config-maps:masterUrl
-
Kubernetes 사용자 정의 리소스 구성 요소, URI 구문:
kubernetes-custom-resources:masterUrl
-
Kubernetes 배포 구성 요소, URI 구문:
kubernetes-deployments:masterUrl
-
Kubernetes HPA 구성 요소, URI 구문:
kubernetes-hpa:masterUrl
-
Kubernetes 작업 구성 요소, URI 구문:
kubernetes-job:masterUrl
-
Kubernetes 네임스페이스 구성 요소, URI 구문:
kubernetes-namespaces:masterUrl
-
Kubernetes 노드 구성 요소, URI 구문:
kubernetes-nodes:masterUrl
-
Kubernetes 영구 볼륨 구성 요소, URI 구문:
kubernetes-persistent-volumes:masterUrl
-
Kubernetes 영구 볼륨 클레임 구성 요소, URI 구문:
kubernetes-persistent-volumes-claims:masterUrl
-
Kubernetes Pod 구성 요소, URI 구문:
kubernetes-pods:masterUrl
-
Kubernetes 복제 컨트롤러 구성 요소, URI 구문:
kubernetes-replication-controllers:masterUrl
-
Kubernetes Resources 할당량 구성 요소, URI 구문:
kubernetes-resources-quota:masterUrl
-
Kubernetes Secrets 구성 요소, URI 구문:
kubernetes-secrets:masterUrl
-
Kubernetes 서비스 계정 구성 요소, URI 구문:
kubernetes-service-accounts:masterUrl
-
Kubernetes 서비스 구성 요소, URI 구문:
kubernetes-services:masterUrl
-
OpenShift 빌드 구성 요소, URI 구문:
openshift-build-configs:masterUrl
-
OpenShift 빌드 구성 요소, URI 구문:
openshift-builds:masterUrl
-
OpenShift Deployment Configs 구성 요소, URI 구문:
openshift-deploymentconfigs:masterUrl
사용 및 설정 세부 사항은 위의 링크를 참조하십시오.
2.44.2. Maven 조정 링크 복사링크가 클립보드에 복사되었습니다!
code.quarkus.redhat.com에서 이 확장 기능을 사용하여 새 프로젝트를 생성합니다.
또는 기존 프로젝트에 좌표를 추가합니다.
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-kubernetes</artifactId> </dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-kubernetes</artifactId>
</dependency>
2.44.3. 추가 Camel Quarkus 구성 링크 복사링크가 클립보드에 복사되었습니다!
테스트 콘텐츠.
2.44.3.1. Kubernetes 클라이언트 인스턴스 자동 등록 링크 복사링크가 클립보드에 복사되었습니다!
이 확장은 kubernetesClient
라는 Kubernetes 클라이언트 빈을 자동으로 등록합니다. 다음과 같이 경로에서 Velero를 참조할 수 있습니다.
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 클라이언트 가이드에 설명되어 있습니다.
2.44.3.2. 지정된 끝점에서 사용하는 클러스터에 단일 소비자만 보유 링크 복사링크가 클립보드에 복사되었습니다!
동일한 경로가 여러 Pod에 배포되면 마스터 하나와 함께 이 확장을 사용하는 것이 어려울 수 있습니다. 이러한 설정에서 단일 소비자는 전체 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 master 네임스페이스에서 활성화됩니다. 즉, 주어진 시간에 단일 타이머 만 전체 클러스터에서 교환을 생성한다는 것을 의미합니다. 즉, 메시지는 한 번에 단일 Pod에 100ms마다 기록됩니다.
kubernetes 클러스터 서비스는 quarkus.camel.cluster.kubernetes.*
속성을 조정하여 추가로 조정할 수 있습니다.
구성 속성 | 유형 | Default |
---|---|---|
'quarkus.camel.cluster.kubernetes.*' 구성에 따라 Kubernetes 클러스터 서비스를 자동으로 구성해야 하는지 여부입니다. |
|
|
클러스터 서비스 ID(기본값: null)입니다. |
| |
Kubernetes 마스터의 URL입니다(기본적으로 Kubernetes 클라이언트 속성에서 읽기). |
| |
Kubernetes API 서버에 요청할 때 사용할 연결 제한 시간(밀리초)입니다. |
| |
Pod 및 configmap을 포함하는 Kubernetes 네임스페이스의 이름입니다(기본적으로 자동 감지). |
| |
현재 Pod의 이름입니다(기본적으로 컨테이너 호스트 이름에서 자동 감지). |
| |
모든 Pod가 동일한 시점에 Kubernetes API를 호출하는 것을 방지하기 위해 적용할 지터 인수(기본값: 1.2로 설정) |
| |
현재 리더의 임대 기간(기본값: 15000)입니다. |
| |
리더는 리더십이 손실되었을 수 있기 때문에 서비스를 중지해야 하는 기한(기본값: 10000). |
| |
두 번의 후속 시도 사이의 시간은 리더십을 확인하고 취득하려고 합니다. 지터 팩터(기본값: 2000)를 사용하여 무작위로 정렬됩니다. |
| |
서비스 조회 순서/우선 우선순위(기본값: 2147482647) |
| |
최적화형 잠금을 수행하는 데 사용되는 리스 리소스의 이름입니다(기본값: 'leaders'). 리소스 이름은 기본 Kubernetes 리소스에서 단일 잠금을 관리할 수 있는 경우 접두사로 사용됩니다. |
| |
Kubernetes에서 사용되는 lease 리소스 유형인 'config-map' 또는 'lease'(기본값: 'lease')입니다. |
| |
camel 마스터 네임스페이스 리더는 클러스터의 모든 camel 컨텍스트에 균등하게 배포되어야 하는지 여부입니다. |
|
|
클러스터를 구성하는 pod를 식별하는 데 사용되는 레이블 키/값(기본값은 빈 맵)입니다. |
|
구성 속성은 빌드 시 수정되었습니다. 다른 모든 구성 속성은 런타임에 오버라이브할 수 있습니다.