6.2. Camel K 기능 특성


6.2.1. 상태 추적

상태 특성은 통합 컨테이너에서 상태 프로브를 구성합니다.

기본적으로 비활성화되어 있습니다.

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

6.2.1.1. 설정

특성 속성은 다음 CLI를 사용하여 통합을 실행할 때 지정됩니다.

Copy to Clipboard Toggle word wrap
$ kamel run --trait health.[key]=[value] --trait health.[key2]=[value2] integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

health.enabled

bool

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

health.liveness-probe-enabled

bool

통합 컨테이너(기본값 false)에 대한 활성 프로브를 구성합니다.

health.liveness-scheme

string

활성 프로브에 연결할 때 사용할 스키마(기본 HTTP)입니다.

health.liveness-initial-delay

int32

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

health.liveness-timeout

int32

활성 프로브가 시간 초과된 시간(초)입니다.

health.liveness-period

int32

활성 프로브를 수행하는 빈도입니다.

health.liveness-success-threshold

int32

활성 프로브가 실패한 후 성공으로 간주되는 최소 연속 성공입니다.

health.liveness-failure-threshold

int32

성공 후 활성 프로브가 실패한 것으로 간주되는 최소 연속 실패입니다.

health.readiness-probe-enabled

bool

통합 컨테이너에 대한 준비 상태 프로브(기본값 true)를 구성합니다.

health.readiness-scheme

string

준비 상태 프로브에 연결할 때 사용할 스키마(기본 HTTP)입니다.

health.readiness-initial-delay

int32

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

health.readiness-timeout

int32

준비 상태 프로브가 시간 초과된 시간(초)입니다.

health.readiness-period

int32

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

health.readiness-success-threshold

int32

실패한 후 준비 상태 프로브가 성공으로 간주되는 최소 연속 성공입니다.

health.readiness-failure-threshold

int32

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

health.startup-probe-enabled

bool

통합 컨테이너에 대한 시작 프로브(기본값 false)를 구성합니다.

health.startup-scheme

string

시작 프로브에 연결할 때 사용할 스키마(기본 HTTP)입니다.

health.startup-initial-delay

int32

시작 프로브가 시작되기 전에 컨테이너를 시작한 후의 시간(초)입니다.

health.startup-timeout

int32

시작 프로브가 시간 초과된 시간(초)입니다.

health.startup-period

int32

시작 프로브를 수행하는 빈도입니다.

health.startup-success-threshold

int32

실패한 후 시작 프로브가 성공으로 간주되는 최소 연속 성공입니다.

health.startup-failure-threshold

int32

성공 후 시작 프로브가 실패한 것으로 간주되는 최소 연속 실패입니다.

6.2.2. KnativeTrackit

Knative 특성은 Knative 리소스의 주소를 자동으로 검색하고 실행 중인 통합에 삽입합니다.

전체 Knative 구성은 CAMEL_KNATIVE_CONFIGURATION에 JSON 형식으로 삽입됩니다. 그러면 Camel Knative 구성 요소가 전체 구성을 사용하여 경로를 구성합니다.

이 특성은 Knative 프로필이 활성화되면 기본적으로 활성화됩니다.

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

6.2.2.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait knative.[key]=[value] --trait knative.[key2]=[value2] integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

knative.enabled

bool

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

knative.configuration

string

Knative 전체 구성을 JSON 형식으로 삽입하는 데 사용할 수 있습니다.

knative.channel-sources

[]string

통합 경로 소스로 사용되는 채널 목록입니다. 간단한 채널 이름 또는 전체 Camel URI를 포함할 수 있습니다.

knative.channel-sinks

[]string

통합 경로의 대상으로 사용되는 채널 목록입니다. 간단한 채널 이름 또는 전체 Camel URI를 포함할 수 있습니다.

knative.endpoint-sources

[]string

통합 경로 소스로 사용되는 채널 목록입니다.

knative.endpoint-sinks

[]string

통합 경로의 대상으로 사용되는 끝점 목록입니다. 간단한 엔드 포인트 이름 또는 전체 Camel URI를 포함할 수 있습니다.

knative.event-sources

[]string

통합할 이벤트 유형 목록입니다. "기본값"과 다른 특정 브로커를 사용하기 위해 간단한 이벤트 유형 또는 전체 Camel URI를 포함할 수 있습니다.

knative.event-sinks

[]string

통합에서 생성할 이벤트 유형 목록입니다. 간단한 이벤트 유형 또는 전체 Camel URI를 포함할 수 있습니다(특정 브로커 사용).

knative.filter-source-channels

bool

"ce-knativehistory" 헤더를 기반으로 이벤트 필터링을 활성화합니다. 이 헤더는 최신 버전의 Knative에서 제거되었으므로 기본적으로 필터링이 비활성화됩니다.

knative.sink-binding

bool

Knative SinkBinding 리소스를 통해 싱크에 통합을 바인딩할 수 있습니다. 통합이 단일 싱크를 대상으로 할 때 사용할 수 있습니다. 통합이 단일 싱크를 대상으로 할 때 기본적으로 활성화됩니다( Knative 소스가 통합한 경우를 제외하고).

knative.auto

bool

모든 특성의 자동 검색을 활성화합니다.

6.2.3. Knative 서비스 bzipit

Knative 서비스 특성을 사용하면 표준 Kubernetes Deployment 대신 Knative 서비스로 통합을 실행할 때 옵션을 구성할 수 있습니다.

Knative Services로 통합을 실행하면 자동 확장(및 축소) 기능이 추가되지만 해당 기능은 경로가 HTTP 끝점 소비자를 사용하는 경우에만 의미가 있습니다.

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

6.2.3.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait knative-service.[key]=[value] --trait knative-service.[key2]=[value2] Integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

knative-service.enabled

bool

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

knative-service.annotations

map[string]string

주석이 경로에 추가됩니다. 이는 knative 서비스 관련 주석을 설정하는 데 사용할 수 있습니다. 자세한 내용은 Route Specific Annotations 를 참조하십시오.

CLI 사용 예: -t "knative-service.annotations.'haproxy.router.openshift.io/balance'=roundrobin"

knative-service.autoscaling-class

string

Knative 자동 스케일링 클래스 속성(예: hpa.autoscaling.knative.dev 또는 kpa.autoscaling.knative.dev 자동 스케일링)을 설정합니다.

자세한 내용은 Knative 설명서를 참조하십시오.

knative-service.autoscaling-metric

string

Knative 자동 스케일링 메트릭 속성(예: 동시성 기반 또는 cpu 기반 자동 스케일링 설정)을 구성합니다.

자세한 내용은 Knative 설명서를 참조하십시오.

knative-service.autoscaling-target

int

각 Pod에 대해 허용된 동시성 수준 또는 CPU 백분율(자동화 지표에 따라 다름)을 설정합니다.

자세한 내용은 Knative 설명서를 참조하십시오.

knative-service.min-scale

int

통합을 위해 언제든지 실행해야 하는 최소 Pod 수입니다. 이는 기본적으로 0 입니다. 즉, 구성된 시간 동안 사용하지 않을 때 통합이 0으로 축소됩니다.

자세한 내용은 Knative 설명서를 참조하십시오.

knative-service.max-scale

int

통합을 위해 병렬로 실행할 수 있는 Pod 수에 대한 상한입니다. Knative에는 설치에 따라 달라지는 자체 cap 값이 있습니다.

자세한 내용은 Knative 설명서를 참조하십시오.

knative-service.auto

bool

모든 조건이 보류될 때 Knative 서비스로 통합을 자동으로 배포합니다.

  • 통합에서 Knative 프로필을 사용
  • 모든 경로는 HTTP 기반 소비자 또는 수동 소비자(예: 직접 는 수동 소비자)에서 시작됩니다.

6.2.4. logging trit

로깅 특성은 통합 런타임 로깅 옵션(예: 색상 및 형식)을 구성하는 데 사용됩니다. 로깅 백엔드는 Quarkus에서 제공하며, 해당 구성은 https://quarkus.io/guides/logging.

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

6.2.4.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait logging.[key]=[value] --trait logging.[key2]=[value2] Integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

logging.enabled

bool

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

logging.color

bool

로그 출력 색상화

logging.format

string

로그 메시지 형식

logging.level

string

로깅 수준 조정(기본값: INFO)

logging.json

bool

JSON에서 로그를 출력

logging.json-pretty-print

bool

JSON 로그의 "pretty 인쇄" 활성화

6.2.5. 마스터 트래킷

Master 특성을 사용하면 Kubernetes 리소스를 리더 선택을 위해 자동으로 활용하고 특정 인스턴스에서만 마스터 경로를 시작하도록 통합을 구성할 수 있습니다.

경로에서 마스터 끝점을 사용할 때 자동으로 활성화됩니다. 예: from("master:lockname:telegram:bots")…​.

참고

이 특성은 통합 서비스 계정에 configmaps 및 read pod를 읽고 쓸 수 있는 특수 권한을 추가합니다. 통합을 실행할 때 "default"와 다른 서비스 계정을 사용하는 것이 좋습니다.

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

6.2.5.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait master.[key]=[value] --trait master.[key2]=[value2] Integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

master.enabled

bool

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

master.auto

bool

특성의 자동 구성을 활성화합니다.

master.include-delegate-dependencies

bool

이 플래그가 활성화되면 Operator는 소스 코드를 분석하여 위임 끝점에 필요한 종속성을 추가합니다. 예를 들어 master:lockname:timer 를 사용하는 경우 camel:timer 가 종속 항목 세트에 자동으로 추가됩니다. 기본적으로 활성화되어 있습니다.

master.resource-name

string

잠금을 저장하는 데 사용할 configmap/lease 리소스의 이름입니다. 기본값은 "<integration-name>-lock"입니다.

master.resource-type

string

잠금("ConfigMap" 또는 "Lease")에 사용할 Kubernetes 리소스 유형입니다. 기본값은 "리스"입니다.

master.label-key

string

잠금을 유지하는 모든 Pod를 식별하는 데 사용할 레이블입니다. 기본값은 "camel.apache.org/integration"입니다.

master.label-value

string

잠금을 유지하는 모든 Pod를 식별하는 데 사용할 라벨 값입니다. 기본값은 통합 이름입니다.

6.2.6. Mount Tait

마운트 특성을 사용하여 Integration Pod에 마운트된 볼륨을 구성할 수 있습니다.

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

참고

마운트 특성은 플랫폼 특성 이며 사용자가 비활성화할 수 없습니다.

6.2.6.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait mount.[key]=[value] --trait mount.[key2]=[value2] integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

mount.enabled

bool

deprecated: 더 이상 사용되지 않습니다.

mount.configs

[]string

configmap/secret을 가리키는 구성 목록입니다. 설정은 런타임 Camel Context에서 처리하고 속성 파일로 구문 분석하려고 하므로 UTF-8 리소스여야 합니다. 또한 경로에서 직접 사용을 완화하기 위해 classpath에서 사용할 수 있습니다.

mount.resources

[]string

configmap/secret을 가리키는 리소스(텍스트 또는 바이너리 콘텐츠) 목록입니다. 리소스는 모든 리소스 유형(텍스트 또는 바이너리 콘텐츠)이어야 합니다. 대상 경로는 기본 위치 또는 사용자가 지정한 모든 경로일 수 있습니다.

mount.volumes

[]string

마운트할 영구 볼륨 클레임 목록입니다. 구문:

mount.hot-reload

bool

시크릿/configmap이 편집되면 "hot reload"를 활성화합니다(기본값 false)

참고
  1. mount.configs 속성의 구문은 Syntax: [configmap | secret]:name[/key] 입니다. 여기서 name은 선택적으로 필터링할 리소스 이름과 키를 나타냅니다.
  2. mount.resources 속성의 구문은 Syntax: [configmap | secret]:name[/key] [@path] 입니다. 여기서 name은 리소스 이름을 나타내며 선택적으로 키는 필터링할 리소스 키를 나타내며 경로는 대상 경로를 나타냅니다.

6.2.7. Telemetry trit

중요

기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다.

이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview 을 참조하십시오.

Telemetry 특성은 추적 정보를 OTLP 호환 컬렉터에 자동으로 게시하는 데 사용할 수 있습니다.

특성은 네임스페이스에서 사용 가능한 Telemetry OTLP 엔드포인트를 자동으로 검색할 수 있습니다(버전 1.35 이상에서 Jaerger 지원).

Telemetry 특성은 기본적으로 비활성화되어 있습니다.

주의

Telemetry 특성은 추적 특성과 동시에 활성화할 수 없습니다.

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

6.2.7.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait telemetry.[key]=[value] --trait telemetry.[key2]=[value2] integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

telemetry.enabled

bool

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

telemetry.auto

bool

Telemetry 엔드포인트의 자동 검색을 포함하여 특성의 자동 구성을 활성화합니다.

telemetry.service-name

string

Telemetry 데이터를 게시하는 서비스의 이름(기본값: 통합 이름)

telemetry.endpoint

string

Telemetry 서비스의 대상 끝점(기본적으로 자동으로 검색됨)

telemetry.sampler

string

추적에 사용되는 Telemetry 샘플러(기본 "on")

telemetry.sampler-ratio

string

추적에 사용되는 Telemetry의 샘플러 비율

telemetry.sampler-parent-based

bool

추적에 사용되는 Telemetry의 샘플러는 상위 기반(기본값 "true")입니다.

6.2.7.2. 예

  • 검색을 통해 배포된 OTLP API Jaeger에 대한 추적을 활성화하려면 다음을 수행합니다.

    Copy to Clipboard Toggle word wrap
    $ kamel run -t telemetry.enable=true ...
  • 배포된 특정 OTLP gRPC를 정의하려면 다음을 수행합니다.

    Copy to Clipboard Toggle word wrap
    $ kamel run -t telemetry.enable=true -t telemetry.endpoint=http://instance-collector:4317 ...
  • 다른 샘플러 서비스 이름을 정의하려면 다음을 수행합니다.

    Copy to Clipboard Toggle word wrap
    $ kamel run -t telemetry.enable=true -t telemetry.service-name=tracer_myintegration ...
  • 샘플링 비율로 1,000개마다 비율 샘플러를 사용하려면 다음을 수행합니다.

    Copy to Clipboard Toggle word wrap
    $ kamel run -t telemetry.enable=true -t telemetry.sampler=ratio -t telemetry.sampler-ratio=0.001 ...

6.2.8. Pod featureit

포드 특성을 사용하면 통합 pod를 사용자 지정할 수 있습니다. 전략적 병합 패치를 사용하여 Integration .spec.podTemplate 필드에 포함된 PodSpecTemplate 구조를 Integration 배포 Pod 템플릿에 적용합니다.

통합 컨테이너 이름을 사용하여 Camel 경로가 실행되는 컨테이너를 사용자 지정하는 데 사용됩니다.

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

참고: 현재 구현에서 템플릿 옵션은 CLI를 사용하여 정의된 구성 옵션을 재정의합니다. 예를 들면 다음과 같습니다.

Copy to Clipboard Toggle word wrap
$ kamel run Integration.java --pod-template template.yaml --env TEST_VARIABLE=will_be_overriden --env ANOTHER_VARIABLE=Im_There

템플릿의 값은 Cryostat _VARIABLE 환경 변수를 덮어쓰는 반면 ANOTHER_VARIABLE 은 변경되지 않습니다.

참고 2: 통합 컨테이너 진입점에 대한 변경 사항은 현재 특성 실행 순서에 따라 적용되지 않습니다.

6.2.8.1. 설정

특성 속성은 CLI를 사용하여 통합을 실행할 때 지정됩니다.

Copy to Clipboard Toggle word wrap
$ kamel run --trait pod.[key]=[value] integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

pod.enabled

bool

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

6.2.8.2. 사이드카 컨테이너

다음 Integration을 사용하여 디렉터리에서 파일을 읽습니다.

integration.groovy

Copy to Clipboard Toggle word wrap
from('file:///var/log')
 .convertBodyTo(String.class)
 .setBody().simple('${body}:  {{TEST_VARIABLE}} ')
 .log('${body}')

또한 다음 Pod 템플릿은 Integration Pod에 사이드카 컨테이너를 추가하고 일부 데이터를 디렉터리에 생성하여 통합 컨테이너에 마운트합니다.

template.yaml

Copy to Clipboard Toggle word wrap
containers:
  - name: integration
    env:
      - name: TEST_VARIABLE
        value: "hello from the template"
    volumeMounts:
      - name: var-logs
        mountPath: /var/log
  - name: sidecar
    image: busybox
    command: [ "/bin/sh" , "-c", "while true; do echo $(date -u) 'Content from the sidecar container' > /var/log/file.txt; sleep 1;done" ]
    volumeMounts:
      - name: var-logs
        mountPath: /var/log
volumes:
  - name: var-logs
    emptyDir: { }

Integration 경로는 사이드카 컨테이너에서 생성한 파일의 내용을 기록합니다. 예제:

Copy to Clipboard Toggle word wrap
$ kamel run Integration.java --pod-template template.yaml
...
Condition "Ready" is "True" for Integration integration
[1] 2021-04-30 07:40:03,136 INFO  [route1] (Camel (camel-1) thread #0 - file:///var/log) Fri Apr 30 07:40:02 UTC 2021 Content from the sidecar container
[1] :  hello from the template
[1] 2021-04-30 07:40:04,140 INFO  [route1] (Camel (camel-1) thread #0 - file:///var/log) Fri Apr 30 07:40:03 UTC 2021 Content from the sidecar container
[1] :  hello from the template
[1] 2021-04-30 07:40:05,142 INFO  [route1] (Camel (camel-1) thread #0 - file:///var/log) Fri Apr 30 07:40:04 UTC 2021 Content from the sidecar container
[1] :  hello from the template

6.2.8.3. Init 컨테이너

이 특성을 사용하면 initContainers를 실행할 수 있습니다. initContainers를 실행하려면 다음을 수행해야 합니다.

  • 템플릿 사양에 하나 이상의 컨테이너를 포함합니다.
  • 통합인 기본 컨테이너의 구성을 제공합니다.

다음은 간단한 예입니다.

template.yaml

Copy to Clipboard Toggle word wrap
containers:
  - name: integration
initContainers:
  - name: init
    image: busybox
    command: [ "/bin/sh" , "-c", "echo 'hello'!" ]

통합 컨테이너는 경로를 실행하는 컨테이너에서 덮어쓰고 initContainer는 경로보다 예상대로 실행됩니다.

6.2.9. Prometheus trilit

Prometheus 특성은 Prometheus 호환 엔드포인트를 구성합니다. Prometheus Operator를 사용할 때 끝점을 자동으로 스크랩할 수 있도록 PodMonitor 리소스도 생성합니다.

메트릭은 MicroProfile Metrics를 사용하여 노출됩니다.

주의

PodMonitor 리소스를 생성하려면 Prometheus Operator 사용자 정의 리소스 정의가 설치되어 있어야 합니다. Prometheus Operator 없이 Prometheus 특성이 작동하려면 pod-monitorfalse 로 설정할 수 있습니다.

Prometheus 특성은 기본적으로 비활성화되어 있습니다.

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

6.2.9.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait prometheus.[key]=[value] --trait prometheus.[key2]=[value2] Integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

prometheus.enabled

bool

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

prometheus.pod-monitor

bool

PodMonitor 리소스가 생성되었는지 여부(기본값 true).

prometheus.pod-monitor-labels

[]string

pod-monitortrue 인 경우 적용되는 PodMonitor 리소스 레이블입니다.

6.2.10. PDB traditionalit

PDB 특성을 사용하면 Integration Pod에 대한 PodDisruptionBudget 리소스를 구성할 수 있습니다.

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

6.2.10.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait pdb.[key]=[value] --trait pdb.[key2]=[value2] Integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

pdb.enabled

bool

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

pdb.min-available

string

제거 후에도 계속 사용할 수 있어야 하는 통합의 Pod 수입니다. 절대 숫자 또는 백분율일 수 있습니다. min-availablemax-unavailable 중 하나만 지정할 수 있습니다.

pdb.max-unavailable

string

제거 후 사용할 수 없는 통합의 Pod 수입니다. 절대 번호 또는 백분율일 수 있습니다( min-available 도 설정되지 않은 경우 기본값 1). max-unavailablemin-available 중 하나만 지정할 수 있습니다.

6.2.11. 풀 시크릿 추적

Pull Secret 특성은 Kubernetes가 외부 레지스트리에서 컨테이너 이미지를 검색할 수 있도록 Pod에 풀 시크릿을 설정합니다.

가져오기 보안은 수동으로 지정하거나 IntegrationPlatform 에서 외부 컨테이너 레지스트리에 대한 인증을 구성한 경우 이미지를 가져오는 데 동일한 보안을 사용할 수 있습니다.

외부 컨테이너 레지스트리에 대한 인증을 구성할 때마다 기본적으로 활성화되므로 외부 레지스트리가 비공개라고 가정합니다.

레지스트리가 이미지 가져오기에 대한 인증이 필요하지 않은 경우 이 특성을 비활성화할 수 있습니다.

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

6.2.11.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait pull-secret.[key]=[value] --trait pull-secret.[key2]=[value2] Integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

pull-secret.enabled

bool

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

pull-secret.secret-name

string

Pod에 설정할 풀 시크릿 이름입니다. 비어 있는 경우 IntegrationPlatform 레지스트리 구성에서 자동으로 가져옵니다.

pull-secret.image-puller-delegation

bool

공유 플랫폼과 함께 글로벌 Operator를 사용하는 경우 운영자 네임스페이스에서 system:image-puller 클러스터 역할을 통합 서비스 계정에 위임할 수 있습니다.

pull-secret.auto

bool

kubernetes.io/dockerconfigjson 유형의 경우 Pod에서 플랫폼 레지스트리 시크릿을 자동으로 구성합니다.

6.2.12. 라우팅 중추적

경로 특성을 사용하여 통합을 위한 OpenShift 경로 생성을 구성할 수 있습니다.

인증서 및 키 콘텐츠는 로컬 파일 시스템 또는 Openshift 시크릿 오브젝트에서 소싱될 수 있습니다. 사용자는 -secret 으로 끝나는 매개변수(예: tls-certificate- secret )를 사용하여 보안에 저장된 인증서를 참조할 수 있습니다. 시크릿으로 끝나는 매개변수는 더 높은 우선순위가 있으며 동일한 경로 매개변수가 설정된 경우 (예: tls-key -secret tls-key ) 다음 tls-key-secret 이 사용됩니다. 키와 인증서를 설정하는 권장 방법은 시크릿을 사용하여 콘텐츠를 저장하고 다음 매개변수를 사용하여 참조하는 것입니다. tls-certificate-secret,tls-key-secret,tls-ca-certificate-secret,tls-destination-ca-certificate-secret 은 이 페이지 끝에 있는 예제 섹션을 확인하여 설정 옵션을 확인하는 것입니다.

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

6.2.12.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait route.[key]=[value] --trait route.[key2]=[value2] integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

route.enabled

bool

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

route.annotations

map[string]string

주석이 경로에 추가됩니다. 이는 경로 특정 주석을 설정하는 데 사용할 수 있습니다. 주석 옵션은 경로별 주석 을 참조하십시오. CLI 사용 예: -t "route.annotations.'haproxy.router.openshift.io/balance'=roundrobin

route.host

string

경로에서 노출된 호스트를 구성하려면 다음을 수행합니다.

route.tls-termination

string

엣지,passthrough 또는 재암호화 와 같은 TLS 종료 유형입니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-certificate

string

TLS 인증서 콘텐츠입니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-certificate-secret

string

TLS 인증서에 대한 시크릿 이름 및 키 참조입니다. 형식은 "secret-name[/key-name]"이고, 값은 시크릿 이름을 나타냅니다. 시크릿에 키가 하나만 있으면 읽을 수 있습니다. 그렇지 않으면 "/"로 구분된 키 이름을 설정할 수 있습니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-key

string

TLS 인증서 키 콘텐츠입니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-key-secret

string

TLS 인증서 키에 대한 시크릿 이름 및 키 참조입니다. 형식은 "secret-name[/key-name]"이고, 값은 시크릿 이름을 나타냅니다. 시크릿에 키가 하나만 있으면 읽을 수 있습니다. 그렇지 않으면 "/"로 구분된 키 이름을 설정할 수 있습니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-ca-certificate

string

TLS CA 인증서 콘텐츠입니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-ca-certificate-secret

string

TLS CA 인증서에 대한 시크릿 이름 및 키 참조입니다. 형식은 "secret-name[/key-name]"이고, 값은 시크릿 이름을 나타냅니다. 시크릿에 키가 하나만 있으면 읽을 수 있습니다. 그렇지 않으면 "/"로 구분된 키 이름을 설정할 수 있습니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-destination-ca-certificate

string

대상 CA 인증서는 최종 대상의 ca 인증서 내용을 제공합니다. 재암호화 종료를 사용하는 경우 라우터에서 보안 연결의 상태 점검을 위해 이 파일을 제공해야 합니다. 이 필드를 지정하지 않으면 라우터에서 자체 대상 CA를 제공하고 짧은 서비스 이름(service.namespace.svc)을 사용하여 호스트 이름 검증을 수행할 수 있으므로 인프라 생성 인증서가 자동으로 확인할 수 있습니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-destination-ca-certificate-secret

string

대상 CA 인증서에 대한 시크릿 이름 및 키 참조입니다. 형식은 "secret-name[/key-name]"이고, 값은 시크릿 이름을 나타냅니다. 시크릿에 키가 하나만 있으면 읽을 수 있습니다. 그렇지 않으면 "/"로 구분된 키 이름을 설정할 수 있습니다.

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

route.tls-insecure-edge-termination-policy

string

안전하지 않은 트래픽을 처리하는 방법을 구성하려면(예: 허용, 트래픽비활성화 또는 리디렉션 ).

자세한 내용은 OpenShift 경로 설명서를 참조하십시오.

6.2.12.2. 예

이 예제에서는 시크릿을 사용하여 통합에서 참조할 인증서와 키를 저장합니다. 경로에 대한 자세한 내용은 Openshift 경로 문서를 읽습니다. PlatformHttpServer.java 는 통합 예입니다.

이러한 예제를 실행해야 하는 경우 키와 인증서가 있는 시크릿 이 있어야 합니다.

6.2.12.2.1. 자체 서명된 인증서를 생성하고 보안을 생성
Copy to Clipboard Toggle word wrap
openssl genrsa -out tls.key
openssl req -new -key tls.key -out csr.csr -subj "/CN=my-server.com"
openssl x509 -req -in csr.csr -signkey tls.key -out tls.crt
oc create secret tls my-combined-certs --key=tls.key  --cert=tls.crt
6.2.12.2.2. 경로에 HTTP 요청 만들기

모든 예제의 경우 다음 curl 명령을 사용하여 HTTP 요청을 수행할 수 있습니다. 인라인 스크립트를 사용하여 openshift 네임스페이스 및 클러스터 기본 도메인을 검색합니다. 이러한 인라인 스크립트를 지원하지 않는 쉘을 사용하는 경우 인라인 스크립트를 실제 네임스페이스 및 기본 도메인의 값으로 교체해야 합니다.

Copy to Clipboard Toggle word wrap
curl -k https://platform-http-server-`oc config view --minify -o 'jsonpath={..namespace}'`.`oc get dnses/cluster -ojsonpath='{.spec.baseDomain}'`/hello?name=Camel-K
  • 보안을 사용하여 에지 경로를 추가하려면 -secret 으로 끝나는 매개변수를 사용하여 인증서가 포함된 보안 이름을 설정합니다. 이 경로 예제 특성은 tls.keytls.crt 라는 두 개의 키가 포함된 my-combined-certs 라는 시크릿을 참조합니다.

    Copy to Clipboard Toggle word wrap
    kamel run --dev PlatformHttpServer.java -t route.tls-termination=edge -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key
  • 시크릿을 사용하여 패스스루 경로를 추가하기 위해 TLS는 통합 Pod에 TLS가 설정되고, 키와 인증서는 실행 중인 통합 Pod에 표시되어야 합니다. 이를 위해 --resource kamel 매개변수를 사용하여 통합 Pod에서 시크릿을 마운트한 다음, 실행 중인 Pod에서 이러한 인증서 파일을 참조하기 위해 일부 camel quarkus 매개변수를 사용하여 -p quarkus.http.ssl 로 시작합니다. 이 경로 예제 특성은 tls.keytls.crt 라는 두 개의 키가 포함된 my-combined-certs 라는 시크릿을 참조합니다.

    Copy to Clipboard Toggle word wrap
    kamel run --dev PlatformHttpServer.java --resource secret:my-combined-certs@/etc/ssl/my-combined-certs -p quarkus.http.ssl.certificate.file=/etc/ssl/my-combined-certs/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/my-combined-certs/tls.key -t route.tls-termination=passthrough -t container.port=8443
  • 시크릿을 사용하여 재암호화 경로를 추가하기 위해 TLS는 통합 포드에 설정되고, 키와 인증서는 실행 중인 통합 포드에 표시되어야 합니다. 이를 위해 --resource kamel 매개변수를 사용하여 통합 Pod에서 시크릿을 마운트한 다음, 실행 중인 Pod에서 이러한 인증서 파일을 참조하기 위해 일부 camel quarkus 매개변수를 사용하여 -p quarkus.http.ssl 로 시작합니다. 이 경로 예제 특성은 tls.keytls.crt 라는 두 개의 키가 포함된 my-combined-certs 라는 시크릿을 참조합니다.

    Copy to Clipboard Toggle word wrap
    kamel run --dev PlatformHttpServer.java --resource secret:my-combined-certs@/etc/ssl/my-combined-certs  -p quarkus.http.ssl.certificate.file=/etc/ssl/my-combined-certs/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/my-combined-certs/tls.key -t route.tls-termination=reencrypt -t route.tls-destination-ca-certificate-secret=my-combined-certs/tls.crt -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key -t container.port=8443
  • 경로 및 통합 끝점에 대한 Openshift 서비스 제공 인증서의 보안에서 특정 인증서를 사용하여 재암호화 경로를 추가하려면 다음을 수행합니다. 이렇게 하면 Openshift 서비스 제공 인증서가 통합 Pod에서만 설정됩니다. 키 및 인증서는 실행 중인 통합 포드에 표시되어야 합니다. 이를 위해 --resource kamel 매개변수를 사용하여 통합 Pod에 보안을 마운트한 다음 일부 camel quarkus 매개변수를 사용하여 실행 중인 Pod에서 이러한 인증서 파일을 참조합니다. 이 매개변수는 -p quarkus.ssl.certificate 로 시작합니다. 이 경로 예제 특성은 tls.keytls.crt 라는 두 개의 키가 포함된 my-combined-certs 라는 시크릿을 참조합니다.

    Copy to Clipboard Toggle word wrap
    kamel run --dev PlatformHttpServer.java --resource secret:cert-from-openshift@/etc/ssl/cert-from-openshift  -p quarkus.http.ssl.certificate.file=/etc/ssl/cert-from-openshift/tls.crt -p quarkus.http.ssl.certificate.key-file=/etc/ssl/cert-from-openshift/tls.key -t route.tls-termination=reencrypt -t route.tls-certificate-secret=my-combined-certs/tls.crt -t route.tls-key-secret=my-combined-certs/tls.key -t container.port=8443

    그런 다음 Openshift 서비스 제공 인증서를 삽입하려면 통합 서비스에 주석을 달아야 합니다.

    Copy to Clipboard Toggle word wrap
    oc annotate service platform-http-server service.beta.openshift.io/serving-cert-secret-name=cert-from-openshift
  • 인증서와 로컬 파일 시스템에서 제공되는 개인 키를 사용하여 에지 경로를 추가하려면 다음을 수행합니다. 이 예제에서는 인라인 스크립트를 사용하여 인증서 및 개인 키 파일 내용을 읽은 다음 모든 새 줄 문자를 제거합니다(이는 인증서를 매개 변수 값으로 설정하는 데 필요합니다) 값이 한 줄에 있습니다.

    Copy to Clipboard Toggle word wrap
    kamel run PlatformHttpServer.java --dev -t route.tls-termination=edge -t route.tls-certificate="$(cat tls.crt|awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')" -t route.tls-key="$(cat tls.key|awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}')"

6.2.13. Service traditionalit

서비스 특성은 동일한 네임스페이스의 다른 애플리케이션(또는 통합)에서 액세스할 수 있도록 Service 리소스와의 통합을 노출합니다.

통합이 HTTP 끝점을 노출할 수 있는 Camel 구성 요소에 따라 달라지는 경우 기본적으로 활성화되어 있습니다.

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

6.2.13.1. 설정

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

Copy to Clipboard Toggle word wrap
$ kamel run --trait service.[key]=[value] --trait service.[key2]=[value2] Integration.java

다음 구성 옵션을 사용할 수 있습니다.

속성유형설명

service.enabled

bool

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

service.auto

bool

서비스를 생성해야 하는 경우 코드에서 자동으로 감지하려면 다음을 수행합니다.

service.node-port

bool

서비스를 NodePort(기본 false)로 노출할 수 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat, Inc.