6.3. Camel K 플랫폼 특성
6.3.1. 빌더 Trait
빌더 특성은 내부적으로 IntegrationKits를 빌드하고 구성하기 위한 최상의 전략을 결정하는 데 사용됩니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
빌더 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.1.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait builder.[key]=[value] --trait builder.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
| 이를 지원하는 빌드 구성 요소(예: OpenShift 빌드 Pod)에 대한 자세한 로깅을 활성화합니다. Kaniko 및 Buildah는 지원되지 않습니다. |
|
| 빌드 작업에 제공할 속성 목록 |
6.3.2. 컨테이너 특성
컨테이너 특성을 사용하여 통합이 실행되는 컨테이너의 속성을 구성할 수 있습니다.
컨테이너와 관련된 서비스 구성도 제공합니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
컨테이너 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.2.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait container.[key]=[value] --trait container.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
| |
|
| 필요한 최소 CPU 양입니다. |
|
| 필요한 최소 메모리 양입니다. |
|
| 필요한 최대 CPU 양입니다. |
|
| 필요한 최대 메모리 양입니다. |
|
| kubernetes 서비스를 통해 노출을 활성화/비활성화하는 데 사용할 수 있습니다. |
|
|
컨테이너에서 노출하는 다른 포트를 구성하려면 다음을 수행하십시오(기본 |
|
|
컨테이너에서 노출된 포트의 다른 포트 이름을 구성하려면 (기본값 |
|
|
컨테이너 포트가 노출될 서비스 포트(기본값 |
|
|
컨테이너 포트가 노출될 서비스 포트 이름(기본 |
|
|
기본 컨테이너 이름입니다. 기본적으로 |
|
| 기본 컨테이너 이미지 |
|
|
컨테이너에서 ProbesEnabled 프로브를 활성화/비활성화합니다(기본값 |
|
| 활성 상태 프로브가 시작되기 전에 컨테이너가 시작된 후의 시간(초)입니다. |
|
| 프로브가 시간 초과되는 시간(초)입니다. 활성 상태 프로브에 적용됩니다. |
|
| 프로브를 수행하는 빈도입니다. 활성 상태 프로브에 적용됩니다. |
|
| 실패 후 프로브가 성공한 것으로 간주되는 최소 연속 성공 사례입니다. 활성 상태 프로브에 적용됩니다. |
|
| 성공한 후 프로브가 실패한 것으로 간주하기 위한 최소 연속 실패 횟수입니다. 활성 상태 프로브에 적용됩니다. |
|
| 준비 상태 프로브가 시작되기 전에 컨테이너가 시작된 후의 시간(초)입니다. |
|
| 프로브가 시간 초과되는 시간(초)입니다. 준비 상태 프로브에 적용됩니다. |
|
| 프로브를 수행하는 빈도입니다. 준비 상태 프로브에 적용됩니다. |
|
| 실패 후 프로브가 성공한 것으로 간주되는 최소 연속 성공 사례입니다. 준비 상태 프로브에 적용됩니다. |
|
| 성공한 후 프로브가 실패한 것으로 간주하기 위한 최소 연속 실패 횟수입니다. 준비 상태 프로브에 적용됩니다. |
6.3.3. Camel Trait
Camel 특성을 사용하여 Apache Camel K 런타임 및 관련 라이브러리 버전을 구성할 수 있으며 비활성화할 수 없습니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
camel 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.3.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait camel.[key]=[value] --trait camel.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
6.3.4. 종속 항목 Trait
Dependencies 특성은 사용자가 실행하려는 통합을 기반으로 런타임 종속성을 자동으로 추가하는 데 내부적으로 사용됩니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
종속 항목 특성은 플랫폼 특성입니다. 즉, 플랫폼 기능을 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.4.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait dependencies.[key]=[value] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
6.3.5. 배포자 Trait
배포자 특성을 사용하여 통합을 배포할 높은 수준의 리소스 유형을 명시적으로 선택할 수 있습니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
배포자 특성은 플랫폼 특성입니다. 이를 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.5.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait deployer.[key]=[value] --trait deployer.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
|
통합을 실행하는 데 필요한 리소스를 생성할 때 배포 , |
6.3.6. 배포 평가
배포 특성은 클러스터에서 통합이 실행되는 Kubernetes 배포를 생성합니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
배포 특성은 플랫폼 특성입니다. 즉, 플랫폼 기능을 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.6.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait deployment.[key]=[value] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
6.3.7. 환경 Trait
환경 특성은 NAMESPACE
,POD_NAME
등과 같은 통합 컨테이너에 표준 환경 변수를 삽입하는 데 내부적으로 사용됩니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
환경 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.7.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait environment.[key]=[value] --trait environment.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
|
|
6.3.8. Error Handler Trait
error-handler는 Error Handler 소스를 통합 런타임에 삽입하는 데 사용되는 플랫폼 특성입니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
error-handler 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.8.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait error-handler.[key]=[value] --trait error-handler.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
| 오류 처리기 참조 이름이 애플리케이션 속성에서 제공되거나 제공됨 |
6.3.9. JVM 트레이블
JVM 특성은 통합을 실행하는 JVM을 구성하는 데 사용됩니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
jvm 특성은 플랫폼 특성입니다. 이를 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.9.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait jvm.[key]=[value] --trait jvm.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
| 디버거를 JVM에 연결할 수 있도록 원격 디버깅을 활성화합니다(예: port-forwarding 사용). |
|
| 기본 클래스가 로드되기 직전에 대상 JVM이 일시 중지됨 |
|
|
컨테이너 로그에서 JVM 시작(기본값 |
|
|
새로 시작된 JVM을 청취할 전송 주소(기본값 |
|
| JVM 옵션 목록 |
|
|
추가 JVM 클래스 경로 ( |
6.3.9.2. 예
통합에 추가 클래스 경로를
포함합니다
.$ kamel run -t jvm.classpath=/path/to/my-dependency.jar:/path/to/another-dependency.jar ...
6.3.10. Kamelets Trait
kamelets 특성은 Kamelets를 통합 런타임에 삽입하는 데 사용되는 플랫폼 특성입니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
kamelets 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.10.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait kamelets.[key]=[value] --trait kamelets.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
| 참조된 모든 Kamelets 및 기본 구성(기본적으로 사용)을 자동으로 삽입합니다. |
|
| 현재 통합으로 로드할 Kamelet 이름 쉼표로 구분된 목록입니다. |
6.3.11. nodeAffinityAffinityAffinityit
NodeAffinity 특성을 사용하면 다음 경로를 통해 통합 Pod를 예약할 수 있는 노드를 제한할 수 있습니다.
- 노드의 라벨 또는 Pod 간 유사성 및 유사성 방지를 사용합니다.
- 노드에서 이미 실행 중인 Pod의 레이블을 기반으로 합니다.
이 특성은 기본적으로 비활성화되어 있습니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
6.3.11.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait affinity.[key]=[value] --trait affinity.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
| 항상 동일한 노드에 통합의 여러 복제본을 공동 배치합니다(기본값 false). |
|
| 동일한 노드에 통합의 여러 복제본을 공동 배치하지 마십시오(기본값 false). |
|
| 노드의 라벨에 따라 통합 Pod를 예약할 수 있는 노드 세트를 정의합니다. |
|
| 통합 Pod를 함께 배치해야 하는 Pod 세트(즉, 지정된 네임스페이스와 관련하여 라벨 선택기와 일치하는 항목)를 정의합니다. |
|
| 통합 Pod를 함께 배치해서는 안 되는 Pod 집합(즉, 지정된 네임스페이스와 상대적인 라벨 선택기와 일치)을 정의합니다. |
6.3.11.2. 예
기본 제공 노드 레이블
kubernetes.io/hostname
을 사용하여 특정 노드에서 통합 Pod를 예약하려면 다음을 수행합니다.$ kamel run -t affinity.node-affinity-labels="kubernetes.io/hostname in(node-66-50.hosted.k8s.tld)" ...
노드당 단일 통합 Pod를 예약하려면(
Exists
Operator 사용)$ kamel run -t affinity.pod-anti-affinity-labels="camel.apache.org/integration" ...
통합 Pod를 다른 통합 Pod와 공동 배치하려면 다음을 수행합니다.
$ kamel run -t affinity.pod-affinity-labels="camel.apache.org/integration in(it1, it2)" ...
*-labels
옵션은 라벨 선택기 의 요구 사항을 따릅니다. 다중 평가를 받을 수 있습니다. 그런 다음 요구 사항 목록은 ANDed(예: 노드당 단일 통합 Pod를 예약하고 Camel K 운영자 Pod와 함께 배치되지 않음)가 됩니다.
$ kamel run -t affinity.pod-anti-affinity-labels="camel.apache.org/integration" -t affinity.pod-anti-affinity-labels="camel.apache.org/component=operator" ...
자세한 내용은 노드에 Pod 할당에 대한 공식 Kubernetes 설명서에서 확인할 수 있습니다.
6.3.12. OpenAPI Trait
OpenAPI DSL 특성은 OpenAPI 사양에서 통합을 생성하는 데 내부적으로 사용됩니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
openapi 특성은 플랫폼 특성입니다. 이를 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.12.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait openapi.[key]=[value] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
6.3.13. 소유자 Trait
Owner 특성을 사용하면 생성된 모든 리소스가 통합에 속하고 이러한 소유 리소스에 대한 통합에 대한 주석과 레이블을 전송합니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
소유자 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.13.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait owner.[key]=[value] --trait owner.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
| 전송할 주석 세트 |
|
| 전송할 라벨 세트 |
6.3.14. 플랫폼 트레이블
플랫폼 특성은 통합 플랫폼을 통합하는 데 사용되는 기본 특성입니다.
플랫폼이 없는 경우 해당 특성은 기본 플랫폼을 생성할 수 있습니다. 이 기능은 플랫폼에 대한 사용자 지정 구성을 제공할 필요가 없는 컨텍스트에서 유용합니다(예: OpenShift에서 기본 설정이 작동함).
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
플랫폼 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.14.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait platform.[key]=[value] --trait platform.[key2]=[value2] Integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
| 플랫폼이 누락될 때 기본(비어 있음) 플랫폼을 생성하려면 다음을 수행합니다. |
|
| Global operator (default true)의 경우 플랫폼을 전역적으로 생성해야 하는지 여부를 나타냅니다. |
|
| 기본 플랫폼을 생성할 수 있는 경우 환경에서 자동으로 감지합니다(OpenShift에서만 생성됨). |
6.3.15. Quarkus Trait
Quarkus 특성은 Quarkus 런타임을 활성화합니다.
기본적으로 활성화되어 있습니다.
네이티브 실행 파일로 컴파일합니다. 즉 package-type=native
를 사용하는 경우 kamelets 및 YAML 통합에만 지원됩니다. 또한 최소 4GiB의 메모리가 필요하므로 기본 빌드를 실행하는 Pod는 Operator Pod 또는 빌드 Pod(플랫폼에 구성된 빌드 전략에 따라)를 사용할 수 있는 충분한 메모리를 보유해야 합니다.
이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.
quarkus 특성은 플랫폼 특성입니다: 비활성화하면 플랫폼 기능이 손상될 수 있습니다.
6.3.15.1. 설정
CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.
$ kamel run --trait quarkus.[key]=[value] --trait quarkus.[key2]=[value2] integration.java
다음 설정 옵션을 사용할 수 있습니다.
속성 | 유형 | 설명 |
---|---|---|
|
| 특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다. |
|
|
Quarkus 패키지 유형(기본값: |
6.3.15.2. 지원되는 Camel 구성 요소
Camel K는 Camel Quarkus Extensions로 제공되는 Camel 구성 요소만 지원합니다.
6.3.15.3. 예
6.3.15.3.1. 네이티브 통합에 대한 자동 롤아웃
네이티브 실행 파일로 컴파일하면 더 빠르게 시작하고 런타임 시 더 적은 메모리를 사용하는 통합이 생성되는 반면 빌드 프로세스는 리소스를 집약적이며 기존 Java 애플리케이션에 패키징하는 것보다 시간이 더 오래 걸립니다.
두 가지 장점을 모두 결합하기 위해 통합을 실행할 때 기존 빌드와 네이티브 빌드를 병렬로 실행하도록 Quarkus 특성을 구성할 수 있습니다.
$ kamel run -t quarkus.package-type=fast-jar -t quarkus.package-type=native ...
빠른jar
빌드가 완료되면 통합 pod가 실행되고, 서비스 중단 없이 네이티브
빌드가 완료되면 네이티브
이미지에 대한 롤아웃 배포가 트리거됩니다.