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

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

builder.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

builder.verbose

bool

이를 지원하는 빌드 구성 요소(예: OpenShift 빌드 Pod)에 대한 자세한 로깅을 활성화합니다. Kaniko 및 Buildah는 지원되지 않습니다.

builder.properties

[]string

빌드 작업에 제공할 속성 목록

6.3.2. 컨테이너 특성

컨테이너 특성을 사용하여 통합이 실행되는 컨테이너의 속성을 구성할 수 있습니다.

컨테이너와 관련된 서비스 구성도 제공합니다.

이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.

주의

컨테이너 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.

6.3.2.1. 설정

CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.

$ kamel run --trait container.[key]=[value] --trait container.[key2]=[value2] Integration.java

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

container.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

container.auto

bool

 

container.request-cpu

string

필요한 최소 CPU 양입니다.

container.request-memory

string

필요한 최소 메모리 양입니다.

container.limit-cpu

string

필요한 최대 CPU 양입니다.

container.limit-memory

string

필요한 최대 메모리 양입니다.

container.expose

bool

kubernetes 서비스를 통해 노출을 활성화/비활성화하는 데 사용할 수 있습니다.

container.port

int

컨테이너에서 노출하는 다른 포트를 구성하려면 다음을 수행하십시오(기본 8080).

container.port-name

string

컨테이너에서 노출된 포트의 다른 포트 이름을 구성하려면 (기본값 http).

container.service-port

int

컨테이너 포트가 노출될 서비스 포트(기본값 80)를 구성하려면 다음을 수행합니다.

container.service-port-name

string

컨테이너 포트가 노출될 서비스 포트 이름(기본 http)을 구성하려면 다음을 수행하십시오.

container.name

string

기본 컨테이너 이름입니다. 기본적으로 integration 이라고 합니다.

container.image

string

기본 컨테이너 이미지

container.probes-enabled

bool

컨테이너에서 ProbesEnabled 프로브를 활성화/비활성화합니다(기본값 false).

container.liveness-initial-delay

int32

활성 상태 프로브가 시작되기 전에 컨테이너가 시작된 후의 시간(초)입니다.

container.liveness-timeout

int32

프로브가 시간 초과되는 시간(초)입니다. 활성 상태 프로브에 적용됩니다.

container.liveness-period

int32

프로브를 수행하는 빈도입니다. 활성 상태 프로브에 적용됩니다.

container.liveness-success-threshold

int32

실패 후 프로브가 성공한 것으로 간주되는 최소 연속 성공 사례입니다. 활성 상태 프로브에 적용됩니다.

container.liveness-failure-threshold

int32

성공한 후 프로브가 실패한 것으로 간주하기 위한 최소 연속 실패 횟수입니다. 활성 상태 프로브에 적용됩니다.

container.readiness-initial-delay

int32

준비 상태 프로브가 시작되기 전에 컨테이너가 시작된 후의 시간(초)입니다.

container.readiness-timeout

int32

프로브가 시간 초과되는 시간(초)입니다. 준비 상태 프로브에 적용됩니다.

container.readiness-period

int32

프로브를 수행하는 빈도입니다. 준비 상태 프로브에 적용됩니다.

container.readiness-success-threshold

int32

실패 후 프로브가 성공한 것으로 간주되는 최소 연속 성공 사례입니다. 준비 상태 프로브에 적용됩니다.

container.readiness-failure-threshold

int32

성공한 후 프로브가 실패한 것으로 간주하기 위한 최소 연속 실패 횟수입니다. 준비 상태 프로브에 적용됩니다.

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

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

camel.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

6.3.4. 종속 항목 Trait

Dependencies 특성은 사용자가 실행하려는 통합을 기반으로 런타임 종속성을 자동으로 추가하는 데 내부적으로 사용됩니다.

이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.

주의

종속 항목 특성은 플랫폼 특성입니다. 즉, 플랫폼 기능을 비활성화하면 플랫폼 기능이 손상될 수 있습니다.

6.3.4.1. 설정

CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.

$ kamel run --trait dependencies.[key]=[value] Integration.java

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

dependencies.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

6.3.5. 배포자 Trait

배포자 특성을 사용하여 통합을 배포할 높은 수준의 리소스 유형을 명시적으로 선택할 수 있습니다.

이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.

주의

배포자 특성은 플랫폼 특성입니다. 이를 비활성화하면 플랫폼 기능이 손상될 수 있습니다.

6.3.5.1. 설정

CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.

$ kamel run --trait deployer.[key]=[value] --trait deployer.[key2]=[value2] Integration.java

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

deployer.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

deployer.kind

string

통합을 실행하는 데 필요한 리소스를 생성할 때 배포 ,cron-job 또는 knative-service 간에 원하는 배포 유형을 명시적으로 선택할 수 있습니다.

6.3.6. 배포 평가

배포 특성은 클러스터에서 통합이 실행되는 Kubernetes 배포를 생성합니다.

이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.

주의

배포 특성은 플랫폼 특성입니다. 즉, 플랫폼 기능을 비활성화하면 플랫폼 기능이 손상될 수 있습니다.

6.3.6.1. 설정

CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.

$ kamel run --trait deployment.[key]=[value] Integration.java

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

deployment.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

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

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

environment.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

environment.container-meta

bool

NAMESPACEPOD_NAME 환경 변수 삽입 (기본값 true)

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

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

error-handler.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

error-handler.ref

string

오류 처리기 참조 이름이 애플리케이션 속성에서 제공되거나 제공됨

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.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

jvm.debug

bool

디버거를 JVM에 연결할 수 있도록 원격 디버깅을 활성화합니다(예: port-forwarding 사용).

jvm.debug-suspend

bool

기본 클래스가 로드되기 직전에 대상 JVM이 일시 중지됨

jvm.print-command

bool

컨테이너 로그에서 JVM 시작(기본값 true)을 사용하는 명령을 출력합니다.

jvm.debug-address

string

새로 시작된 JVM을 청취할 전송 주소(기본값 *:5005)

jvm.options

[]string

JVM 옵션 목록

jvm.classpath

string

추가 JVM 클래스 경로 ( Linux 클래스 경로 구분 사용)

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.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

kamelets.auto

bool

참조된 모든 Kamelets 및 기본 구성(기본적으로 사용)을 자동으로 삽입합니다.

kamelets.list

string

현재 통합으로 로드할 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

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

affinity.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

affinity.pod-affinity

bool

항상 동일한 노드에 통합의 여러 복제본을 공동 배치합니다(기본값 false).

affinity.pod-anti-affinity

bool

동일한 노드에 통합의 여러 복제본을 공동 배치하지 마십시오(기본값 false).

affinity.node-affinity-labels

[]string

노드의 라벨에 따라 통합 Pod를 예약할 수 있는 노드 세트를 정의합니다.

affinity.pod-affinity-labels

[]string

통합 Pod를 함께 배치해야 하는 Pod 세트(즉, 지정된 네임스페이스와 관련하여 라벨 선택기와 일치하는 항목)를 정의합니다.

affinity.pod-anti-affinity-labels

[]string

통합 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

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

openapi.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

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

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

owner.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

owner.target-annotations

[]string

전송할 주석 세트

owner.target-labels

[]string

전송할 라벨 세트

6.3.14. 플랫폼 트레이블

플랫폼 특성은 통합 플랫폼을 통합하는 데 사용되는 기본 특성입니다.

플랫폼이 없는 경우 해당 특성은 기본 플랫폼을 생성할 수 있습니다. 이 기능은 플랫폼에 대한 사용자 지정 구성을 제공할 필요가 없는 컨텍스트에서 유용합니다(예: OpenShift에서 기본 설정이 작동함).

이 특성은 Kubernetes, Knative, OpenShift 프로필에서 사용할 수 있습니다.

주의

플랫폼 특성은 플랫폼 특성입니다. 비활성화하면 플랫폼 기능이 손상될 수 있습니다.

6.3.14.1. 설정

CLI와의 통합을 실행할 때 특성 속성을 지정할 수 있습니다.

$ kamel run --trait platform.[key]=[value] --trait platform.[key2]=[value2] Integration.java

다음 설정 옵션을 사용할 수 있습니다.

속성유형설명

platform.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

platform.create-default

bool

플랫폼이 누락될 때 기본(비어 있음) 플랫폼을 생성하려면 다음을 수행합니다.

platform.global

bool

Global operator (default true)의 경우 플랫폼을 전역적으로 생성해야 하는지 여부를 나타냅니다.

platform.auto

bool

기본 플랫폼을 생성할 수 있는 경우 환경에서 자동으로 감지합니다(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.enabled

bool

특성을 활성화하거나 비활성화하는 데 사용할 수 있습니다. 모든 특성은 이 공통 속성을 공유합니다.

quarkus.package-type

[]github.com/apache/camel-k/pkg/trait.quarkusPackageType

Quarkus 패키지 유형(기본값: fast-jar 또는 native )(기본 fast-jar). fast-jar네이티브 가 모두 지정된 경우 두 개의 IntegrationKit 리소스가 생성되고 네이티브 키트가 한 번 준비된 fast-jar 보다 우선합니다. 주문은 통합을 위해 현재 키트의 해결에 영향을 미칩니다. 첫 번째 패키지 유형에 해당하는 키트는 통합과 일치하는 기존 키트가 없는 경우 통합에 할당됩니다.

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가 실행되고, 서비스 중단 없이 네이티브 빌드가 완료되면 네이티브 이미지에 대한 롤아웃 배포가 트리거됩니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.