4.2. 스키마 속성


4.2.1. Kafka 스키마 참조

Expand
속성설명

spec

Kafka 및 ZooKeeper 클러스터 및 Topic Operator의 사양입니다.

KafkaSpec

status

Kafka 및 ZooKeeper 클러스터의 상태 및 Topic Operator.

KafkaStatus

4.2.2. KafkaSpec 스키마 참조

사용 대상: Kafka

Expand
속성설명

kafka

Kafka 클러스터 구성.

KafkaClusterSpec

zookeeper

ZooKeeper 클러스터 구성.

ZookeeperClusterSpec

entityOperator

Entity Operator 구성.

EntityOperatorSpec

clusterCa

클러스터 인증 기관 구성.

CertificateAuthority

clientsCa

클라이언트 인증 기관 구성.

CertificateAuthority

cruiseControl

Cruise Control Deployment 구성. 지정된 경우 Cruise Control 인스턴스를 배포합니다.

CruiseControlSpec

jmxTrans

jmxTrans 속성이 더 이상 사용되지 않습니다. AMQTrans는 더 이상 사용되지 않으며 AMQ Streams 2.5에서 제거된 관련 리소스입니다. AMQ Streams 2.5부터 10.0.0.1Trans는 더 이상 지원되지 않으며 이 옵션은 무시됩니다.

JmxTransSpec

kafkaExporter

Kafka 내보내기 구성. Kafka Exporter는 추가 메트릭을 제공할 수 있습니다(예: topic/partition에서 소비자 그룹 지연).

KafkaExporterSpec

maintenanceTimeWindows

유지 관리 작업(즉 인증서 갱신)의 시간 창 목록입니다. 각 시간 창은 cron 표현식에 의해 정의됩니다.

문자열 배열

4.2.3. KafkaClusterSpec schema reference

사용 대상: KafkaSpec

KafkaClusterSpec 스키마 속성의 전체 목록

Kafka 클러스터를 구성합니다.

4.2.3.1. 리스너

listeners 속성을 사용하여 Kafka 브로커에 대한 액세스를 제공하도록 리스너를 구성합니다.

인증 없이 일반(암호화되지 않음) 리스너 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  kafka:
    # ...
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
    # ...
  zookeeper:
    # ...

4.2.3.2. config

config 속성을 사용하여 Kafka 브로커 옵션을 키로 구성합니다.

값은 다음 JSON 유형 중 하나일 수 있습니다.

  • 문자열
  • 숫자
  • 부울

예외

Apache Kafka 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다.

그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.

  • 보안(암호화, 인증 및 권한 부여)
  • 리스너 구성
  • 브로커 ID 구성
  • 로그 데이터 디렉터리 구성
  • inter-broker 통신
  • zookeeper 연결

다음 접두사가 있는 속성은 설정할 수 없습니다.

  • advertised.
  • 작성자입니다.
  • 브로커.
  • 컨트롤러
  • cruise.control.metrics.reporter.bootstrap.
  • cruise.control.metrics.topic
  • host.name
  • inter.broker.listener.name
  • 리스너.
  • 리스너.
  • log.dir
  • 암호.
  • port
  • process.roles
  • sasl.
  • 보안.
  • servers,node.id
  • ssl.
  • super.user
  • zookeeper.clientCnxnSocket
  • zookeeper.connect
  • zookeeper.set.acl
  • zookeeper.ssl

config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음 예외를 포함하여 Kafka로 전달됩니다.

  • 지원되는 TLS 버전 및 암호화 제품군에대한 모든 ssl 구성
  • ZooKeeper 연결을 설정하는 데 허용되는 최대 시간을 설정하기 위한 zookeeper.connection.timeout.ms 속성 구성
  • 크루즈 메트릭 속성을 제어할 수 있습니다.

    • cruise.control.metrics.topic.num.partitions
    • cruise.control.metrics.topic.replication.factor
    • cruise.control.metrics.topic.retention.ms
    • cruise.control.metrics.topic.auto.create.retries
    • cruise.control.metrics.topic.auto.create.timeout.ms
    • cruise.control.metrics.topic.min.insync.replicas
  • 컨트롤러 속성:

    • controller.quorum.election.backoff.max.ms
    • controller.quorum.election.timeout.ms
    • controller.quorum.fetch.timeout.ms

Kafka 브로커 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    config:
      num.partitions: 1
      num.recovery.threads.per.data.dir: 1
      default.replication.factor: 3
      offsets.topic.replication.factor: 3
      transaction.state.log.replication.factor: 3
      transaction.state.log.min.isr: 1
      log.retention.hours: 168
      log.segment.bytes: 1073741824
      log.retention.check.interval.ms: 300000
      num.network.threads: 3
      num.io.threads: 8
      socket.send.buffer.bytes: 102400
      socket.receive.buffer.bytes: 102400
      socket.request.max.bytes: 104857600
      group.initial.rebalance.delay.ms: 0
      zookeeper.connection.timeout.ms: 6000
    # ...

4.2.3.3. brokerRackInitImage

랙 인식이 활성화되면 Kafka 브로커 Pod는 init 컨테이너를 사용하여 OpenShift 클러스터 노드에서 라벨을 수집합니다. 이 컨테이너에 사용되는 컨테이너 이미지는 brokerRackInitImage 속성을 사용하여 구성할 수 있습니다. brokerRackInitImage 필드가 없는 경우 다음 이미지가 우선순위 순으로 사용됩니다.

  1. Cluster Operator 설정의 STRIMZI_DEFAULT_KAFKA_INIT_IMAGE 환경 변수에 지정된 컨테이너 이미지입니다.
  2. registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0 container image.

brokerRackInitImage 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    brokerRackInitImage: my-org/my-image:latest
    # ...

참고

컨테이너 이미지를 덮어쓰는 것은 다른 컨테이너 레지스트리를 사용해야 하는 특별한 경우에만 권장됩니다. 예를 들어 네트워크에서 AMQ Streams에서 사용하는 컨테이너 레지스트리에 대한 액세스를 허용하지 않기 때문입니다. 이 경우 AMQ Streams 이미지를 복사하거나 소스에서 빌드해야 합니다. 구성된 이미지가 AMQ Streams 이미지와 호환되지 않으면 제대로 작동하지 않을 수 있습니다.

4.2.3.4. logging

Kafka에는 다음과 같은 구성 가능한 로거가 있습니다.

  • log4j.logger.org.I0Itec.zkclient.ZkClient
  • log4j.logger.org.apache.zookeeper
  • log4j.logger.kafka
  • log4j.logger.org.apache.kafka
  • log4j.logger.kafka.request.logger
  • log4j.logger.kafka.network.Processor
  • log4j.logger.kafka.server.KafkaApis
  • log4j.logger.kafka.network.RequestChannel$
  • log4j.logger.kafka.controller
  • log4j.logger.kafka.log.LogCleaner
  • log4j.logger.state.change.logger
  • log4j.logger.kafka.authorizer.logger

Kafka는 Apache log4j 로거 구현을 사용합니다.

로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.

로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.namelogging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.

여기서는 인라인외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.

인라인 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  kafka:
    # ...
    logging:
      type: inline
      loggers:
        kafka.root.logger.level: INFO
        log4j.logger.kafka.coordinator.transaction: TRACE
        log4j.logger.kafka.log.LogCleanerManager: DEBUG
        log4j.logger.kafka.request.logger: DEBUG
        log4j.logger.io.strimzi.kafka.oauth: DEBUG
        log4j.logger.org.openpolicyagents.kafka.OpaAuthorizer: DEBUG
  # ...

참고

로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: kafka-log4j.properties
  # ...

구성되지 않은 모든 로거는 수준이 OFF 로 설정되어 있습니다.

Cluster Operator를 사용하여 Kafka를 배포한 경우 Kafka 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.

외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.

garbage collector(GC)

가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.

4.2.3.5. KafkaClusterSpec 스키마 속성

Expand
속성설명

버전

kafka 브로커 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다.

string

replicas

클러스터의 Pod 수입니다.

integer

image

포드의 Docker 이미지입니다. 기본값은 구성된 Kafka.spec.kafka.version 에 따라 다릅니다.

string

리스너

Kafka 브로커의 리스너를 구성합니다.

GenericKafkaListener 배열

config

리스너, broker., listener., host.name, port, inter.broker.listener.name, sasl., ssl., password., log.dir, zookeeper.connect, zookeeper.set.acl, zookeeper.set.acl, zookeeper.ssl, zookeeper.set.acl, zookeeper.ssl, zookeeper.clientCnxnnSoct, host.name, port, inter.broker.listener.name, sasl. authorizer., super.user, cruise.control.metrics.topic, cruise.control.metrics.reporter.bootstrap.servers,node.id, process.roles, controller. (예: zookeeper.connection.timeout.ms, sasl.server.receive.size,ssl.cipher.suites, SSL.protocol, ssl.enabled.protocols, ssl.secure.random.implementation,cruise.control.metrics.topic.num.partitions, cruise.control.metrics.metrics.topic.replication.factor, cruise.metrics.topic.retention.ms,cruise.control.metrics.create.create.retries, cruise.control.metrics.topic.auto.timeout.ms,cruise.control.metrics.topic.min.insync.replicas,controller.quorum.backoff.election.max.ms, controller.quorum.election.timeout.ms, controller.quorum.timeout.timeout.ms.

map

storage

스토리지 구성(디스크). CamelCase로 유형은 지정된 오브젝트 내의 storage.type 속성 값에 따라 달라지며, 이는 [ephemeral, persistent-claim, jbod] 중 하나여야 합니다.

EphemeralStorage, PersistentClaimStorage, JbodStorage

권한 부여

Kafka 브로커에 대한 권한 부여 구성 유형은 지정된 오브젝트 내의 authorization.type 속성 값에 따라 달라집니다. 이 값은 [simple, opa, keycloak, custom] 중 하나여야 합니다.

KafkaAuthorizationSimple, KafkaAuthorizationOpa, KafkaAuthorizationKeycloak, KafkaAuthorizationCustom

Rack

broker.rack 브로커 구성

Rack

brokerRackInitImage

broker.rack 을 초기화하는 데 사용되는 init 컨테이너의 이미지 .

string

livenessProbe

Pod 활성 검사입니다.

probe

readinessProbe

Pod 준비 상태 확인

probe

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

jmxOptions

Kafka 브로커를 위한 Options입니다.

KafkaJmxOptions

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

metricsConfig

지표 구성. 유형은 지정된 오브젝트 내의 metricsConfig.type 속성 값에 따라 달라지며, 이는 [jmxPrometheusExporter] 중 하나여야 합니다.

JmxPrometheusExporterMetrics

logging

Kafka의 로깅 구성입니다. 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

template

Kafka 클러스터 리소스에 대한 템플릿입니다. 템플릿을 사용하면 OpenShift 리소스 생성 방법을 지정할 수 있습니다.

KafkaClusterTemplate

4.2.4. GenericKafkaListener 스키마 참조

사용 대상: KafkaClusterSpec

GenericKafkaListener 스키마 속성의 전체 목록

OpenShift 내부 및 외부의 Kafka 브로커에 연결하도록 리스너를 구성합니다.

Kafka 리소스에서 리스너를 구성합니다.

리스너 구성을 표시하는 Kafka 리소스의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    #...
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
      - name: external1
        port: 9094
        type: route
        tls: true
      - name: external2
        port: 9095
        type: ingress
        tls: true
        authentication:
          type: tls
        configuration:
          bootstrap:
            host: bootstrap.myingress.com
          brokers:
          - broker: 0
            host: broker-0.myingress.com
          - broker: 1
            host: broker-1.myingress.com
          - broker: 2
            host: broker-2.myingress.com
    #...

4.2.4.1. 리스너

Kafka 리소스의 listeners 속성을 사용하여 Kafka 브로커 리스너를 구성합니다. 리스너는 배열로 정의됩니다.

리스너 구성 예

listeners:
  - name: plain
    port: 9092
    type: internal
    tls: false

이름 및 포트는 Kafka 클러스터 내에서 고유해야 합니다. 이름은 소문자와 숫자로 구성된 최대 25자까지 지정할 수 있습니다. 허용되는 포트 번호는 9092이고 포트 9404 및 9999를 제외하고 이미 Prometheus 및 10.0.0.1에 사용됩니다.

각 리스너에 고유한 이름과 포트를 지정하면 여러 리스너를 구성할 수 있습니다.

4.2.4.2. type

유형은 내부, 또는 외부 리스너의 경우 경로, 로드 밸런서,노드 포트,ingress 또는 cluster-ip 로 설정됩니다. 사용자 정의 액세스 메커니즘을 빌드하는 데 사용할 수 있는 내부 리스너 유형인 cluster-ip 리스너를 구성할 수도 있습니다.

internal

tls 속성을 사용하여 암호화 여부에 관계없이 내부 리스너를 구성할 수 있습니다.

내부 리스너 구성 예

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
    #...

Route

OpenShift 경로 및 HAProxy 라우터를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.

전용 경로 는 모든 Kafka 브로커 Pod에 대해 생성됩니다. Kafka 부트스트랩 주소로 사용되는 추가 경로가 생성됩니다. Kafka 클라이언트는 이러한 경로 를 사용하여 포트 443에서 Kafka에 연결할 수 있습니다. 클라이언트는 기본 라우터 포트인 포트 443에 연결하지만 트래픽은 구성한 포트로 라우팅됩니다. 이 예에서는 9094 입니다.

경로 리스너 구성 예

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external1
        port: 9094
        type: route
        tls: true
    #...

Ingress

Kubernetes 인그레스 및 Kubernetes용 Ingress NGINX 컨트롤러를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.

모든 Kafka 브로커 Pod에 대해 전용 Ingress 리소스가 생성됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가 Ingress 리소스가 생성됩니다. Kafka 클라이언트는 이러한 Ingress 리소스를 사용하여 포트 443에서 Kafka에 연결할 수 있습니다. 클라이언트는 기본 컨트롤러 포트인 포트 443에 연결하지만 트래픽은 다음 예에서 구성된 포트로 라우팅됩니다.

GenericKafkaListenerConfigurationBootstrapGenericKafkaListenerConfigurationBroker 속성을 사용하여 부트 스트랩 및 각 브로커 서비스에서 사용하는 호스트 이름을 지정해야 합니다.

수신 리스너 구성 예

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external2
        port: 9095
        type: ingress
        tls: true
        authentication:
          type: tls
        configuration:
          bootstrap:
            host: bootstrap.myingress.com
          brokers:
          - broker: 0
            host: broker-0.myingress.com
          - broker: 1
            host: broker-1.myingress.com
          - broker: 2
            host: broker-2.myingress.com
  #...

참고

Ingress 를 사용하는 외부 리스너는 현재 Kubernetes용 Ingress NGINX Controller 에서만 테스트됩니다.

loadbalancer

Loadbalancer 유형 Service 를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.

모든 Kafka 브로커 Pod에 대해 새 로드 밸런서 서비스가 생성됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가 로드 밸런서가 생성됩니다. 로드 밸런서는 다음 예에서 지정된 포트 번호, 즉 포트 9094 를 수신 대기합니다.

loadBalancerSourceRanges 속성을 사용하여 소스 범위를 구성하여 지정된 IP 주소에 대한 액세스를 제한할 수 있습니다.

로드 밸런서 리스너 구성 예

#...
spec:
  kafka:
    #...
    listeners:
      - name: external3
        port: 9094
        type: loadbalancer
        tls: true
        configuration:
          loadBalancerSourceRanges:
            - 10.0.0.0/8
            - 88.208.76.87/32
    #...

nodeport

NodePort 유형 서비스를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.

Kafka 클라이언트는 OpenShift 노드에 직접 연결됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가 NodePort 유형이 생성됩니다.

Kafka 브로커 Pod에 대해 공개된 주소를 구성할 때 AMQ Streams는 지정된 Pod가 실행 중인 노드의 주소를 사용합니다. preferredNodePortAddressType 속성을 사용하여 노드 주소로 확인한 첫 번째 주소 유형을 구성할 수 있습니다.

노드 포트 리스너 구성 예

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external4
        port: 9095
        type: nodeport
        tls: false
        configuration:
          preferredNodePortAddressType: InternalDNS
    #...

참고

노드 포트를 사용하여 Kafka 클러스터를 노출할 때 TLS 호스트 이름 확인은 현재 지원되지 않습니다.

cluster-ip

브로커별 ClusterIP 유형 Service 를 사용하여 Kafka를 노출하도록 내부 리스너를 구성합니다.

리스너는 헤드리스 서비스와 해당 DNS 이름을 사용하여 Kafka 브로커로 트래픽을 라우팅하지 않습니다. 헤드리스 서비스를 사용할 때 이러한 유형의 리스너를 사용하여 Kafka 클러스터를 노출할 수 있습니다. 특정 Ingress 컨트롤러 또는 OpenShift 게이트웨이 API를 사용하는 사용자 정의 액세스 메커니즘과 함께 사용할 수 있습니다.

각 Kafka 브로커 Pod에 대해 새 ClusterIP 서비스가 생성됩니다. 이 서비스에는broker별 포트 번호를 사용하여 Kafka 부트스트랩 주소로 사용할 ClusterIP 주소가 할당됩니다. 예를 들어 TCP 포트 구성을 사용하여 Nginx Ingress 컨트롤러를 통해 Kafka 클러스터를 노출하도록 리스너를 구성할 수 있습니다.

cluster-ip 리스너 구성의 예

#...
spec:
  kafka:
    #...
    listeners:
      - name: external-cluster-ip
        type: cluster-ip
        tls: false
        port: 9096
    #...

4.2.4.3. port

포트 번호는 Kafka 클러스터에서 사용되는 포트이며, 클라이언트에서 액세스하는 데 사용되는 포트와 동일하지 않을 수 있습니다.

  • LoadBalancer 리스너는 내부클러스터-ip 리스너와 같이 지정된 포트 번호를 사용합니다.
  • Ingress경로 리스너는 액세스에 포트 443을 사용합니다.
  • NodePort 리스너는 OpenShift에서 할당한 포트 번호를 사용합니다.

클라이언트 연결의 경우 리스너의 부트스트랩 서비스에 주소 및 포트를 사용합니다. Kafka 리소스의 상태에서 이를 검색할 수 있습니다.

클라이언트 연결에 사용되는 주소 및 포트 검색 명령 예

oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'

참고

구독자 간 통신(9090 및 9091) 및 메트릭(9404)에는 리스너를 별도로 사용하도록 구성할 수 없습니다.

4.2.4.4. tls

TLS 속성은 필수입니다.

기본적으로 TLS 암호화는 활성화되어 있지 않습니다. 활성화하려면 tls 속성을 true 로 설정합니다.

경로수신 유형 리스너의 경우 TLS 암호화를 활성화해야 합니다.

4.2.4.5. 인증

리스너에 대한 인증은 다음과 같이 지정할 수 있습니다.

4.2.4.6. networkPolicyPeers

networkPolicyPeers 를 사용하여 네트워크 수준에서 리스너에 대한 액세스를 제한하는 네트워크 정책을 구성합니다. 다음 예제에서는 일반tls 리스너에 대한 networkPolicyPeers 구성을 보여줍니다.

다음 예제에서는 다음을 수행합니다.

  • 라벨 app: kafka-sasl-consumerapp: kafka-sasl-producer 와 일치하는 애플리케이션 Pod만 일반 리스너에 연결할 수 있습니다. 애플리케이션 Pod는 Kafka 브로커와 동일한 네임스페이스에서 실행 중이어야 합니다.
  • myproject 및 project: myproject 2 와 일치하는 네임스페이스에서 실행 중인 애플리케이션 Pod만 tls 리스너에 연결할 수 있습니다.

networkPolicyPeers 속성의 구문은 NetworkPolicy 리소스의 from 속성과 동일합니다.

Exanmple 네트워크 정책 구성

listeners:
  #...
  - name: plain
    port: 9092
    type: internal
    tls: true
    authentication:
      type: scram-sha-512
    networkPolicyPeers:
      - podSelector:
          matchLabels:
            app: kafka-sasl-consumer
      - podSelector:
          matchLabels:
            app: kafka-sasl-producer
  - name: tls
    port: 9093
    type: internal
    tls: true
    authentication:
      type: tls
    networkPolicyPeers:
      - namespaceSelector:
          matchLabels:
            project: myproject
      - namespaceSelector:
          matchLabels:
            project: myproject2
# ...

4.2.4.7. GenericKafkaListener 스키마 속성

Expand
속성설명

name

리스너의 이름입니다. 이름은 리스너와 관련 OpenShift 오브젝트를 식별하는 데 사용됩니다. 이름은 Kafka 클러스터 내에서 고유해야 합니다. 이름은 소문자와 숫자로 구성되며 최대 11자까지 사용할 수 있습니다.

string

port

Kafka 내부의 리스너에서 사용하는 포트 번호입니다. 포트 번호는 지정된 Kafka 클러스터 내에서 고유해야 합니다. 허용되는 포트 번호는 9092이고 포트 9404 및 9999를 제외하고 이미 Prometheus 및 10.0.0.1에 사용됩니다. 리스너 유형에 따라 포트 번호가 Kafka 클라이언트를 연결하는 포트 번호와 동일하지 않을 수 있습니다.

integer

type

리스너의 유형입니다. 현재 지원되는 유형은 내부,경로, 로드 밸런서, nodeportingress 입니다.

  • 내부 유형은 OpenShift 클러스터 내에서만 Kafka를 내부적으로 노출합니다.
  • 경로 유형에서는 OpenShift 경로를 사용하여 Kafka를 노출합니다.
  • LoadBalancer 유형은 LoadBalancer 유형 서비스를 사용하여 Kafka를 노출합니다.
  • NodePort 유형은 NodePort 유형 서비스를 사용하여 Kafka를 노출합니다.
  • Ingress 유형은 OpenShift Nginx Ingress를 사용하여 TLS 패스스루로 Kafka를 노출합니다.
  • cluster-ip 유형은broker별 ClusterIP 서비스를 사용합니다.

문자열 ( [ingress, internal, route, loadbalancer, cluster-ip, nodeport] 중 하나)

tls

리스너에서 TLS 암호화를 활성화합니다. 이는 필수 자산입니다.

boolean

인증

이 리스너에 대한 인증 구성입니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 값은 [tls, scram-sha-512, oauth, custom] 중 하나여야 합니다.

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth, KafkaListenerAuthenticationCustom

구성

추가 리스너 구성입니다.

GenericKafkaListenerConfiguration

networkPolicyPeers

이 리스너에 연결할 수 있어야 하는 피어 목록입니다. 이 목록의 피어는 논리 OR 작업을 사용하여 결합됩니다. 이 필드가 비어 있거나 누락되면 이 리스너에 모든 연결이 허용됩니다. 이 필드가 있고 항목이 하나 이상 포함된 경우 리스너는 이 목록의 하나 이상의 항목과 일치하는 트래픽만 허용합니다. 자세한 내용은 networking.k8s.io/v1 networkpolicypeer 에 대한 외부 설명서 를 참조하십시오.

NetworkPolicyPeer 배열

4.2.5. KafkaListenerAuthenticationTls 스키마 참조

사용 대상: GenericKafkaListener

type 속성은 KafkaListenerAuthenticationTls 유형을 KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth, KafkaListenerAuthenticationCustom 와 구분하는 판별자입니다. KafkaListenerAuthenticationTls 유형의 tls 값이 있어야 합니다.

Expand
속성설명

type

tls 여야 합니다.

string

4.2.6. KafkaListenerAuthenticationScramSha512 schema reference

사용 대상: GenericKafkaListener

type 속성은 KafkaListenerAuthenticationScramSha512 유형과 KafkaListenerAuthenticationTls, KafkaListenerAuthenticationOAuth, KafkaListenerAuthenticationCustom 을 구분하는 판별자입니다. KafkaListenerAuthenticationScramSha512 유형의 scram-sha-512 가 있어야 합니다.

Expand
속성설명

type

scram-sha-512 여야 합니다.

string

4.2.7. KafkaListenerAuthenticationOAuth 스키마 참조

사용 대상: GenericKafkaListener

type 속성은 KafkaListenerAuthenticationOAuth 유형 사용을 KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationCustom 와 구분하는 판별자입니다. KafkaListenerAuthenticationOAuth 유형의 oauth 값이 있어야 합니다.

Expand
속성설명

accessTokenIsJwt

액세스 토큰이 JWT로 처리될지 여부를 구성합니다. 권한 부여 서버가 불투명 토큰을 반환하는 경우 false 로 설정해야 합니다. 기본값은 true 입니다.

boolean

checkAccessTokenType

액세스 토큰 유형 확인 수행 여부를 구성합니다. 권한 부여 서버에 JWT 토큰에 'typ' 클레임이 포함되지 않은 경우 false 로 설정해야 합니다. 기본값은 true 입니다.

boolean

CheckAudience

대상 검사를 활성화하거나 비활성화합니다. 대상 검사에서 토큰 수신자를 식별합니다. 대상 확인이 활성화된 경우 OAuth 클라이언트 ID도 clientId 속성을 사용하여 구성해야 합니다. Kafka 브로커는 ud (audience) claim.Default 값이 falseclientId 가 없는 토큰을 거부합니다.

boolean

checkIssuer

발급자 검사를 활성화하거나 비활성화합니다. 기본적으로 issuer는 validIssuerUri 에서 구성한 값을 사용하여 확인합니다. 기본값은 true 입니다.

boolean

clientAudience

권한 부여 서버의 토큰 엔드포인트에 요청할 때 사용할 대상입니다. broker 간 인증에 사용되며 clientIdsecret 메서드를 사용하여 PLAIN을 통해 OAuth 2.0을 구성하는 데 사용됩니다.

string

clientId

Kafka 브로커가 권한 부여 서버에 대해 인증하고 introspect 엔드포인트 URI를 사용하는 OAuth 클라이언트 ID입니다.

string

clientScope

권한 부여 서버의 토큰 엔드포인트에 요청할 때 사용할 범위입니다. broker 간 인증에 사용되며 clientIdsecret 메서드를 사용하여 PLAIN을 통해 OAuth 2.0을 구성하는 데 사용됩니다.

string

clientSecret

Kafka 브로커가 권한 부여 서버에 대해 인증하고 내부 엔드포인트 URI를 사용하는 데 사용할 수 있는 OAuth 클라이언트 시크릿이 포함된 OpenShift Secret에 대한 링크입니다.

GenericSecretSource

connectTimeoutSeconds

권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다.

integer

customClaimCheck

JWT 토큰 또는 추가 토큰 검증을 위해 인트로스펙션 끝점의 응답에 적용할 JSONPath 필터 쿼리입니다. 기본적으로 설정되지 않습니다.

string

disableTlsHostnameVerification

TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 false 입니다.

boolean

enableECDSA

enableECDSA 속성이 더 이상 사용되지 않습니다. BouncyCastle 암호화 공급자를 설치하여 ECDSA 지원을 활성화하거나 비활성화합니다. ECDSA 지원은 항상 활성화되어 있습니다. BouncyCastle 라이브러리는 더 이상 AMQ Streams와 함께 패키징되지 않습니다. 값이 무시됩니다.

boolean

enableMetrics

OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 false 입니다.

boolean

enableOauthBearer

SASL_OAUTHB topicER를 통해 OAuth 인증을 활성화하거나 비활성화합니다. 기본값은 true 입니다.

boolean

enablePlain

SASL_PLAIN을 통해 OAuth 인증을 활성화하거나 비활성화합니다. 이 메커니즘을 사용하는 경우 재인증 지원이 제공되지 않습니다. 기본값은 false 입니다.

boolean

failFast

시작 중에 잠재적으로 복구 가능한 런타임 오류로 인해 Kafka 브로커 프로세스의 종료를 활성화하거나 비활성화합니다. 기본값은 true 입니다.

boolean

fallbackUserNameClaim

userNameClaim 에서 지정한 클레임이 없는 경우 사용자 ID에 대해 대체 사용자 이름 클레임이 사용됩니다. client_credentials 인증만 있으면 클라이언트 ID가 다른 클레임에 제공됩니다. userNameClaim 을 설정한 경우에만 적용됩니다.

string

fallbackUserNamePrefix

사용자 ID를 구성하는 데 fallbackUserNameClaim 값과 함께 사용할 접두사입니다. 이는 fallbackUserNameClaim 이 true이고 해당 클레임에 대한 값이 있는 경우에만 적용됩니다. 사용자 이름과 클라이언트 ID를 동일한 사용자 ID 공간에 매핑하는 것은 이름 충돌을 방지하는 데 유용합니다.

string

groupsClaim

인증 중에 사용자의 그룹을 추출하는 데 사용되는 JSONPath 쿼리입니다. 추출된 그룹은 사용자 정의 작성자가 사용할 수 있습니다. 기본적으로 추출된 그룹이 없습니다.

string

groupsClaimDelimiter

그룹을 구문 분석하는 데 사용되는 구분 기호는 JSON 배열이 아닌 단일 String 값으로 추출됩니다. 기본값은 ','(comma)입니다.

string

httpRetries

초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다.

integer

httpRetryPauseMs

실패한 HTTP 요청을 재시도하기 전에 일시 정지를 수행합니다. 설정되지 않은 경우 기본값은 일시 중지되지 않고 즉시 요청을 반복하는 것입니다.

integer

introspectionEndpointUri

JWT가 아닌 불투명한 토큰의 유효성을 확인하는 데 사용할 수 있는 토큰 인트로스펙션 끝점의 URI입니다.

string

jwksEndpointUri

로컬 JWT 검증에 사용할 수 있는 JWKS 인증서 끝점의 URI입니다.

string

jwksExpirySeconds

JWKS 인증서가 유효한 것으로 간주되는 빈도를 설정합니다. 만료 간격은 최소 60초 길이여야 하며 jwksRefreshSeconds 에 지정된 새로 고침 간격입니다. 기본값은360초입니다.

integer

jwksIgnoreKeyUse

JWKS 끝점 응답에서 선언의 'use' 특성을 무시하기 위한 플래그입니다. 기본값은 false 입니다.

boolean

jwksMinRefreshPauseSeconds

연속으로 두 번 새로 고침 사이의 최소 일시 중지입니다. 알 수 없는 서명 키가 발생하면 새로 고침이 즉시 예약되지만 항상 최소 일시 중지를 기다립니다. 기본값은 1초입니다.

integer

jwksRefreshSeconds

JWKS 인증서 새로 고침 빈도를 설정합니다. 새로 고침 간격은 최소 60초 짧으면 jwksExpirySeconds 에 지정된 만료 간격이 짧아야 합니다. 기본값은 300초입니다.

integer

maxSecondsWithoutReauthentication

인증된 세션은 다시 인증하지 않고 유효한 상태로 유지되는 최대 시간(초)입니다. 이렇게 하면 Apache Kafka가 다시 인증될 수 있으며 액세스 토큰이 만료되면 세션이 만료됩니다. 액세스 토큰이 최대 시간 이전에 만료되거나 최대 시간이 경과하면 클라이언트가 다시 인증해야 하며 그렇지 않으면 서버가 연결을 삭제합니다. 기본적으로 설정되지 않음 - 액세스 토큰이 만료되면 인증된 세션이 만료되지 않습니다. 이 옵션은 SASL_OAUTHBearer 인증 메커니즘에만 적용됩니다( enabledOauthBearertrue인 경우).

integer

readTimeoutSeconds

권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다.

integer

tlsTrustedCertificates

OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다.

CertSecretSource 배열

tokenEndpointUri

클라이언트가 clientId시크릿 으로 인증할 때 SASL_PLAIN 메커니즘과 함께 사용할 토큰 끝점의 URI입니다. 설정된 경우, 클라이언트는 usernameclientId 로 설정하고 password 를 클라이언트 시크릿 으로 설정하거나 username 을 계정 사용자 이름으로 설정하고 password$accessToken:.로 접두사로 토큰에 액세스하도록 SASL_PLAIN을 통해 인증할 수 있습니다. 이 옵션을 설정하지 않으면 암호는 항상 액세스 토큰( 접두사를 사용하지 않음)과 계정 사용자 이름으로( 'no-client-credentials' 모드라고도 함)로 해석됩니다.

string

type

oauth 여야 합니다.

string

userInfoEndpointUri

Introspection Endpoint에서 사용자 ID에 사용할 수 있는 정보를 반환하지 않을 때 사용자 ID를 가져오는 데 사용할 수 있는 사용자 정보 끝점의 URI입니다.

string

userNameClaim

사용자 ID를 추출하는 데 사용할 JWT 인증 토큰, Introspection Endpoint 응답 또는 User Info Endpoint 응답에서 클레임의 이름입니다. 기본값은 sub 입니다.

string

validIssuerUri

인증에 사용되는 토큰 발행자의 URI입니다.

string

validTokenType

Introspection Endpoint에서 반환하는 token_type 속성에 유효한 값입니다. 기본값은 없으며 기본적으로 확인되지 않습니다.

string

4.2.8. GenericSecretSource 스키마 참조

KafkaClientAuthenticationOAuth, KafkaListenerAuthenticationCustom, KafkaListenerAuthenticationOAuth에 사용됨

Expand
속성설명

key

시크릿 값이 OpenShift 시크릿에 저장되는 키입니다.

string

secretName

시크릿 값이 포함된 OpenShift 시크릿의 이름입니다.

string

4.2.9. CertSecretSource 스키마 참조

에 사용됨: ClientTls, KafkaAuthorizationKeycloak, KafkaAuthorizationOpa, KafkaClientAuthenticationOAuth, KafkaListenerAuthenticationOAuth

Expand
속성설명

certificate

시크릿에 있는 파일 인증서의 이름입니다.

string

secretName

인증서가 포함된 Secret의 이름입니다.

string

4.2.10. KafkaListenerAuthenticationCustom 스키마 참조

사용 대상: GenericKafkaListener

KafkaListenerAuthenticationCustom 스키마 속성의 전체 목록

사용자 지정 인증을 구성하려면 type 속성을 사용자 지정 으로 설정합니다.

사용자 지정 인증을 사용하면 모든 유형의 kafka 지원 인증을 사용할 수 있습니다.

사용자 정의 OAuth 인증 구성 예

spec:
  kafka:
    config:
      principal.builder.class: SimplePrincipal.class
    listeners:
      - name: oauth-bespoke
        port: 9093
        type: internal
        tls: true
        authentication:
          type: custom
          sasl: true
          listenerConfig:
            oauthbearer.sasl.client.callback.handler.class: client.class
            oauthbearer.sasl.server.callback.handler.class: server.class
            oauthbearer.sasl.login.callback.handler.class: login.class
            oauthbearer.connections.max.reauth.ms: 999999999
            sasl.enabled.mechanisms: oauthbearer
            oauthbearer.sasl.jaas.config: |
              org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required ;
          secrets:
            - name: example

sasltls 값을 사용하여 리스너에 매핑할 프로토콜을 결정하는 프로토콜 맵이 생성됩니다.

  • SASL = True, TLS = True SASL_SSL
  • SASL = False, TLS = True SSL
  • SASL = True, TLS = False SASL_PLAINTEXT
  • SASL = False, TLS = False PLAINTEXT

4.2.10.1. listenerConfig

listenerConfig 를 사용하여 지정된 리스너 구성에는 listener .name. <listener_name>-<port >가 붙습니다. 예를 들어 sasl.enabled.mechanisms 는 listener. name. <listener_name>-<port > .sasl.enabled.mechanisms 가 됩니다.

4.2.10.2. secrets

Kafka 브로커 노드의 시크릿은 /opt/kafka/custom-authn-secrets/custom-listener- <listener_name>-<port> / <secret_name >에 마운트됩니다.

예를 들어 예제 구성의 마운트된 시크릿(: )은 /opt/kafka/custom-authn-secrets/custom-listener-oauth-bespoke-9093/example 에 있습니다.

4.2.10.3. 주요 빌더

Kafka 클러스터 구성에서 사용자 정의 주체 빌더를 설정할 수 있습니다. 그러나 주요 빌더에는 다음 요구 사항이 적용됩니다.

  • 지정된 주요 빌더 클래스가 이미지에 있어야 합니다. 자신을 만들기 전에, 이미 존재하는 지 확인하십시오. 필수 클래스로 AMQ Streams 이미지를 다시 빌드해야 합니다.
  • 다른 리스너에서 oauth 유형 인증을 사용하지 않습니다. OAuth 리스너가 Kafka 구성에 자체 원칙 빌더를 추가하기 때문입니다.
  • 지정된 주요 빌더는 AMQ Streams와 호환됩니다.

AMQ Streams에서 이 인증서를 사용하여 Kafka 클러스터를 관리하므로 사용자 정의 주체 빌더는 인증을 위해 피어 인증서를 지원해야 합니다.

참고

Kafka의 기본 주요 빌더 클래스는 피어 인증서 이름을 기반으로 보안 주체 빌드를 지원합니다. 사용자 정의 주체 빌더는 SSL 피어 인증서의 이름을 사용하여 유형 사용자의 주체를 제공해야 합니다.

다음 예는 AMQ Streams의 OAuth 요구 사항을 충족하는 사용자 정의 주요 빌더를 보여줍니다.

사용자 정의 OAuth 구성을 위한 주요 빌더 예

public final class CustomKafkaPrincipalBuilder implements KafkaPrincipalBuilder {

    public KafkaPrincipalBuilder() {}

    @Override
    public KafkaPrincipal build(AuthenticationContext context) {
        if (context instanceof SslAuthenticationContext) {
            SSLSession sslSession = ((SslAuthenticationContext) context).session();
            try {
                return new KafkaPrincipal(
                    KafkaPrincipal.USER_TYPE, sslSession.getPeerPrincipal().getName());
            } catch (SSLPeerUnverifiedException e) {
                throw new IllegalArgumentException("Cannot use an unverified peer for authentication", e);
            }
        }

        // Create your own KafkaPrincipal here
        ...
    }
}

4.2.10.4. KafkaListenerAuthenticationCustom 스키마 속성

type 속성은 KafkaListenerAuthenticationTls , KafkaListenerAuthentication ScramSha512, KafkaListenerAuthenticationOAuthKafkaListenerAuthenticationTls 사용을 구분하는 판별자입니다. KafkaListenerAuthenticationCustom 유형의 값 custom 이 있어야 합니다.

Expand
속성설명

listenerConfig

특정 리스너에 사용할 구성입니다. 모든 값에는 listener.name. <listener_name>이 접두사로 지정됩니다.

map

SASL

이 리스너에서 SASL을 활성화하거나 비활성화합니다.

boolean

secrets

/opt/kafka/custom-authn-secrets/custom-listener- <listener_name>-<port> / <secret_name >에 마운트할 시크릿입니다.

GenericSecretSource 배열

type

custom 이어야 합니다.

string

4.2.11. GenericKafkaListenerConfiguration 스키마 참조

사용 대상: GenericKafkaListener

GenericKafkaListenerConfiguration 스키마 속성의 전체 목록

Kafka 리스너 구성.

4.2.11.1. brokerCertChainAndKey

brokerCertRoleBindingAndKey 속성은 TLS 암호화가 활성화된 리스너에서만 사용됩니다. 속성을 사용하여 자체 Kafka 리스너 인증서를 제공할 수 있습니다.

TLS 암호화가 활성화된 로드 밸런서 외부 리스너 구성 예

listeners:
  #...
  - name: external
    port: 9094
    type: loadbalancer
    tls: true
    authentication:
      type: tls
    configuration:
      brokerCertChainAndKey:
        secretName: my-secret
        certificate: my-listener-certificate.crt
        key: my-listener-key.key
# ...

4.2.11.2. externalTrafficPolicy

externalTrafficPolicy 속성은 로드 밸런서 및 nodeport 리스너와 함께 사용됩니다. OpenShift 외부에서 Kafka를 노출할 때 로컬 또는 클러스터를 선택할 수 있습니다. local 은 다른 노드로 홉을 방지하고 클라이언트 IP를 유지하지만 클러스터는 둘 하지 않습니다. 기본값은 Cluster 입니다.

4.2.11.3. loadBalancerSourceRanges

loadBalancerSourceRanges 속성은 로드 밸런서 리스너 에서만 사용됩니다. OpenShift 외부에서 Kafka를 노출할 때 레이블 및 주석 외에도 소스 범위를 사용하여 서비스 생성 방법을 사용자 지정할 수 있습니다.

로드 밸런서 리스너에 구성된 소스 범위의 예

listeners:
  #...
  - name: external
    port: 9094
    type: loadbalancer
    tls: false
    configuration:
      externalTrafficPolicy: Local
      loadBalancerSourceRanges:
        - 10.0.0.0/8
        - 88.208.76.87/32
      # ...
# ...

4.2.11.4. 클래스

class 속성은 수신 리스너와 함께만 사용됩니다. class 속성을 사용하여 Ingress 클래스 를 구성할 수 있습니다.

Ingress 클래스 nginx-internal사용하여 유형 Ingress의 외부 리스너 예

listeners:
  #...
  - name: external
    port: 9094
    type: ingress
    tls: true
    configuration:
      class: nginx-internal
    # ...
# ...

4.2.11.5. preferredNodePortAddressType

preferredNodePortAddressType 속성은 nodeport 리스너에서만 사용됩니다.

리스너 구성에서 preferredNodePortAddressType 속성을 사용하여 노드 주소로 확인한 첫 번째 주소 유형을 지정합니다. 이 속성은 예를 들어 배포에 DNS가 지원되지 않거나 내부 DNS 또는 IP 주소를 통해 내부적으로 브로커를 노출하려는 경우 유용합니다. 이 유형의 주소가 발견되면 사용됩니다. 기본 주소 유형을 찾을 수 없는 경우 AMQ Streams는 표준 우선 순위의 유형을 진행합니다.

  1. ExternalDNS
  2. ExternalIP
  3. 호스트 이름
  4. InternalDNS
  5. InternalIP

기본 노드 포트 주소 유형으로 구성된 외부 리스너 예

listeners:
  #...
  - name: external
    port: 9094
    type: nodeport
    tls: false
    configuration:
      preferredNodePortAddressType: InternalDNS
      # ...
# ...

4.2.11.6. useServiceDnsDomain

useServiceDnsDomain 속성은 내부클러스터-ip 리스너에서만 사용됩니다. 클러스터 서비스 접미사(일반적으로 .cluster.local)를 포함하는 정규화된 DNS 이름이 사용되는지 여부를 정의합니다. useServiceDnsDomainfalse 로 설정된 경우 공개된 주소는 서비스 접미사 없이 생성됩니다(예: my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc ). useServiceDnsDomaintrue 로 설정된 경우 공개된 주소는 서비스 접미사(예: my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc.cluster.local )로 생성됩니다. 기본값은 false 입니다.

Service DNS 도메인을 사용하도록 구성된 내부 리스너 예

listeners:
  #...
  - name: plain
    port: 9092
    type: internal
    tls: false
    configuration:
      useServiceDnsDomain: true
      # ...
# ...

OpenShift 클러스터에서 .cluster.local 과 다른 서비스 접미사를 사용하는 경우 Cluster Operator 구성의 KUBERNETES_SERVICE_DNS_DOMAIN 환경 변수를 사용하여 접미사를 구성할 수 있습니다.

4.2.11.7. GenericKafkaListenerConfiguration 스키마 속성

Expand
속성설명

brokerCertChainAndKey

이 리스너 사용할 인증서 및 개인 키 쌍을 보유한 보안에 대한 참조입니다. 인증서는 선택적으로 전체 체인을 포함할 수 있습니다. 이 필드는 활성화된 TLS 암호화가 있는 리스너에서만 사용할 수 있습니다.

CertAndKeySecretSource

externalTrafficPolicy

서비스가 외부 트래픽을 노드 로컬 또는 클러스터 전체 엔드포인트로 라우팅하는지를 지정합니다. 클러스터 가 다른 노드로 두 번째 홉을 발생시키고 클라이언트 소스 IP를 모호하게 할 수 있습니다. local 은 LoadBalancer 및 Nodeport 유형 서비스에 대한 두 번째 홉을 피하고 클라이언트 소스 IP를 유지합니다(인프라에서 지원하는 경우). 지정되지 않은 경우 OpenShift는 클러스터를 기본값으로 사용합니다. 이 필드는 로드 밸런서 또는 노드 포트 유형 리스너에서만 사용할 수 있습니다.

문자열([로컬, 클러스터] 중 하나)

loadBalancerSourceRanges

클라이언트가 로드 밸런서 유형 리스너에 연결할 수 있는 CIDR 범위 목록(예: 10.0.0.0/8 또는 10.0.0.1 .211.204.1/32)입니다. 플랫폼에서 지원하는 경우 로드 밸런서를 통한 트래픽은 지정된 CIDR 범위로 제한됩니다. 이 필드는 로드 밸런서 유형 서비스에만 적용되며 클라우드 공급자가 기능을 지원하지 않는 경우 무시됩니다. 이 필드는 로드 밸런서 유형 리스너에서만 사용할 수 있습니다.

문자열 배열

부트스트랩

부트스트랩 구성.

GenericKafkaListenerConfigurationBootstrap

brokers

broker별 구성.

GenericKafkaListenerConfigurationBroker 배열

ipFamilyPolicy

서비스에서 사용하는 IP 제품군 정책을 지정합니다. 사용 가능한 옵션은 SingleStack,PreferDualStackRequireDualStack 입니다. SingleStack 은 단일 IP 제품군을 위한 것입니다. PreferDualStack 은 듀얼 스택 구성 클러스터에서 두 개의 IP 제품군 또는 단일 스택 클러스터의 단일 IP 제품군에 사용됩니다. 듀얼 스택 구성 클러스터에 두 개의 IP 제품군이 없는 한 RequireDualStack 이 실패합니다. 지정되지 않은 경우 OpenShift는 서비스 유형에 따라 기본값을 선택합니다.

문자열([RequireDualStack, SingleStack, PreferDualStack] 중 하나)

ipFamilies

서비스에서 사용하는 IP Families를 지정합니다. 사용 가능한 옵션은 IPv4IPv6입니다. 지정되지 않은 경우 OpenShift는 'ipFamilyPolicy 설정을 기반으로 기본값을 선택합니다.

문자열([IPv6, IPv4]) 배열 중 하나 이상

createBootstrapService

부트스트랩 서비스를 생성할지 여부입니다. 부트스트랩 서비스는 기본적으로 생성됩니다(다른 방법으로 지정되지 않은 경우). 이 필드는 loadBalancer 유형 리스너와 함께 사용할 수 있습니다.

boolean

클래스

사용할 컨트롤러를 정의하는 IngressLoadBalancer 의 특정 클래스를 구성합니다. 이 필드는 수신 및 로드 밸런서 유형 리스너에서만 사용할 수 있습니다. 지정하지 않으면 기본 컨트롤러가 사용됩니다. Ingress 리스너의 경우 Ingress 리소스에서 ingressClassName 속성을 설정합니다. 로드 밸런서 리스너의 경우 Service 리소스에서 loadBalancerClass 속성을 설정합니다.

string

종료자

이 리스너에 대해 생성된 LoadBalancer 유형 서비스에 대해 구성할 종료자 목록입니다. 플랫폼에서 지원하는 경우 종료자 service.kubernetes.io/load-balancer-cleanup 을 사용하여 외부 로드 밸런서가 서비스와 함께 삭제되었는지 확인합니다. 자세한 내용은 https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#garbage-collecting-load-balancers 을 참조하십시오. 이 필드는 로드 밸런서 유형 리스너에서만 사용할 수 있습니다.

문자열 배열

maxConnectionCreationRate

언제든지 이 리스너에서 허용되는 최대 연결 생성 속도입니다. 제한에 도달하면 새 연결이 제한됩니다.

integer

maxConnections

언제든지 브로커에서 이 리스너를 허용하는 최대 연결 수입니다. 제한에 도달하면 새 연결이 차단됩니다.

integer

preferredNodePortAddressType

노드 주소로 사용할 주소 유형을 정의합니다. 사용 가능한 유형은 ExternalDNS,ExternalIP,InternalDNS,InternalIPHostname 입니다. 기본적으로 이 주소는 다음 순서로 사용됩니다(있는 첫 번째 항목이 사용됨).

  • ExternalDNS
  • ExternalIP
  • InternalDNS
  • InternalIP
  • 호스트 이름

이 필드는 우선 확인되는 기본 주소 유형을 선택하는 데 사용됩니다. 이 주소 유형에 대한 주소를 찾을 수 없는 경우 다른 유형은 기본 순서로 확인됩니다. 이 필드는 nodeport 유형 리스너에서만 사용할 수 있습니다.

문자열 ([ExternalDNS, ExternalIP, Hostname, InternalIP, InternalDNS] 중 하나)

useServiceDnsDomain

OpenShift 서비스 DNS 도메인을 사용할지 여부를 설정합니다. true 로 설정하면 생성된 주소에 서비스 DNS 도메인 접미사가 포함됩니다(기본적으로 환경 변수 KUBERNETES_SERVICE_DNS_DOMAIN을 사용하여 구성할 수 있음). 기본값은 false 입니다. 이 필드는 내부cluster-ip 유형 리스너에서만 사용할 수 있습니다.

boolean

4.2.12. CertAndKeySecretSource schema reference

사용됨: GenericKafkaListenerConfiguration, KafkaClientAuthenticationTls

Expand
속성설명

certificate

시크릿에 있는 파일 인증서의 이름입니다.

string

key

시크릿의 개인 키 이름입니다.

string

secretName

인증서가 포함된 Secret의 이름입니다.

string

4.2.13. GenericKafkaListenerConfigurationBootstrap schema reference

사용됨: GenericKafkaListenerConfiguration

GenericKafkaListenerConfigurationBootstrap 스키마 속성의 전체 목록

nodePort,host,loadBalancerIP주석 속성과 동등한 브로커 서비스는 GenericKafkaListenerConfigurationBroker 스키마 에서 구성됩니다.

4.2.13.1. alternativeNames

부트스트랩 서비스의 대체 이름을 지정할 수 있습니다. 이름은 브로커 인증서에 추가되며 TLS 호스트 이름 확인에 사용할 수 있습니다. alternativeNames 속성은 모든 유형의 리스너에 적용됩니다.

추가 부트스트랩 주소로 구성된 외부 경로 리스너 예

listeners:
  #...
  - name: external
    port: 9094
    type: route
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        alternativeNames:
          - example.hostname1
          - example.hostname2
# ...

4.2.13.2. host

host 속성은 경로수신 리스너와 함께 사용하여 부트스트랩 및 브로커별 서비스에서 사용하는 호스트 이름을 지정합니다.

Ingress 컨트롤러에서 호스트 속성 값을 자동으로 할당하지 않으므로 Ingress 리스너 구성에 host 속성 값이 필수입니다. 호스트 이름이 Ingress 엔드 포인트로 해석되는지 확인합니다. AMQ Streams는 요청된 호스트를 사용할 수 있고 Ingress 엔드포인트로 올바르게 라우팅되는지 검증하지 않습니다.

수신 리스너의 호스트 구성 예

listeners:
  #...
  - name: external
    port: 9094
    type: ingress
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        host: bootstrap.myingress.com
      brokers:
      - broker: 0
        host: broker-0.myingress.com
      - broker: 1
        host: broker-1.myingress.com
      - broker: 2
        host: broker-2.myingress.com
# ...

기본적으로 경로 리스너 호스트는 OpenShift에서 자동으로 할당됩니다. 그러나 호스트를 지정하여 할당된 경로 호스트를 덮어쓸 수 있습니다.

AMQ Streams는 요청된 호스트를 사용할 수 있는 검증을 수행하지 않습니다. 자유롭게 사용할 수 있고 사용할 수 있는지 확인해야 합니다.

경로 리스너의 호스트 구성 예

# ...
listeners:
  #...
  - name: external
    port: 9094
    type: route
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        host: bootstrap.myrouter.com
      brokers:
      - broker: 0
        host: broker-0.myrouter.com
      - broker: 1
        host: broker-1.myrouter.com
      - broker: 2
        host: broker-2.myrouter.com
# ...

4.2.13.3. nodePort

기본적으로 부트스트랩 및 브로커 서비스에 사용되는 포트 번호는 OpenShift에서 자동으로 할당합니다. 요청된 포트 번호를 지정하여 nodeport 리스너에 할당된 노드 포트를 덮어쓸 수 있습니다.

AMQ Streams는 요청된 포트에서 검증을 수행하지 않습니다. 사용 가능한지 확인해야 합니다.You must ensure that they are free and available for use.

노드 포트 덮어쓰기로 구성된 외부 리스너 예

# ...
listeners:
  #...
  - name: external
    port: 9094
    type: nodeport
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        nodePort: 32100
      brokers:
      - broker: 0
        nodePort: 32000
      - broker: 1
        nodePort: 32001
      - broker: 2
        nodePort: 32002
# ...

4.2.13.4. loadBalancerIP

loadBalancerIP 속성을 사용하여 로드 밸런서를 생성할 때 특정 IP 주소를 요청합니다. 특정 IP 주소가 있는 로드 밸런서를 사용해야 하는 경우 이 속성을 사용합니다. 클라우드 공급자가 기능을 지원하지 않는 경우 loadBalancerIP 필드가 무시됩니다.

특정 로드 밸런서 IP 주소 요청을 사용하는 로드 밸런서 유형의 외부 리스너 예

# ...
listeners:
  #...
  - name: external
    port: 9094
    type: loadbalancer
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        loadBalancerIP: 172.29.3.10
      brokers:
      - broker: 0
        loadBalancerIP: 172.29.3.1
      - broker: 1
        loadBalancerIP: 172.29.3.2
      - broker: 2
        loadBalancerIP: 172.29.3.3
# ...

4.2.13.5. annotations

annotations 속성을 사용하여 리스너와 관련된 OpenShift 리소스에 주석을 추가합니다. 예를 들어 이러한 주석을 사용하여 외부 DNS와 같은 DNS 툴링을 조정할 수 있으며, 로드 밸런서 서비스에 DNS 이름을 자동으로 할당할 수 있습니다.

주석을 사용하여 유형 로드 밸런서의 외부 리스너 예

# ...
listeners:
  #...
  - name: external
    port: 9094
    type: loadbalancer
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        annotations:
          external-dns.alpha.kubernetes.io/hostname: kafka-bootstrap.mydomain.com.
          external-dns.alpha.kubernetes.io/ttl: "60"
      brokers:
      - broker: 0
        annotations:
          external-dns.alpha.kubernetes.io/hostname: kafka-broker-0.mydomain.com.
          external-dns.alpha.kubernetes.io/ttl: "60"
      - broker: 1
        annotations:
          external-dns.alpha.kubernetes.io/hostname: kafka-broker-1.mydomain.com.
          external-dns.alpha.kubernetes.io/ttl: "60"
      - broker: 2
        annotations:
          external-dns.alpha.kubernetes.io/hostname: kafka-broker-2.mydomain.com.
          external-dns.alpha.kubernetes.io/ttl: "60"
# ...

4.2.13.6. GenericKafkaListenerConfigurationBootstrap 스키마 속성

Expand
속성설명

alternativeNames

부트스트랩 서비스의 추가 대체 이름입니다. 대체 이름은 TLS 인증서의 주체 대체 이름 목록에 추가됩니다.

문자열 배열

host

부트스트랩 호스트입니다. 이 필드는 Ingress 리소스 또는 Route 리소스에서 사용하여 원하는 호스트 이름을 지정합니다. 이 필드는 경로 (선택 사항) 또는 인그레스 (필수) 유형 리스너에서만 사용할 수 있습니다.

string

nodePort

부트스트랩 서비스의 노드 포트입니다. 이 필드는 nodeport 유형 리스너에서만 사용할 수 있습니다.

integer

loadBalancerIP

이 필드에 지정된 IP 주소로 로드 밸런서가 요청됩니다. 이 기능은 로드 밸런서가 생성될 때 기본 클라우드 공급자가 loadBalancerIP 지정을 지원하는지 여부에 따라 달라집니다. 이 필드는 클라우드 공급자가 기능을 지원하지 않는 경우 무시됩니다. 이 필드는 로드 밸런서 유형 리스너에서만 사용할 수 있습니다.

string

annotations

Ingress,Route 또는 Service 리소스에 추가될 주석입니다. 이 필드를 사용하여 외부 DNS와 같은 DNS 공급자를 구성할 수 있습니다. 이 필드는 로드 밸런서,노드 포트 , 경로 또는 수신 유형 리스너에서만 사용할 수 있습니다.

map

labels

Ingress,Route 또는 Service 리소스에 추가될 레이블입니다. 이 필드는 로드 밸런서,노드 포트 , 경로 또는 수신 유형 리스너에서만 사용할 수 있습니다.

map

4.2.14. GenericKafkaListenerConfigurationBroker 스키마 참조

사용됨: GenericKafkaListenerConfiguration

GenericKafkaListenerConfigurationBroker 스키마 속성의 전체 목록

부트 스트랩 서비스 덮어쓰기를 구성하는 GenericKafkaListenerConfigurationBootstrap 스키마nodePort,host,loadBalancerIP주석 속성에 대한 예제 구성을 볼 수 있습니다.

브로커에 대한 공지된 주소

기본적으로 AMQ Streams는 Kafka 클러스터가 클라이언트에 알리는 호스트 이름과 포트를 자동으로 확인합니다. AMQ Streams가 실행 중인 인프라에서 Kafka에 액세스할 수 있는 올바른 호스트 이름 또는 포트를 제공하지 않을 수 있기 때문에 모든 상황에서 충분하지 않습니다.

브로커 ID를 지정하고 리스너의 구성 속성에서 공개된 호스트 이름과 포트를 사용자 지정할 수 있습니다. 그런 다음 AMQ Streams는 Kafka 브로커에서 공개된 주소를 자동으로 구성하고 브로커 인증서에 추가하여 TLS 호스트 이름 확인에 사용할 수 있습니다. 공개된 호스트 및 포트를 재정의하는 것은 모든 유형의 리스너에 사용할 수 있습니다.

공개된 주소에 대한 덮어쓰기로 구성된 외부 경로 리스너의 예

listeners:
  #...
  - name: external
    port: 9094
    type: route
    tls: true
    authentication:
      type: tls
    configuration:
      brokers:
      - broker: 0
        advertisedHost: example.hostname.0
        advertisedPort: 12340
      - broker: 1
        advertisedHost: example.hostname.1
        advertisedPort: 12341
      - broker: 2
        advertisedHost: example.hostname.2
        advertisedPort: 12342
# ...

4.2.14.1. GenericKafkaListenerConfigurationBroker 스키마 속성

Expand
속성설명

broker

kafka 브로커(broker 식별자)의 ID입니다. 브로커 ID는 0에서 시작하여 브로커 복제본 수에 해당합니다.

integer

advertisedHost

brokers .brokers 에서 사용할 호스트 이름입니다.

string

advertisedPort

brokers .brokers 에서 사용할 포트 번호입니다.

integer

host

브로커 호스트. 이 필드는 Ingress 리소스 또는 Route 리소스에서 사용하여 원하는 호스트 이름을 지정합니다. 이 필드는 경로 (선택 사항) 또는 인그레스 (필수) 유형 리스너에서만 사용할 수 있습니다.

string

nodePort

broker별 서비스의 노드 포트입니다. 이 필드는 nodeport 유형 리스너에서만 사용할 수 있습니다.

integer

loadBalancerIP

이 필드에 지정된 IP 주소로 로드 밸런서가 요청됩니다. 이 기능은 로드 밸런서가 생성될 때 기본 클라우드 공급자가 loadBalancerIP 지정을 지원하는지 여부에 따라 달라집니다. 이 필드는 클라우드 공급자가 기능을 지원하지 않는 경우 무시됩니다. 이 필드는 로드 밸런서 유형 리스너에서만 사용할 수 있습니다.

string

annotations

Ingress 또는 Service 리소스에 추가될 주석입니다. 이 필드를 사용하여 외부 DNS와 같은 DNS 공급자를 구성할 수 있습니다. 이 필드는 로드 밸런서,노드 포트 또는 수신 유형 리스너에서만 사용할 수 있습니다.

map

labels

Ingress,Route 또는 Service 리소스에 추가될 레이블입니다. 이 필드는 로드 밸런서,노드 포트 , 경로 또는 수신 유형 리스너에서만 사용할 수 있습니다.

map

4.2.15. EphemeralStorage 스키마 참조

사용 대상: JbodStorage, KafkaClusterSpec, ZookeeperClusterSpec

type 속성은 EphemeralStorage 유형을 PersistentClaimStorage 와 구분하는 구분자입니다. EphemeralStorage 유형의 임시 값이 있어야 합니다.

Expand
속성설명

id

스토리지 식별 번호. 'jbod' 유형의 스토리지에 정의된 스토리지 볼륨에만 필요합니다.

integer

sizeLimit

type=ephemeral인 경우 이 EmptyDir 볼륨에 필요한 총 로컬 스토리지(예: 1Gi)를 정의합니다.

string

type

임시 여야 합니다.

string

4.2.16. PersistentClaimStorage 스키마 참조

사용 대상: JbodStorage, KafkaClusterSpec, ZookeeperClusterSpec

type 속성은 PersistentClaimStorage 유형과 EphemeralStorage 의 사용을 구별하는 판별자입니다. PersistentClaimStorage 유형에 대한 persistent-claim 값이 있어야 합니다.

Expand
속성설명

type

persistent-claim 여야 합니다.

string

크기

type=persistent-claim인 경우 영구 볼륨 클레임의 크기(예: 1Gi)를 정의합니다. type=persistent-claim 시 필수 항목입니다.

string

선택기

사용할 특정 영구 볼륨을 지정합니다. 이러한 볼륨을 선택하기 위한 레이블을 나타내는 키:값 쌍이 포함되어 있습니다.

map

deleteClaim

클러스터가 배포 취소될 때 영구 볼륨 클레임을 삭제해야 하는지 여부를 지정합니다.

boolean

클래스

동적 볼륨 할당에 사용할 스토리지 클래스입니다.

string

id

스토리지 식별 번호. 'jbod' 유형의 스토리지에 정의된 스토리지 볼륨에만 필요합니다.

integer

덮어쓰기

개별 브로커에 대한 재정의 overrides 필드를 사용하면 다른 브로커에 대해 다른 구성을 지정할 수 있습니다.

PersistentClaimStorageOverride array

4.2.17. PersistentClaimStorageOverride schema reference

사용 위치: PersistentClaimStorage

Expand
속성설명

클래스

이 브로커의 동적 볼륨 할당에 사용할 스토리지 클래스입니다.

string

broker

kafka 브로커(broker 식별자)의 ID입니다.

integer

4.2.18. JbodStorage 스키마 참조

사용 대상: KafkaClusterSpec

type 속성은 discriminator로, JbodStorage 유형 사용을 EphemeralStorage, PersistentClaimStorage 와 구별합니다. JbodStorage 유형에 대한 값 jbod 가 있어야 합니다.

Expand
속성설명

type

jbod 여야 합니다.

string

volumes

JBOD 디스크 어레이를 나타내는 스토리지 오브젝트로 볼륨 목록입니다.

EphemeralStorage, PersistentClaimStorage 배열

4.2.19. KafkaAuthorizationSimple 스키마 참조

사용 대상: KafkaClusterSpec

KafkaAuthorizationSimple 스키마 속성의 전체 목록

AMQ Streams의 간단한 인증에서는 Apache Kafka와 함께 제공되는 기본 ACL(액세스 제어 목록) 인증 플러그인인 AclAuthorizer 플러그인을 사용합니다. ACL을 사용하면 세분화된 수준에서 리소스에 액세스할 수 있는 사용자를 정의할 수 있습니다.

간단한 권한 부여를 사용하도록 Kafka 사용자 정의 리소스를 구성합니다. 권한 부여 섹션의 type 속성을 simple 값으로 설정하고 슈퍼 사용자 목록을 구성합니다.

액세스 규칙은 ACLRule 스키마 참조에 설명된 대로 KafkaUser 에 대해 구성됩니다.

4.2.19.1. superUsers

ACL 규칙을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.

간단한 권한 부여 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    authorization:
      type: simple
      superUsers:
        - CN=client_1
        - user_2
        - CN=client_3
    # ...

참고

Kafka.spec.kafkaconfig 속성의 super.user 구성 옵션은 무시됩니다. 대신 권한 부여 속성에 수퍼 사용자를 지정합니다. 자세한 내용은 Kafka 브로커 구성을 참조하십시오.

4.2.19.2. KafkaAuthorizationSimple 스키마 속성

type 속성은 KafkaAuthorizationSimple 유형과 KafkaAuthorizationOpa, KafkaAuthorizationKeycloak, KafkaAuthorizationCustom 등 다양한 유형의 사용을 구분하는 판별자입니다. KafkaAuthorizationSimple 유형에 대해 간단한 값이 있어야 합니다.

Expand
속성설명

type

단순 해야 합니다.

string

슈퍼 유저

슈퍼 사용자 목록. 무제한 액세스 권한을 얻을 수 있는 사용자 보안 주체 목록을 포함해야 합니다.

문자열 배열

4.2.20. KafkaAuthorizationOpa 스키마 참조

사용 대상: KafkaClusterSpec

KafkaAuthorizationOpa 스키마 속성의 전체 목록

Open Policy Agent 권한을 사용하려면 권한 부여 섹션의 type 속성을 opa 값으로 설정하고 필요에 따라 OPA 속성을 구성합니다. AMQ Streams는 작성자로 Kafka 권한 부여를 위한 Open Policy Agent 플러그인을 사용합니다. 입력 데이터 및 정책 예제 형식에 대한 자세한 내용은 Open Policy Agent plugin for Kafka authorization 를 참조하십시오.

4.2.20.1. url

Open Policy Agent 서버에 연결하는 데 사용되는 URL입니다. URL에는 작성자가 쿼리하는 정책을 포함해야 합니다. 필수 항목입니다.

4.2.20.2. allowOnError

작성자가 Open Policy Agent(예: 일시적으로 사용할 수 없는 경우)를 쿼리하지 못하는 경우 Kafka 클라이언트를 기본적으로 허용하거나 거부할지 여부를 정의합니다. 기본값은 false - 모든 작업이 거부됩니다.

4.2.20.3. initialCacheCapacity

모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 초기 용량입니다. 기본값은 5000 입니다.

4.2.20.4. maximumCacheSize

모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 최대 용량입니다. 기본값은 50000 입니다.

4.2.20.5. expireAfterMs

모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 로컬 캐시에 보관된 레코드의 만료입니다. Open Policy Agent 서버에서 캐시된 권한 부여 결정을 다시 로드하는 빈도를 정의합니다. 밀리초 단위입니다. 기본값은 28 0000 밀리초(1시간)입니다.

4.2.20.6. tlsTrustedCertificates

OPA 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다.

4.2.20.7. superUsers

개방형 정책 에이전트 정책을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.

Open Policy Agent authorizer 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    authorization:
      type: opa
      url: http://opa:8181/v1/data/kafka/allow
      allowOnError: false
      initialCacheCapacity: 1000
      maximumCacheSize: 10000
      expireAfterMs: 60000
      superUsers:
        - CN=fred
        - sam
        - CN=edward
    # ...

4.2.20.8. KafkaAuthorizationOpa 스키마 속성

type 속성은 KafkaAuthorizationOpa 유형을 KafkaAuthorizationSimple, KafkaAuthorizationKeycloak, KafkaAuthorizationCustom. KafkaAuthorizationOpa 유형의 opa 값이 있어야 합니다.

Expand
속성설명

type

opa 여야 합니다.

string

url

Open Policy Agent 서버에 연결하는 데 사용되는 URL입니다. URL에는 작성자가 쿼리하는 정책을 포함해야 합니다. 이 옵션은 필수입니다.

string

allowOnError

작성자가 Open Policy Agent(예: 일시적으로 사용할 수 없는 경우)를 쿼리하지 못하는 경우 Kafka 클라이언트를 기본적으로 허용하거나 거부할지 여부를 정의합니다. 기본값은 false - 모든 작업이 거부됩니다.

boolean

initialCacheCapacity

인증자가 사용하는 로컬 캐시의 초기 용량으로 인해 Open Policy Agent가 모든 요청 기본값이 5000 으로 쿼리되지 않도록 합니다.

integer

maximumCacheSize

모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 최대 용량입니다. 기본값은 50000 입니다.

integer

expireAfterMs

모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 로컬 캐시에 보관된 레코드의 만료입니다. Open Policy Agent 서버에서 캐시된 권한 부여 결정을 다시 로드하는 빈도를 정의합니다. 밀리초 단위입니다. 기본값은 3600000 입니다.

integer

tlsTrustedCertificates

OPA 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다.

CertSecretSource 배열

슈퍼 유저

슈퍼 사용자 목록, 특히 무제한 액세스 권한이 있는 사용자 보안 목록입니다.

문자열 배열

enableMetrics

Open Policy Agent 작성자 플러그인이 메트릭을 제공해야 하는지 여부를 정의합니다. 기본값은 false입니다.

boolean

4.2.21. KafkaAuthorizationKeycloak 스키마 참조

사용 대상: KafkaClusterSpec

type 속성은 KafkaAuthorizationKeycloak 유형과 KafkaAuthorizationSimple, KafkaAuthorizationOpa, KafkaAuthorizationCustom. KafkaAuthorizationKeycloak 유형의 값 keycloak 이 있어야 합니다.

Expand
속성설명

type

keycloak 이어야 합니다.

string

clientId

Kafka 클라이언트가 OAuth 서버에 대해 인증하고 토큰 끝점 URI를 사용하는 OAuth 클라이언트 ID입니다.

string

tokenEndpointUri

권한 부여 서버 토큰 끝점 URI입니다.

string

tlsTrustedCertificates

OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다.

CertSecretSource 배열

disableTlsHostnameVerification

TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 false 입니다.

boolean

delegateToKafkaAcls

Red Hat Single Sign-On Authorization Services 정책에서 DENIED인 경우 권한 부여 결정을 '단순' 승인자에게 위임해야 하는지 여부입니다. 기본값은 false 입니다.

boolean

grantsRefreshPeriodSeconds

두 번 연속 부여 사이의 시간은 새로 고침을 몇 초 내에 실행합니다. 기본값은 60입니다.

integer

grantsRefreshPoolSize

활성 세션에 대한 부여를 새로 고치는 데 사용할 스레드 수입니다. 스레드가 많을수록 병렬 처리가 증가하므로 작업이 더 빨리 완료됩니다. 그러나 더 많은 스레드를 사용하면 권한 부여 서버에 더 많은 로드가 배치됩니다. 기본값은 5입니다.

integer

슈퍼 유저

슈퍼 사용자 목록. 무제한 액세스 권한을 얻을 수 있는 사용자 보안 주체 목록을 포함해야 합니다.

문자열 배열

connectTimeoutSeconds

권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다.

integer

readTimeoutSeconds

권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다.

integer

httpRetries

초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다.

integer

enableMetrics

OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 false 입니다.

boolean

4.2.22. KafkaAuthorizationCustom 스키마 참조

사용 대상: KafkaClusterSpec

KafkaAuthorizationCustom 스키마 속성의 전체 목록

AMQ Streams에서 사용자 정의 인증을 사용하려면 ACL(액세스 제어 목록)을 정의하도록 자체 Authorizer 플러그인을 구성할 수 있습니다.

ACL을 사용하면 세분화된 수준에서 리소스에 액세스할 수 있는 사용자를 정의할 수 있습니다.

사용자 정의 권한을 사용하도록 Kafka 사용자 정의 리소스를 구성합니다. 권한 부여 섹션의 type 속성을 사용자 지정 값으로 설정하고 다음 속성을 설정합니다.

중요

사용자 정의 작성자는 org.apache.kafka.server.authorizer.Authorizer 인터페이스를 구현하고 super.users 구성 속성을 사용하여 super.users 구성을 지원해야 합니다.

4.2.22.1. authorizerClass

(필수) 사용자 지정 ACL을 지원하기 위해 org.apache.kafka.server.authorizer.Authorizer 인터페이스를 구현하는 Java 클래스입니다.

4.2.22.2. superUsers

ACL 규칙을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.

Kafka.spec.kafka.config 를 사용하여 사용자 정의 작성자를 초기화하기 위한 구성을 추가할 수 있습니다.

Kafka.spec아래의 사용자 정의 권한 부여 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    authorization:
      type: custom
      authorizerClass: io.mycompany.CustomAuthorizer
      superUsers:
        - CN=client_1
        - user_2
        - CN=client_3
    # ...
    config:
      authorization.custom.property1=value1
      authorization.custom.property2=value2
    # ...

Kafka 사용자 정의 리소스 구성 외에도 사용자 정의 작성자 클래스를 포함하는 JAR 파일은 Kafka 브로커의 classpath에서 사용할 수 있어야 합니다.

AMQ Streams Maven 빌드 프로세스는 docker-images/kafka/kafka- thirdparty-libs 디렉터리 아래의 pom.xml 파일에 종속 항목으로 추가하여 생성된 Kafka 브로커 컨테이너 이미지에 사용자 정의 타사 라이브러리를 추가하는 메커니즘을 제공합니다. 디렉터리에는 다른 Kafka 버전의 다른 폴더가 포함되어 있습니다. 적절한 폴더를 선택합니다. pom.xml 파일을 수정하기 전에 Maven 리포지토리에서 타사 라이브러리를 사용할 수 있어야 하며 Maven 리포지토리에 AMQ Streams 빌드 프로세스에서 액세스할 수 있어야 합니다.

참고

Kafka.spec.kafkaconfig 속성의 super.user 구성 옵션은 무시됩니다. 대신 권한 부여 속성에 수퍼 사용자를 지정합니다. 자세한 내용은 Kafka 브로커 구성을 참조하십시오.

사용자 정의 권한 부여는 oauth 인증을 사용하고 groupsClaim 구성 특성을 구성할 때 인증 중에 JWT 토큰에서 추출한 그룹 멤버십 정보를 사용할 수 있습니다. 그룹은 다음과 같이 authorize() 호출 중에 OAuthKafkaPrincipal 오브젝트에서 사용할 수 있습니다.

    public List<AuthorizationResult> authorize(AuthorizableRequestContext requestContext, List<Action> actions) {

        KafkaPrincipal principal = requestContext.principal();
        if (principal instanceof OAuthKafkaPrincipal) {
            OAuthKafkaPrincipal p = (OAuthKafkaPrincipal) principal;

            for (String group: p.getGroups()) {
                System.out.println("Group: " + group);
            }
        }
    }

4.2.22.3. KafkaAuthorizationCustom 스키마 속성

type 속성은 KafkaAuthorizationCustom 유형 사용을 KafkaAuthorizationSimple, KafkaAuthorizationOpa, KafkaAuthorizationKeycloak 과 구분하는 판별자입니다. KafkaAuthorizationCustom 유형의 값 custom 이 있어야 합니다.

Expand
속성설명

type

custom 이어야 합니다.

string

authorizerClass

권한 부여 구현 클래스 - classpath에서 사용할 수 있어야 합니다.

string

슈퍼 유저

무제한 액세스 권한이 있는 사용자 주체인 슈퍼 사용자 목록입니다.

문자열 배열

supportsAdminApi

사용자 정의 인증자가 Kafka Admin API를 사용하여 ACL을 관리하기 위한 API를 지원하는지 여부를 나타냅니다. 기본값은 false입니다.

boolean

4.2.23. Rack 스키마 참조

used in: KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec

Rack 스키마 속성의 전체 목록

rack 옵션은 랙 인식을 구성합니다. rack 은 데이터 센터의 가용성 영역, 데이터 센터 또는 실제 랙을 나타낼 수 있습니다. topologyKey 를 통해 구성됩니다. TopologyKey 는 해당 값에 토폴로지 이름이 포함된 OpenShift 노드에서 레이블을 식별합니다. 이러한 레이블의 예로는 OpenShift 노드가 실행되는 가용성 영역의 이름이 포함된 topology.kubernetes.io/zone (또는 이전 OpenShift 버전의 failure-domain.beta.kubernetes.io/zone )이 있습니다. 실행되는 랙을 인식하도록 Kafka 클러스터를 구성하고, 다른 에 파티션 복제본을 분배하거나 가장 가까운 복제본에서 메시지를 사용하는 등의 추가 기능을 활성화할 수 있습니다.

OpenShift 노드 라벨에 대한 자세한 내용은 oscap -Known Labels, Annotations, Taints를 참조하십시오. 노드가 배포된 영역 또는 랙을 나타내는 노드 레이블에 대한 OpenShift 관리자를 참조하십시오.

4.2.23.1. 랙에 파티션 복제본 분배

랙 인식이 구성되면 AMQ Streams는 각 Kafka 브로커에 대한 broker.rack 구성을 설정합니다. broker.rack 구성은 각 브로커에 랙 ID를 할당합니다. broker.rack 이 설정되면 Kafka 브로커는 가능한 한 많은 랙에 파티션 복제본을 분배합니다. 복제본이 여러 개의 랙에 분산되면 여러 복제본이 동시에 실패할 가능성이 동일한 랙에 있을 때보다 낮습니다. 복제본을 분산하면 복원력이 향상되고 가용성과 안정성에 중요합니다. Kafka에서 랙 인식을 활성화하려면 아래 예제와 같이 Kafka 사용자 정의 리소스의 .spec.kafka 섹션에 rack 옵션을 추가합니다.

Kafka의 rack 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    # ...

참고

브로커가 실행되는 은 경우에 따라 Pod가 삭제되거나 다시 시작될 때 변경될 수 있습니다. 결과적으로 다른 랙에서 실행되는 복제본이 동일한 랙을 공유할 수 있습니다. Cruise Control 및 KafkaRebalance 리소스를 RackAwareGoal 과 함께 사용하여 복제본이 다른 랙에 분산되도록 합니다.

Kafka 사용자 정의 리소스에서 랙 인식이 활성화되면 AMQ Streams는 OpenShift preferredDuringSchedulingIgnoredDuringExecution 선호도 규칙을 자동으로 추가하여 Kafka 브로커를 다른 랙에 배포합니다. 그러나 기본 규칙은 브로커가 분산되도록 보장하지 않습니다. 정확한 OpenShift 및 Kafka 구성에 따라 노드가 가능한 한 많은 랙에 올바르게 분배되도록 ZooKeeper 및 Kafka 둘 다에 대한 topologySpreadConstraints 를 구성해야합니다. 자세한 내용은 2.8절. “Pod 예약 구성” 에서 참조하십시오.

4.2.23.2. 가장 가까운 복제본에서 메시지 사용

Rack 인식은 소비자가 가장 가까운 복제본에서 데이터를 가져오는 데 사용할 수도 있습니다. Kafka 클러스터가 여러 데이터센터에 걸쳐 있을 때 네트워크 부하를 줄이고 퍼블릭 클라우드에서 Kafka를 실행할 때 비용을 줄일 수도 있습니다. 그러나 이 경우 대기 시간이 증가할 수 있습니다.

가장 가까운 복제본에서 사용할 수 있으려면 rack 인식 기능을 Kafka 클러스터에서 구성해야 하며 RackAwareReplicaSelector 를 활성화해야 합니다. 복제본 선택기 플러그인은 클라이언트가 가장 가까운 복제본에서 사용할 수 있도록 하는 논리를 제공합니다. 기본 구현에서는 LeaderSelector 를 사용하여 항상 클라이언트의 리더 복제본을 선택합니다. 기본 구현에서 전환하려면 replica.selector.classRackAwareReplicaSelector 를 지정합니다.

복제본 인식 선택기가 활성화된 rack 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    config:
      # ...
      replica.selector.class: org.apache.kafka.common.replica.RackAwareReplicaSelector
    # ...

Kafka 브로커 구성 외에도 소비자에 client.rack 옵션을 지정해야 합니다. client.rack 옵션은 소비자가 실행 중인 랙 ID 를 지정해야 합니다. RackAwareReplicaSelectorbroker.rackclient.rack ID와 일치하는 broker.rack ID를 연결하여 가장 가까운 복제본을 찾아서 소비합니다. 동일한 랙에 여러 개의 복제본이 있는 경우 RackAwareReplicaSelector 는 항상 최신 복제본을 선택합니다. 랙 ID를 지정하지 않거나 동일한 랙 ID가 있는 복제본을 찾을 수 없는 경우 리더 복제본으로 대체됩니다.

그림 4.1. 동일한 가용성 영역의 복제본에서 사용하는 클라이언트 표시 예

동일한 가용성 영역의 복제본에서 사용

커넥터가 가장 가까운 복제본의 메시지를 사용하도록 Kafka Connect, MirrorMaker 2 및 Kafka Bridge를 구성할 수도 있습니다. KafkaConnect,KafkaMirrorMaker2KafkaBridge 사용자 정의 리소스에서 랙 인식 기능을 활성화합니다. 이 구성은 유사성 규칙을 설정하지 않지만 선호도 또는 topologySpreadConstraints 를 구성할 수도 있습니다. 자세한 내용은 2.8절. “Pod 예약 구성” 에서 참조하십시오.

AMQ Streams를 사용하여 Kafka Connect를 배포할 때 KafkaConnect 사용자 정의 리소스의 rack 섹션을 사용하여 client.rack 옵션을 자동으로 구성할 수 있습니다.

Kafka Connect의 rack 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
# ...
spec:
  # ...
  rack:
    topologyKey: topology.kubernetes.io/zone
  # ...

AMQ Streams를 사용하여 MirrorMaker 2를 배포할 때 KafkaMirrorMaker2 사용자 정의 리소스의 rack 섹션을 사용하여 client.rack 옵션을 자동으로 구성할 수 있습니다.

MirrorMaker 2의 rack 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
# ...
spec:
  # ...
  rack:
    topologyKey: topology.kubernetes.io/zone
  # ...

AMQ Streams를 사용하여 Kafka Bridge를 배포할 때 KafkaBridge 사용자 정의 리소스의 rack 섹션을 사용하여 client.rack 옵션을 자동으로 구성할 수 있습니다.

Kafka 브리지의 rack 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
# ...
spec:
  # ...
  rack:
    topologyKey: topology.kubernetes.io/zone
  # ...

4.2.23.3. Rack 스키마 속성

Expand
속성설명

topologyKey

OpenShift 클러스터 노드에 할당된 라벨과 일치하는 키입니다. 레이블 값은 broker의 broker.rack 구성 및 Kafka Connect 또는 MirrorMaker 2에 대한 client.rack 구성을 설정하는 데 사용됩니다.

string

4.2.24. 프로브 스키마 참조

사용됨: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaExporterSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, TlsSidecar, ZookeeperClusterSpec

Expand
속성설명

failureThreshold

성공한 후 프로브가 실패한 것으로 간주하기 위한 최소 연속 실패 횟수입니다. 기본값은 3입니다. 최소 값은 1입니다.

integer

initialDelaySeconds

먼저 상태를 확인하기 전에 초기 지연을 확인합니다. 기본값은 15초입니다. 최소 값은 0입니다.

integer

periodSeconds

프로브를 수행하는 빈도(초)입니다. 기본값은 10초입니다. 최소 값은 1입니다.

integer

successThreshold

실패 후 프로브가 성공한 것으로 간주되는 최소 연속 성공 사례입니다. 기본값은 1입니다. 활성 상태의 경우 1이어야 합니다. 최소 값은 1입니다.

integer

timeoutSeconds

각 시도된 상태 점검에 대한 타임아웃입니다. 기본값은 5초입니다. 최소 값은 1입니다.

integer

4.2.25. JvmOptions 스키마 참조

사용됨: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, ZookeeperClusterSpec

Expand
속성설명

-XX

JVM에 -XX 옵션의 맵입니다.

map

-Xms

-Xms 옵션을 JVM에 적용합니다.

string

-Xmx

-Xmx 옵션을 JVM으로 설정합니다.

string

gcLoggingEnabled

가비지 컬렉션 로깅을 사용하도록 설정할지 여부를 지정합니다. 기본값은 false입니다.

boolean

javaSystemProperties

-D 옵션을 사용하여 JVM에 전달할 추가 시스템 속성 맵입니다.

SystemProperty 배열

4.2.26. SystemProperty 스키마 참조

사용 대상: JvmOptions

Expand
속성설명

name

시스템 속성 이름입니다.

string

value

시스템 속성 값입니다.

string

4.2.27. KafkaJmxOptions 스키마 참조

used in: KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, ZookeeperClusterSpec

KafkaJmxOptions 스키마 속성의 전체 목록

CloudEvent 연결 옵션을 구성합니다.

포트 9999에 연결하여 Kafka 브로커, ZooKeeper 노드, Kafka Connect 및 MirrorMaker 2에서 metrics를 가져옵니다. jmxOptions 속성을 사용하여 암호로 보호되거나 보호되지 않은 10.0.0.1 포트를 구성합니다. 암호 보호를 사용하면 권한이 없는 Pod가 포트에 액세스할 수 없습니다.

그런 다음 구성 요소에 대한 메트릭을 가져올 수 있습니다.

예를 들어 각 Kafka 브로커에 대해 클라이언트에서 초당 바이트당 사용 데이터를 얻거나 브로커 네트워크의 요청 속도를 얻을 수 있습니다.

10.0.0.1 포트에 대한 보안을 활성화하려면 인증 필드의 type 매개 변수를 password 로 설정합니다.

Kafka 브로커 및 ZooKeeper 노드에 대한 암호 보호 CloudEvent 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    jmxOptions:
      authentication:
        type: "password"
    # ...
  zookeeper:
    # ...
    jmxOptions:
      authentication:
        type: "password"
    #...

그런 다음 Pod를 클러스터에 배포하고 처리할 브로커를 지정하여 헤드리스 서비스를 사용하여 CloudEvent 메트릭을 가져올 수 있습니다.

예를 들어 브로커 0 에서 CloudEvent 메트릭을 가져오려면 다음을 지정합니다.

"CLUSTER-NAME-kafka-0.CLUSTER-NAME-kafka-brokers"

CLUSTER-NAME-kafka-0 은 브로커 Pod의 이름이며 CLUSTER-NAME-kafka-brokers 는 브로커 Pod의 IP를 반환하는 헤드리스 서비스의 이름입니다.

ScanSetting 포트가 보안되면 포드 배포의 CloudEvent 시크릿에서 해당 포트를 참조하여 사용자 이름과 암호를 가져올 수 있습니다.

보호되지 않은 CloudEvent 포트의 경우 빈 object {} 을 사용하여 헤드리스 서비스에서 10.0.0.1 포트를 엽니다. Pod를 배포하고 보호 포트와 동일한 방식으로 메트릭을 확보하지만, 이 경우 모든 Pod는 CloudEvent 포트에서 읽을 수 있습니다.

Kafka 브로커 및 ZooKeeper 노드에 대한 오픈 포트 10.0.0.1 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    jmxOptions: {}
    # ...
  zookeeper:
    # ...
    jmxOptions: {}
    # ...

4.2.27.1. KafkaJmxOptions 스키마 속성

Expand
속성설명

인증

10.0.0.1 포트에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. [password] 중 하나여야 합니다.

KafkaJmxAuthenticationPassword

4.2.28. KafkaJmxAuthenticationPassword schema reference

사용 대상: KafkaJmxOptions

type 속성은 KafkaJmxAuthenticationPassword 유형의 사용을 나중에 추가할 수 있는 다른 하위 유형과 구별하는 구분자입니다. KafkaJmxAuthenticationPassword 유형의 값 암호 가 있어야 합니다.

Expand
속성설명

type

암호 여야 합니다.

string

4.2.29. JmxPrometheusExporterMetrics schema reference

에 사용됨: CruiseControlSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, ZookeeperClusterSpec

type 속성은 나중에 추가할 수 있는 다른 하위 유형과 JmxPrometheusExporterMetrics 사용을 구분하는 판별자입니다. JmxPrometheusExporter 유형의 jmxPrometheusExporter 값이 있어야 합니다.

Expand
속성설명

type

jmxPrometheusExporter 여야 합니다.

string

valueFrom

Prometheus>-< Exporter 구성이 저장된 ConfigMap 항목입니다. 이 구성의 구조에 대한 자세한 내용은 Prometheus Exporter 를 참조하십시오.

ExternalConfigurationReference

4.2.30. ExternalConfigurationReference 스키마 참조

사용 대상: ExternalLogging, JmxPrometheusExporterMetrics

Expand
속성설명

configMapKeyRef

구성이 포함된 ConfigMap의 키에 대한 참조입니다. 자세한 내용은 core/v1 configmapkeyselector의 외부 설명서를 참조하십시오.

ConfigMapKeySelector

4.2.31. 인라인Logging 스키마 참조

사용됨: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, ZookeeperClusterSpec

type 속성은 InlineLogging 유형과 ExternalLogging 유형을 구분하는 구분자입니다. InlineLogging 유형의 값 인라인 이어야 합니다.

Expand
속성설명

type

인라인 이어야 합니다.

string

로거

로거 이름에서 로거 수준에 이르기까지 맵입니다.

map

4.2.32. ExternalLogging 스키마 참조

사용됨: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, ZookeeperClusterSpec

type 속성은 외부Logging 유형 사용을 구분하는 구분자 입니다. ExternalLogging 유형의 외부 값이 있어야 합니다.

Expand
속성설명

type

외부 여야 합니다.

string

valueFrom

로깅 구성이 저장된 ConfigMap 항목입니다.

ExternalConfigurationReference

4.2.33. KafkaClusterTemplate 스키마 참조

사용 대상: KafkaClusterSpec

Expand
속성설명

statefulset

statefulset 속성이 더 이상 사용되지 않습니다. StatefulSets에 대한 지원이 AMQ Streams 2.5에서 제거되었습니다. 이 속성은 무시됩니다. Kafka StatefulSet 용 템플릿 .

StatefulSetTemplate

Pod

Kafka 포드 용 템플릿 .

PodTemplate

bootstrapService

Kafka 부트스트랩 서비스 템플릿.

InternalServiceTemplate

brokersService

Kafka 브로커 서비스 템플릿.

InternalServiceTemplate

externalBootstrapService

Kafka 외부 부트스트랩 서비스 템플릿.

resourcetemplate

perPodService

OpenShift 외부에서 액세스하는 데 사용되는 포드당 Kafka 서비스 용 템플릿입니다.

resourcetemplate

externalBootstrapRoute

Kafka 외부 부트스트랩 경로 용 템플릿 .

resourcetemplate

perPodRoute

OpenShift 외부에서 액세스 하는 데 사용되는 포드별 경로 별 Kafka 템플릿입니다.

resourcetemplate

externalBootstrapIngress

Kafka 외부 부트스트랩 인그레스 용 템플릿 .

resourcetemplate

perPodIngress

OpenShift 외부에서 액세스하는 데 사용되는 포드당 Kafka Ingress 용 템플릿입니다.

resourcetemplate

persistentVolumeClaim

모든 Kafka PersistentVolumeClaims 에 대한 템플릿 .

resourcetemplate

podDisruptionBudget

Kafka PodDisruptionBudget 템플릿.

PodDisruptionBudgetTemplate

kafkaContainer

Kafka 브로커 컨테이너용 템플릿입니다.

ContainerTemplate

initContainer

Kafka init 컨테이너용 템플릿입니다.

ContainerTemplate

clusterCaCert

Kafka 클러스터 인증서 공개 키가 있는 시크릿용 템플릿입니다.

resourcetemplate

serviceAccount

Kafka 서비스 계정에 대한 템플릿입니다.

resourcetemplate

jmxSecret

Kafka 클러스터의 보안에 대한 템플릿입니다.

resourcetemplate

clusterRoleBinding

Kafka ClusterRoleBinding용 템플릿입니다.

resourcetemplate

podSet

Kafka StrimziPodSet 리소스에 대한 템플릿입니다.

resourcetemplate

4.2.34. StatefulSetTemplate 스키마 참조

사용 대상: KafkaClusterTemplate, ZookeeperClusterTemplate

Expand
속성설명

metadata

리소스에 적용되는 메타데이터입니다.

MetadataTemplate

podManagementPolicy

이 StatefulSet에 사용할 podManagementPolicy. 유효한 값은 ParallelOrderedReady 입니다. 기본값은 Parallel 입니다.

문자열 ([OrderedReady, Parallel] 중 하나)

4.2.35. MetadataTemplate 스키마 참조

BuildConfigTemplate, DeploymentTemplate, InternalServiceTemplate, PodDisruptionBudgetTemplate, PodTemplate, ResourceTemplate, StatefulSetTemplate

MetadataTemplate 스키마 속성의 전체 목록

레이블주석 은 리소스를 식별하고 구성하는 데 사용되며 metadata 속성에서 구성됩니다.

예를 들면 다음과 같습니다.

# ...
template:
  pod:
    metadata:
      labels:
        label1: value1
        label2: value2
      annotations:
        annotation1: value1
        annotation2: value2
# ...

labelsannotations 필드에는 예약된 문자열 strimzi.io 가 포함되지 않은 레이블 또는 주석이 포함될 수 있습니다. strimzi.io 가 포함된 레이블 및 주석은 AMQ Streams에서 내부적으로 사용되며 구성할 수 없습니다.

4.2.35.1. MetadataTemplate 스키마 속성

Expand
속성설명

labels

OpenShift 리소스에 추가된 라벨입니다.

map

annotations

OpenShift 리소스에 추가된 주석입니다.

map

4.2.36. PodTemplate 스키마 참조

에 사용됨: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, ZookeeperClusterTemplate

PodTemplate 스키마 속성의 전체 목록

Kafka Pod에 대한 템플릿을 구성합니다.

PodTemplate 구성의 예

# ...
template:
  pod:
    metadata:
      labels:
        label1: value1
      annotations:
        anno1: value1
    imagePullSecrets:
      - name: my-docker-credentials
    securityContext:
      runAsUser: 1000001
      fsGroup: 0
    terminationGracePeriodSeconds: 120
# ...

4.2.36.1. hostAliases

hostAliases 속성을 사용하여 포드의 /etc/hosts 파일에 삽입되는 호스트 및 IP 주소 목록을 지정합니다.

이 구성은 클러스터 외부의 연결도 사용자가 요청한 경우 Kafka Connect 또는 MirrorMaker에 유용합니다.

hostAliases 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
#...
spec:
  # ...
  template:
    pod:
      hostAliases:
      - ip: "192.168.1.86"
        hostnames:
        - "my-host-1"
        - "my-host-2"
      #...

4.2.36.2. PodTemplate 스키마 속성

Expand
속성설명

metadata

리소스에 적용되는 메타데이터입니다.

MetadataTemplate

imagePullSecrets

이 포드에서 사용하는 이미지를 가져오는 데 사용할 동일한 네임스페이스의 보안에 대한 참조 목록입니다. Cluster Operator의 STRIMZI_IMAGE_PULL_SECRETS 환경 변수가 지정되고 imagePullSecrets 옵션만 사용되며 STRIMZI_IMAGE_PULL_SECRETS 변수도 무시됩니다. 자세한 내용은 core/v1 localobjectreference 의 외부 설명서를 참조하십시오.

LocalObjectReference 배열

securityContext

Pod 수준 보안 속성 및 공통 컨테이너 설정을 구성합니다. 자세한 내용은 core/v1 podsecuritycontext 에 대한 외부 설명서 를 참조하십시오.

PodSecurityContext

terminationGracePeriodSeconds

유예 기간은 Pod에서 실행되는 프로세스가 종료 신호를 보낸 후 시간(초)이며 프로세스가 강제 종료 신호로 중지되는 시간입니다. 이 값을 프로세스에 예상 정리 시간보다 길게 설정합니다. value는 음수가 아닌 정수여야 합니다. 0 값은 즉시 삭제를 나타냅니다. Kafka 브로커가 종료되기 전에 다른 브로커로 작업을 전송할 수 있도록 매우 큰 Kafka 클러스터의 유예 기간을 늘려야 할 수 있습니다. 기본값은 30초입니다.

integer

유사성

Pod의 유사성 규칙입니다. 자세한 내용은 core/v1 유사성에 대한 외부 설명서를 참조하십시오.

유사성

허용 오차

Pod의 허용 오차입니다. 자세한 내용은 core/v1 허용 오차에 대한 외부 설명서 를 참조하십시오.

허용 오차 배열

priorityClassName

Pod에 우선순위를 할당하는 데 사용되는 우선순위 클래스의 이름입니다. 우선순위 클래스에 대한 자세한 내용은 Pod 우선 순위 및 선점을 참조하십시오.

string

schedulerName

Pod 를 디스패치하는 데 사용되는 스케줄러의 이름입니다. 지정하지 않으면 기본 스케줄러가 사용됩니다.

string

hostAliases

Pod의 HostAliases입니다. hostAliases는 지정된 경우 Pod의 호스트 파일에 삽입할 호스트 및 IP의 선택적 목록입니다. 자세한 내용은 core/v1 hostalias에 대한 외부 설명서 를 참조하십시오.

HostAlias 배열

tmpDirSizeLimit

임시 EmptyDir 볼륨(/tmp)에 필요한 로컬 스토리지의 총 양(예: 1Gi)을 정의합니다. 기본값은 5Mi 입니다.

string

enableServiceLinks

서비스에 대한 정보를 Pod의 환경 변수에 삽입해야 하는지 여부를 나타냅니다.

boolean

topologySpreadConstraints

Pod의 토폴로지 분배 제약 조건입니다. 자세한 내용은 core/v1 topologyspreadconstraint에 대한 외부 설명서 를 참조하십시오.

TopologySpreadConstraint array

4.2.37. InternalServiceTemplate 스키마 참조

에 사용: CruiseControlTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, ZookeeperClusterTemplate

Expand
속성설명

metadata

리소스에 적용되는 메타데이터입니다.

MetadataTemplate

ipFamilyPolicy

서비스에서 사용하는 IP 제품군 정책을 지정합니다. 사용 가능한 옵션은 SingleStack,PreferDualStackRequireDualStack 입니다. SingleStack 은 단일 IP 제품군을 위한 것입니다. PreferDualStack 은 듀얼 스택 구성 클러스터에서 두 개의 IP 제품군 또는 단일 스택 클러스터의 단일 IP 제품군에 사용됩니다. 듀얼 스택 구성 클러스터에 두 개의 IP 제품군이 없는 한 RequireDualStack 이 실패합니다. 지정되지 않은 경우 OpenShift는 서비스 유형에 따라 기본값을 선택합니다.

문자열([RequireDualStack, SingleStack, PreferDualStack] 중 하나)

ipFamilies

서비스에서 사용하는 IP Families를 지정합니다. 사용 가능한 옵션은 IPv4IPv6입니다. 지정되지 않은 경우 OpenShift는 'ipFamilyPolicy 설정을 기반으로 기본값을 선택합니다.

문자열([IPv6, IPv4]) 배열 중 하나 이상

4.2.38. resourcetemplate 스키마 참조

사용됨: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, KafkaUserTemplate, ZookeeperClusterTemplate

Expand
속성설명

metadata

리소스에 적용되는 메타데이터입니다.

MetadataTemplate

4.2.39. PodDisruptionBudgetTemplate 스키마 참조

에 사용됨: CruiseControlTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaMirrorMakerTemplate, ZookeeperClusterTemplate

PodDisruptionBudgetTemplate 스키마 속성의 전체 목록

PDB( PodDisruptionBudget )는 계획된 유지 관리 또는 업그레이드 중에 사용할 수 있어야 하는 최소 Pod 수를 지정하여 고가용성을 보장하는 OpenShift 리소스입니다. AMQ Streams는 모든 새로운 StrimziPodSet 또는 Deployment 에 대해 PDB를 생성합니다. 기본적으로 PDB를 사용하면 언제든지 하나의 Pod만 사용할 수 없습니다. maxUnavailable 속성의 기본값을 변경하여 허용된 사용 불가능한 Pod 수를 늘릴 수 있습니다.

StrimziPodSet 사용자 정의 리소스는 maxUnavailable 값을 직접 사용할 수 없는 사용자 정의 컨트롤러를 사용하여 Pod를 관리합니다. 대신 다음 예에 설명된 대로 PDB 리소스를 생성할 때 maxUnavailable 값이 자동으로 minAvailable 값으로 변환됩니다.

  • Kafka 리소스에 세 개의 브로커 Pod가 있고 maxUnavailable 속성이 1 로 설정된 경우 minAvailable 설정은 2 이며 하나의 Pod를 사용할 수 없습니다.
  • 세 개의 브로커 Pod가 있고 maxUnavailable 속성이 0 (0)으로 설정된 경우 minAvailable 설정이 3 입니다. 3개의 브로커 Pod를 모두 사용할 수 있어야 하며 Pod가 0이 아닐 수 없습니다.

PodDisruptionBudget 템플릿 구성의 예

# ...
template:
  podDisruptionBudget:
    metadata:
      labels:
        key1: label1
        key2: label2
      annotations:
        key1: label1
        key2: label2
    maxUnavailable: 1
# ...

4.2.39.1. PodDisruptionBudgetTemplate 스키마 속성

Expand
속성설명

metadata

PodDisruptionBudgetTemplate 리소스에 적용할 메타데이터입니다.

MetadataTemplate

maxUnavailable

자동 Pod 제거를 허용하는 사용할 수 없는 최대 Pod 수입니다. 제거 후 maxUnavailable Pod 수를 사용할 수 없거나 더 적은 수의 Pod를 사용할 수 없는 경우 Pod 제거가 허용됩니다. 이 값을 0으로 설정하면 모든 자발적으로 제거를 방지하므로 Pod를 수동으로 제거해야 합니다. 기본값은 1입니다.

integer

4.2.40. ContainerTemplate 스키마 참조

에 사용됨: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, ZookeeperClusterTemplate

ContainerTemplate 스키마 속성의 전체 목록

컨테이너에 대한 사용자 정의 보안 컨텍스트 및 환경 변수를 설정할 수 있습니다.

환경 변수는 env 속성 아래에 namevalue 필드가 있는 오브젝트 목록으로 정의됩니다. 다음 예제에서는 Kafka 브로커 컨테이너에 설정된 두 가지 사용자 지정 환경 변수와 사용자 정의 보안 컨텍스트를 보여줍니다.

# ...
template:
  kafkaContainer:
    env:
    - name: EXAMPLE_ENV_1
      value: example.env.one
    - name: EXAMPLE_ENV_2
      value: example.env.two
    securityContext:
      runAsUser: 2000
# ...

KAFKA_ 접두사가 붙은 환경 변수는 AMQ Streams의 내부이며 피해야 합니다. AMQ Streams에서 이미 사용 중인 사용자 정의 환경 변수를 설정하면 무시되고 경고가 로그에 기록됩니다.

4.2.40.1. ContainerTemplate 스키마 속성

Expand
속성설명

env

컨테이너에 적용해야 하는 환경 변수.

ContainerEnvVar array

securityContext

컨테이너의 보안 컨텍스트입니다. 자세한 내용은 core/v1 securitycontext에 대한 외부 설명서 를 참조하십시오.

SecurityContext

4.2.41. ContainerEnvVar schema reference

사용 위치: ContainerTemplate

Expand
속성설명

name

환경 변수 키입니다.

string

value

환경 변수 값입니다.

string

4.2.42. ZookeeperClusterSpec 스키마 참조

사용 대상: KafkaSpec

ZookeeperClusterSpec 스키마 속성의 전체 목록

ZooKeeper 클러스터를 구성합니다.

4.2.42.1. config

config 속성을 사용하여 ZooKeeper 옵션을 키로 구성합니다.

값은 다음 JSON 유형 중 하나일 수 있습니다.

  • 문자열
  • 숫자
  • 부울

예외

ZooKeeper 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다.

그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.

  • 보안(암호화, 인증 및 권한 부여)
  • 리스너 구성
  • 데이터 디렉터리 구성
  • zookeeper 클러스터 구성

다음 접두사가 있는 속성은 설정할 수 없습니다.

  • 4lw.commands.whitelist
  • authProvider
  • clientPort
  • dataDir
  • dataLogDir
  • quorum.auth
  • reconfigEnabled
  • requireClientAuthScheme
  • secureClientPort
  • 서버.
  • snapshot.trust.empty
  • standaloneEnabled
  • serverCnxnFactory
  • ssl.
  • sslQuorum

config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음과 같은 예외를 포함하여 ZooKeeper로 전달됩니다.

ZooKeeper 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  kafka:
    # ...
  zookeeper:
    # ...
    config:
      autopurge.snapRetainCount: 3
      autopurge.purgeInterval: 2
    # ...

4.2.42.2. logging

zookeeper에는 구성 가능한 로거가 있습니다.

  • zookeeper.root.logger

zookeeper는 Apache log4j 로거 구현을 사용합니다.

로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.

로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.namelogging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.

여기서는 인라인외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.

인라인 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  zookeeper:
    # ...
    logging:
      type: inline
      loggers:
        zookeeper.root.logger: INFO
        log4j.logger.org.apache.zookeeper.server.FinalRequestProcessor: TRACE
        log4j.logger.org.apache.zookeeper.server.ZooKeeperServer: DEBUG
    # ...

참고

로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  zookeeper:
    # ...
    logging:
      type: external
      valueFrom:
        configMapKeyRef:
          name: customConfigMap
          key: zookeeper-log4j.properties
  # ...

garbage collector(GC)

가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.

4.2.42.3. ZookeeperClusterSpec 스키마 속성

Expand
속성설명

replicas

클러스터의 Pod 수입니다.

integer

image

포드의 Docker 이미지입니다.

string

storage

스토리지 구성(디스크). CamelCase로 유형은 지정된 오브젝트 내의 storage.type 속성 값에 따라 달라지며, 이는 [ephemeral, persistent-claim] 중 하나여야 합니다.

EphemeralStorage, PersistentClaimStorage

config

ZooKeeper 브로커 구성입니다. 다음 접두사가 있는 속성은 설정할 수 없습니다., dataDir, dataLogDir, clientPort, authProvider, authProvider, quorum.auth, requireClientAuthScheme, snapshot.trust.empty, standaloneEnabled, reconfigEnabled, 4lw.commands.whitelist, secureClientPort, ssl., serverCnxnFactory, sslQuorum(ssl.protocol, ssl.quorum.protocol, ssl.enabledProtocols, ssl.quorum.enabledProtocols, ssl.ciphersuites, ssl.quorum.ciphersuites, ssl.hostnameVerification 제외) SSL.quorum.hostnameVerification).

map

livenessProbe

Pod 활성 검사입니다.

probe

readinessProbe

Pod 준비 상태 확인

probe

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

jmxOptions

Zookeeper 노드를 위한 Options입니다.

KafkaJmxOptions

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

metricsConfig

지표 구성. 유형은 지정된 오브젝트 내의 metricsConfig.type 속성 값에 따라 달라지며, 이는 [jmxPrometheusExporter] 중 하나여야 합니다.

JmxPrometheusExporterMetrics

logging

ZooKeeper에 대한 로깅 구성입니다. 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

template

ZooKeeper 클러스터 리소스에 대한 템플릿입니다. 템플릿을 사용하면 OpenShift 리소스 생성 방법을 지정할 수 있습니다.

ZookeeperClusterTemplate

4.2.43. ZookeeperClusterTemplate 스키마 참조

사용 대상: ZookeeperClusterSpec

Expand
속성설명

statefulset

statefulset 속성이 더 이상 사용되지 않습니다. StatefulSets에 대한 지원이 AMQ Streams 2.5에서 제거되었습니다. 이 속성은 무시됩니다. ZooKeeper StatefulSet 용 템플릿 .

StatefulSetTemplate

Pod

ZooKeeper Pod 용 템플릿 .

PodTemplate

clientService

ZooKeeper 클라이언트 서비스 용 템플릿 .

InternalServiceTemplate

nodesService

ZooKeeper 노드 서비스 템플릿.

InternalServiceTemplate

persistentVolumeClaim

모든 ZooKeeper PersistentVolumeClaims 에 대한 템플릿 .

resourcetemplate

podDisruptionBudget

ZooKeeper PodDisruptionBudget 용 템플릿.

PodDisruptionBudgetTemplate

zookeeperContainer

ZooKeeper 컨테이너용 템플릿입니다.

ContainerTemplate

serviceAccount

ZooKeeper 서비스 계정용 템플릿입니다.

resourcetemplate

jmxSecret

Zookeeper 클러스터의 시크릿에 대한 템플릿입니다.

resourcetemplate

podSet

ZooKeeper StrimziPodSet 리소스용 템플릿입니다.

resourcetemplate

4.2.44. EntityOperatorSpec schema reference

사용 대상: KafkaSpec

Expand
속성설명

topicOperator

주제 Operator 구성.

EntityTopicOperatorSpec

userOperator

User Operator 구성.

EntityUserOperatorSpec

tlsSidecar

TLS 사이드카 구성입니다.

TlsSidecar

template

엔터티 Operator 리소스에 대한 템플릿입니다. 템플릿을 사용하면 배포Pod 가 생성되는 방법을 지정할 수 있습니다.

EntityOperatorTemplate

4.2.45. EntityTopicOperatorSpec schema reference

사용됨: entityOperatorSpec

EntityTopicOperatorSpec 스키마 속성의 전체 목록

주제 Operator를 구성합니다.

4.2.45.1. logging

Topic Operator에는 구성 가능한 로거가 있습니다.

  • rootLogger.level

Topic Operator는 Apache log4j2 로거 구현을 사용합니다.

Kafka 리소스 Kafka 리소스의 entityOperator.topicOperator 필드에 logging 속성을 사용하여 로거 및 로거 수준을 구성합니다.

로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j2.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.namelogging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.

여기서는 인라인외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.

인라인 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    topicOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
      logging:
        type: inline
        loggers:
          rootLogger.level: INFO
          logger.top.name: io.strimzi.operator.topic 
1

          logger.top.level: DEBUG 
2

          logger.toc.name: io.strimzi.operator.topic.TopicOperator 
3

          logger.toc.level: TRACE 
4

          logger.clients.level: DEBUG 
5

  # ...

1
주제 패키지에 대한 로거를 생성합니다.
2
topic 패키지의 로깅 수준을 설정합니다.
3
TopicOperator 클래스에 대한 로거를 생성합니다.
4
TopicOperator 클래스의 로깅 수준을 설정합니다.
5
기본 클라이언트 로거의 로깅 수준을 변경합니다. 클라이언트 로거는 AMQ Streams와 함께 제공되는 로깅 구성의 일부입니다. 기본적으로는 INFO 로 설정됩니다.
참고

Operator의 문제를 조사할 때 일반적으로 더 자세한 로그를 얻기 위해 rootLoggerDEBUG 로 변경하는 것으로 충분합니다. 그러나 로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    topicOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
      logging:
        type: external
        valueFrom:
          configMapKeyRef:
            name: customConfigMap
            key: topic-operator-log4j2.properties
  # ...

garbage collector(GC)

가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.

4.2.45.2. EntityTopicOperatorSpec 스키마 속성

Expand
속성설명

watchedNamespace

Topic Operator가 조사해야 하는 네임스페이스입니다.

string

image

Topic Operator에 사용할 이미지입니다.

string

reconciliationIntervalSeconds

정기적인 조정 간격입니다.

integer

zookeeperSessionTimeoutSeconds

ZooKeeper 세션에 대한 시간 초과입니다.

integer

startupProbe

Pod 시작 확인.

probe

livenessProbe

Pod 활성 검사입니다.

probe

readinessProbe

Pod 준비 상태 확인

probe

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

topicMetadataMaxAttempts

주제 메타데이터를 가져오는 시도 횟수입니다.

integer

logging

로깅 구성. 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

4.2.46. EntityUserOperatorSpec 스키마 참조

사용됨: entityOperatorSpec

EntityUserOperatorSpec 스키마 속성의 전체 목록

사용자 Operator를 구성합니다.

4.2.46.1. logging

User Operator에 구성 가능한 로거가 있습니다.

  • rootLogger.level

User Operator는 Apache log4j2 로거 구현을 사용합니다.

Kafka 리소스의 entityOperator.userOperator 필드에 logging 속성을 사용하여 로거 및 로거 수준을 구성합니다.

로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j2.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.namelogging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.

여기서는 인라인외부 로깅의 예를 참조하십시오. 인라인 로깅은 rootLogger.level 을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.

인라인 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    userOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
      logging:
        type: inline
        loggers:
          rootLogger.level: INFO
          logger.uop.name: io.strimzi.operator.user 
1

          logger.uop.level: DEBUG 
2

          logger.abstractcache.name: io.strimzi.operator.user.operator.cache.AbstractCache 
3

          logger.abstractcache.level: TRACE 
4

          logger.jetty.level: DEBUG 
5


  # ...

1
사용자 패키지에 대한 로거를 생성합니다.
2
사용자 패키지의 로깅 수준을 설정합니다.
3
AbstractCache 클래스에 대한 로거를 생성합니다.
4
AbstractCache 클래스의 로깅 수준을 설정합니다.
5
기본 jetty 로거의 로깅 수준을 변경합니다. jetty 로거는 AMQ Streams와 함께 제공되는 로깅 구성의 일부입니다. 기본적으로는 INFO 로 설정됩니다.
참고

Operator의 문제를 조사할 때 일반적으로 더 자세한 로그를 얻기 위해 rootLoggerDEBUG 로 변경하는 것으로 충분합니다. 그러나 로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    userOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
      logging:
        type: external
        valueFrom:
          configMapKeyRef:
            name: customConfigMap
            key: user-operator-log4j2.properties
   # ...

garbage collector(GC)

가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.

4.2.46.2. EntityUserOperatorSpec 스키마 속성

Expand
속성설명

watchedNamespace

User Operator가 조사해야 하는 네임스페이스입니다.

string

image

User Operator에 사용할 이미지입니다.

string

reconciliationIntervalSeconds

정기적인 조정 간격입니다.

integer

zookeeperSessionTimeoutSeconds

zookeeperSessionTimeoutSeconds 속성이 더 이상 사용되지 않습니다. 이 속성은 User Operator에서 더 이상 ZooKeeper를 사용하지 않기 때문에 더 이상 사용되지 않습니다. ZooKeeper 세션에 대한 시간 초과입니다.

integer

secretPrefix

Secret 이름으로 사용할 KafkaUser 이름에 추가할 접두사입니다.

string

livenessProbe

Pod 활성 검사입니다.

probe

readinessProbe

Pod 준비 상태 확인

probe

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

logging

로깅 구성. 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

4.2.47. TlsSidecar 스키마 참조

사용됨: CruiseControlSpec, EntityOperatorSpec

TlsSidecar 스키마 속성의 전체 목록

Pod에서 실행되는 컨테이너이지만 지원 목적을 제공하는 TLS 사이드카를 구성합니다. AMQ Streams에서 TLS 사이드카는 TLS를 사용하여 구성 요소와 ZooKeeper 간의 통신을 암호화하고 해독합니다.

TLS 사이드카는 Entity Operator에서 사용됩니다.

TLS 사이드카는 Kafka.spec.entityOperatortlsSidecar 속성을 사용하여 구성됩니다.

TLS 사이드카는 다음과 같은 추가 옵션을 지원합니다.

  • image
  • resources
  • logLevel
  • readinessProbe
  • livenessProbe

resources 속성은 TLS 사이드카에 할당된 메모리 및 CPU 리소스를 지정합니다.

image 속성은 사용할 컨테이너 이미지를 구성합니다.

readinessProbelivenessProbe 속성은 TLS 사이드카에 대한 상태 점검 프로브를 구성합니다.

logLevel 속성은 로깅 수준을 지정합니다. 다음과 같은 로깅 수준이 지원됩니다.

  • emerg
  • 경고
  • Crit
  • err
  • 경고
  • notice
  • info
  • debug

기본값은 notice 입니다.

TLS 사이드카 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  entityOperator:
    # ...
    tlsSidecar:
      resources:
        requests:
          cpu: 200m
          memory: 64Mi
        limits:
          cpu: 500m
          memory: 128Mi
    # ...

4.2.47.1. TlsSidecar 스키마 속성

Expand
속성설명

image

컨테이너의 Docker 이미지입니다.

string

livenessProbe

Pod 활성 검사입니다.

probe

logLevel

TLS 사이드카의 로그 수준입니다. 기본값은 notice 입니다.

문자열 ([emerg, debug, crit, err, alert, notice, info] 중 하나)

readinessProbe

Pod 준비 상태 확인

probe

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

4.2.48. EntityOperatorTemplate 스키마 참조

사용됨: entityOperatorSpec

Expand
속성설명

Deployment

엔터티 Operator 배포를 위한 템플릿 입니다.

DeploymentTemplate

Pod

엔터티 Operator Pod 용 템플릿 .

PodTemplate

topicOperatorContainer

Entity Topic Operator 컨테이너의 템플릿입니다.

ContainerTemplate

userOperatorContainer

Entity User Operator 컨테이너용 템플릿입니다.

ContainerTemplate

tlsSidecarContainer

Entity Operator TLS 사이드카 컨테이너용 템플릿입니다.

ContainerTemplate

serviceAccount

Entity Operator 서비스 계정에 대한 템플릿입니다.

resourcetemplate

entityOperatorRole

Entity Operator 역할에 대한 템플릿입니다.

resourcetemplate

topicOperatorRoleBinding

Entity Topic Operator RoleBinding에 대한 템플릿입니다.

resourcetemplate

userOperatorRoleBinding

Entity Topic Operator RoleBinding에 대한 템플릿입니다.

resourcetemplate

4.2.49. DeploymentTemplate 스키마 참조

에 사용: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate

DeploymentTemplate 스키마 속성의 전체 목록

deploymentStrategy 를 사용하여 배포 구성이 변경될 때 이전 Pod를 새 Pod로 교체하는 데 사용되는 전략을 지정합니다.

다음 값 중 하나를 사용합니다.

  • RollingUpdate: Pod가 다운타임이 0으로 재시작됩니다.
  • recreate: 새 Pod가 생성되기 전에 Pod가 종료됩니다.

Recreate 배포 전략을 사용하면 예비 리소스가 필요하지 않은 이점이 있지만 단점은 애플리케이션 다운 타임입니다.

배포 전략을 Recreate 로 설정하는 예.

# ...
template:
  deployment:
    deploymentStrategy: Recreate
# ...

이 구성 변경으로 인해 롤링 업데이트가 발생하지 않습니다.

4.2.49.1. DeploymentTemplate 스키마 속성

Expand
속성설명

metadata

리소스에 적용되는 메타데이터입니다.

MetadataTemplate

deploymentStrategy

배포 구성 변경에 대한 Pod 교체 전략입니다. 유효한 값은 RollingUpdateRecreate 입니다. 기본값은 RollingUpdate 입니다.

문자열([RollingUpdate, Recreate] 중 하나)

4.2.50. certificateAuthority 스키마 참조

사용 대상: KafkaSpec

클러스터 내에서 TLS 인증서가 사용되는 방법에 대한 구성입니다. 이는 클러스터 내의 내부 통신과 Kafka.spec.kafka.listeners.tls 를 통한 클라이언트 액세스에 사용되는 인증서에 모두 사용되는 인증서에 적용됩니다.

Expand
속성설명

generateCertificateAuthority

true인 경우 인증 기관 인증서가 자동으로 생성됩니다. 그렇지 않으면 사용자가 CA 인증서를 Secret에 제공해야 합니다. 기본값은 true입니다.

boolean

generateSecretOwnerReference

true 인 경우 클러스터 및 클라이언트 CA 시크릿은 ownerReferenceKafka 리소스로 설정하여 구성됩니다. Kafka 리소스가 true 인 경우 CA 시크릿도 삭제됩니다. false 인 경우 ownerReference 가 비활성화됩니다. Kafka 리소스가 false 인 경우 삭제되면 CA 시크릿이 유지되고 재사용에 사용할 수 있습니다. 기본값은 true 입니다.

boolean

validityDays

생성된 인증서의 수는 다음에 대해 유효해야 합니다. 기본값은 365입니다.

integer

renewalDays

인증서 갱신 기간의 일 수입니다. 이는 갱신 작업을 수행할 수 있는 인증서가 만료되기 전의 날입니다. generateCertificateAuthority 가 true이면 새 인증서가 생성됩니다. generateCertificateAuthority 가 true이면 보류 중인 인증서 만료에 대한 WARN 수준에서 추가 로깅이 발생합니다. 기본값은 30입니다.

integer

certificateExpirationPolicy

generateCertificateAuthority=true 인 경우 CA 인증서 만료를 처리하는 방법은 무엇입니까. 기본값은 기존 개인 키를 재사용하여 생성할 새 CA 인증서의 기본값입니다.

문자열 ([replace-key, renew-certificate] 중 하나)

4.2.51. CruiseControlSpec 스키마 참조

사용 대상: KafkaSpec

CruiseControlSpec 스키마 속성의 전체 목록

Cruise Control 클러스터를 구성합니다.

구성 옵션은 다음과 관련이 있습니다.

  • 목표 구성
  • 리소스 배포 목표에 대한 용량 제한

4.2.51.1. config

config 속성을 사용하여 Cruise Control 옵션을 키로 구성합니다.

값은 다음 JSON 유형 중 하나일 수 있습니다.

  • 문자열
  • 숫자
  • 부울

예외

Cruise Control 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다.

그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.

  • 보안(암호화, 인증 및 권한 부여)
  • Kafka 클러스터에 대한 연결
  • 클라이언트 ID 구성
  • zookeeper 연결
  • 웹 서버 구성
  • 자체 복구

다음 접두사가 있는 속성은 설정할 수 없습니다.

  • bootstrap.servers
  • capacity.config.file
  • client.id
  • failed.brokers.zk.path
  • kafka.broker.failure.detection.enable
  • metric.reporter.sampler.bootstrap.servers
  • 네트워크.
  • request.reason.required
  • 보안.
  • self.healing.
  • ssl.
  • topic.config.provider.class
  • two.step.
  • webserver.accesslog.
  • webserver.api.urlprefix
  • webserver.http.
  • webserver.session.path
  • zookeeper입니다.

config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음과 같은 예외를 포함하여 Cruise Control로 전달됩니다.

Cruise Control 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    config:
      # Note that `default.goals` (superset) must also include all `hard.goals` (subset)
      default.goals: >
        com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal,
        com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal
      hard.goals: >
        com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal
      cpu.balance.threshold: 1.1
      metadata.max.age.ms: 300000
      send.buffer.bytes: 131072
      webserver.http.cors.enabled: true
      webserver.http.cors.origin: "*"
      webserver.http.cors.exposeheaders: "User-Task-ID,Content-Type"
    # ...

4.2.51.2. CORS(Cross-Origin Resource Sharing)

CORS(Cross-Origin Resource Sharing)는 REST API에 대한 액세스를 제어하기 위한 HTTP 메커니즘입니다. 제한 사항은 액세스 방법 또는 클라이언트 애플리케이션의 시작 URL에 있을 수 있습니다. 구성의 webserver.http.cors.enabled 속성을 사용하여 Cruise Control에서 CORS를 활성화할 수 있습니다. 활성화된 경우 CORS는 AMQ Streams와 다른 원래 URL이 있는 애플리케이션에서 Cruise Control REST API에 대한 읽기 액세스를 허용합니다. 이를 통해 애플리케이션은 지정된 원본의 애플리케이션에서 GET 요청을 사용하여 Cruise Control API를 통해 Kafka 클러스터에 대한 정보를 가져올 수 있습니다. 예를 들어 애플리케이션은 현재 클러스터 로드 또는 최신 최적화 제안에 대한 정보를 가져올 수 있습니다. POST 요청은 허용되지 않습니다.

참고

Cruise Control과 함께 CORS를 사용하는 방법에 대한 자세한 내용은 Cruise Control CloudEvent의 REST API를 참조하십시오.

Cruise Control에 대한 CORS 활성화

Kafka.spec.cruiseControl.config 에서 CORS를 활성화하고 구성합니다.

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    config:
      webserver.http.cors.enabled: true 
1

      webserver.http.cors.origin: "*" 
2

      webserver.http.cors.exposeheaders: "User-Task-ID,Content-Type" 
3


    # ...
1
CORS를 활성화합니다.
2
Access-Control-Allow-Origin HTTP 응답 헤더에 대해 허용된 원본을 지정합니다. 와일드카드를 사용하거나 단일 원본을 URL로 지정할 수 있습니다. 와일드카드를 사용하면 모든 원본에서 다음 요청이 반환됩니다.
3
Access-Control-Expose-Headers HTTP 응답 헤더에 지정된 헤더 이름을 노출합니다. 허용된 원본의 애플리케이션은 지정된 헤더로 응답을 읽을 수 있습니다.

4.2.51.3. Cruise Control REST API 보안

Cruise Control REST API는 HTTP Basic 인증 및 SSL로 보호되어 Kafka 브로커 해제와 같은 잠재적으로 안전하지 않은 Cruise Control 작업으로부터 클러스터를 보호합니다. AMQ Streams의 Cruise Control은 이러한 설정을 활성화된 경우에만 사용하는 것이 좋습니다.

그러나 다음 Cruise Control 구성을 지정하여 이러한 설정을 비활성화할 수 있습니다.

  • 기본 제공 HTTP 기본 인증을 비활성화하려면 webserver.security.enablefalse 로 설정합니다.
  • 기본 제공 SSL을 비활성화하려면 webserver.ssl.enablefalse 로 설정합니다.

API 권한 부여, 인증 및 SSL을 비활성화하는 Cruise Control 구성

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    config:
      webserver.security.enable: false
      webserver.ssl.enable: false
# ...

4.2.51.4. brokerCapacity

Cruise Control은 용량 제한을 사용하여 리소스 용량 제한에 대한 최적화 목표를 손상시킵니다. 이러한 유형의 목표는 다음과 같습니다.

  • DiskCapacityGoal - 디스크 사용률 용량
  • CpuCapacityGoal - CPU 사용률 용량
  • NetworkInboundCapacityGoal - 네트워크 인바운드 사용 용량
  • NetworkOutboundCapacityGoal - 네트워크 아웃바운드 사용률 용량

Kafka.spec.cruiseControlbrokerCapacity 속성에서 Kafka 브로커 리소스에 대한 용량 제한을 지정합니다. 기본적으로 활성화되어 있으며 기본값을 변경할 수 있습니다. 다음 브로커 리소스에 대해 용량 제한을 설정할 수 있습니다.

  • cpu - 밀리코어 또는 CPU 코어의 CPU 리소스(기본값: 1)
  • inboundNetwork - 초당 바이트 단위의 인바운드 네트워크 처리량(기본값: 10000KiB/s)
  • outboundNetwork - 초당 바이트 단위의 아웃 바운드 네트워크 처리량(기본값: 10000KiB/s)

네트워크 처리량의 경우 표준 OpenShift 바이트 단위(K, M, G)와 함께 정수 값을 사용하거나 초당 Ki, Mi, Gi(Ki, Mi, Gi)에 해당하는 2바이트의 2바이트(위력)를 사용합니다.

참고

디스크 및 CPU 용량 제한은 AMQ Streams에 의해 자동으로 생성되므로 설정할 필요가 없습니다. CPU 목표를 사용할 때 정확한 리밸런스 제안을 보장하기 위해 Kafka.spec.kafka.resources 의 CPU 제한과 동일한 CPU 요청을 설정할 수 있습니다. 이렇게 하면 모든 CPU 리소스가 미리 예약되며 항상 사용할 수 있습니다. 이 구성을 통해 Cruise Control은 CPU 목표에 따라 리밸런스 제안을 준비할 때 CPU 사용률을 적절하게 평가할 수 있습니다. Kafka.spec.kafka.resources 의 CPU 제한과 동일한 CPU 요청을 설정할 수 없는 경우 동일한 정확도에 대해 CPU 용량을 수동으로 설정할 수 있습니다.

2바이트 단위를 사용한 Cruise Control brokerCapacity 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    brokerCapacity:
      cpu: "2"
      inboundNetwork: 10000KiB/s
      outboundNetwork: 10000KiB/s
    # ...

4.2.51.5. 용량 덮어쓰기

브로커는 이기종 네트워크 또는 CPU 리소스가 있는 노드에서 실행될 수 있습니다. 이 경우 각 브로커에 대해 네트워크 용량 및 CPU 제한을 설정하는 덮어쓰기 를 지정합니다. 이 덮어쓰기를 사용하면 브로커 간에 정확한 균형을 조정할 수 있습니다. 다음 브로커 리소스에 대해 덮어쓰기 용량 제한을 설정할 수 있습니다.

  • cpu - 밀리코어 또는 CPU 코어의 CPU 리소스(기본값: 1)
  • inboundNetwork - 초당 바이트 단위의 인바운드 네트워크 처리량(기본값: 10000KiB/s)
  • outboundNetwork - 초당 바이트 단위의 아웃 바운드 네트워크 처리량(기본값: 10000KiB/s)

Cruise Control 용량의 예는 2바이트 단위를 사용하여 구성을 재정의합니다.

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    brokerCapacity:
      cpu: "1"
      inboundNetwork: 10000KiB/s
      outboundNetwork: 10000KiB/s
      overrides:
      - brokers: [0]
        cpu: "2.755"
        inboundNetwork: 20000KiB/s
        outboundNetwork: 20000KiB/s
      - brokers: [1, 2]
        cpu: 3000m
        inboundNetwork: 30000KiB/s
        outboundNetwork: 30000KiB/s

자세한 내용은 BrokerCapacity 스키마 참조 를 참조하십시오.

4.2.51.6. logging

크루즈 컨트롤에는 자체 구성 가능한 로거가 있습니다.

  • rootLogger.level

cruise Control은 Apache log4j2 로거 구현을 사용합니다.

로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.

로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.namelogging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다.

여기서는 인라인외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.

인라인 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
# ...
spec:
  cruiseControl:
    # ...
    logging:
      type: inline
      loggers:
        rootLogger.level: INFO
        logger.exec.name: com.linkedin.kafka.cruisecontrol.executor.Executor 
1

        logger.exec.level: TRACE 
2

        logger.go.name: com.linkedin.kafka.cruisecontrol.analyzer.GoalOptimizer 
3

        logger.go.level: DEBUG 
4

    # ...

1
Cruise Control Executor 클래스에 대한 로거를 생성합니다.
2
Executor 클래스에 대한 로깅 수준을 설정합니다.
3
Cruise Control GoalOptimizer 클래스에 대한 로거를 생성합니다.
4
GoalOptimizer 클래스의 로깅 수준을 설정합니다.
참고

Cruise Control 관련 문제를 조사할 때 일반적으로 더 자세한 로그를 얻기 위해 rootLoggerDEBUG 로 변경하는 것으로 충분합니다. 그러나 로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
# ...
spec:
  cruiseControl:
    # ...
    logging:
      type: external
      valueFrom:
        configMapKeyRef:
          name: customConfigMap
          key: cruise-control-log4j.properties
    # ...

garbage collector(GC)

가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.

4.2.51.7. CruiseControlSpec 스키마 속성

Expand
속성설명

image

포드의 Docker 이미지입니다.

string

tlsSidecar

tlsSidecar 속성이 더 이상 사용되지 않습니다. TLS 사이드카 구성입니다.

TlsSidecar

resources

Cruise Control 컨테이너를 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

livenessProbe

Cruise Control 컨테이너에 대한 Pod 활성 검사입니다.

probe

readinessProbe

Cruise Control 컨테이너에 대한 Pod 준비 상태 검사

probe

jvmOptions

Cruise Control 컨테이너에 대한 JVM 옵션.

JvmOptions

logging

Cruise Control을 위한 로깅 구성(Log4j 2). 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

template

Cruise Control 리소스, 배포Pod가 생성되는 방법을 지정하는 템플릿입니다.

CruiseControlTemplate

brokerCapacity

Cruise Control brokerCapacity 구성입니다.

BrokerCapacity

config

크루즈 제어 구성. 전체 구성 옵션 목록은 https://github.com/linkedin/cruise-control/wiki/Configurations 에서 참조하십시오. 접두사가 있는 속성은 bootstrap.servers, client.id, zookeeper., network., network., security., failed.brokers.zk.path,webserver.http., webserver.urlprefix, webserver.path, webserver.accesslog., request.reason.required, request.reason.required, request.reason.required, metric.reporter.sampler.bootstrap.servers, capacity.config.file, self.config.file, self.healing., kafka.broker.failure.detection.enable, topic.config.provider.class (예: ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols, webserver.http.cors.enabled, webserver.http.cors.origin, webserver.http.cors.exposeheaders, webserver.security.enable, webserver.ssl.enable).

map

metricsConfig

지표 구성. 유형은 지정된 오브젝트 내의 metricsConfig.type 속성 값에 따라 달라지며, 이는 [jmxPrometheusExporter] 중 하나여야 합니다.

JmxPrometheusExporterMetrics

4.2.52. CruiseControlTemplate 스키마 참조

사용 대상: CruiseControlSpec

Expand
속성설명

Deployment

크루즈 제어 배포를 위한 템플릿 .

DeploymentTemplate

Pod

Cruise Control Pod 용 템플릿 .

PodTemplate

apiService

Cruise Control API Service 템플릿.

InternalServiceTemplate

podDisruptionBudget

Cruise Control PodDisruptionBudget 템플릿.

PodDisruptionBudgetTemplate

cruiseControlContainer

Cruise Control 컨테이너용 템플릿입니다.

ContainerTemplate

tlsSidecarContainer

tlsSidecarContainer 속성이 더 이상 사용되지 않습니다. Cruise Control TLS 사이드카 컨테이너용 템플릿입니다.

ContainerTemplate

serviceAccount

Cruise Control 서비스 계정에 대한 템플릿입니다.

resourcetemplate

4.2.53. BrokerCapacity 스키마 참조

사용 대상: CruiseControlSpec

Expand
속성설명

disk

disk 속성이 더 이상 사용되지 않습니다. Cruise Control 디스크 용량 설정은 더 이상 사용되지 않으며, 무시되며 향후 디스크에 대한 브로커 용량에서 바이트 단위로 제거됩니다. 표준 OpenShift 바이트 단위(K, M, G 또는 T), 해당 2바이트(Ki, Mi, Gi 또는 Ti) 또는 E 표기법이 있거나 사용하지 않고 바이트 값 중 하나에 숫자 값을 사용합니다. 예를 들어 100000M, 100000Mi, 104857600000 또는 1e+11입니다.

string

cpuUtilization

cpuUtilization 속성이 더 이상 사용되지 않습니다. Cruise Control CPU 용량 설정은 더 이상 사용되지 않으며 무시되며 향후 CPU 리소스 사용률에 대한 브로커 용량에서 백분율 (0 - 100)으로 제거됩니다.

integer

cpu

코어 또는 밀리코어의 CPU 리소스에 대한 브로커 용량입니다. 예를 들어 1, 1.500, 1500m입니다. 유효한 CPU 리소스 단위에 대한 자세한 내용은 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu 에서 참조하십시오.

string

inboundNetwork

초당 인바운드 네트워크 처리량을 위한 브로커 용량(바이트)입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s

string

outboundNetwork

초당 바이트 단위의 아웃바운드 네트워크 처리량을 위한 브로커 용량입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s

string

덮어쓰기

개별 브로커에 대한 재정의 overrides 속성을 사용하면 다른 브로커에 대해 다른 용량 구성을 지정할 수 있습니다.

BrokerCapacityOverride 배열

4.2.54. BrokerCapacityOverride 스키마 참조

사용 대상: BrokerCapacity

Expand
속성설명

brokers

Kafka 브로커 목록(broker 식별자).

정수 배열

cpu

코어 또는 밀리코어의 CPU 리소스에 대한 브로커 용량입니다. 예를 들어 1, 1.500, 1500m입니다. 유효한 CPU 리소스 단위에 대한 자세한 내용은 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu 에서 참조하십시오.

string

inboundNetwork

초당 인바운드 네트워크 처리량을 위한 브로커 용량(바이트)입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s

string

outboundNetwork

초당 바이트 단위의 아웃바운드 네트워크 처리량을 위한 브로커 용량입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s

string

4.2.55. JmxTransSpec schema reference

JmxTransSpec 유형이 더 이상 사용되지 않습니다.

사용 대상: KafkaSpec

Expand
속성설명

image

JmxTrans에 사용할 이미지입니다.

string

outputDefinitions

나중에 참조할 출력 호스트를 정의합니다. 이러한 속성에 대한 자세한 내용은 JmxTransOutputDefinitionTemplate 스키마 참조 를 참조하십시오.

JmxTransOutputDefinitionTemplate array

logLevel

JmxTrans 배포의 로깅 수준을 설정합니다. 자세한 내용은 JmxTrans Logging Level 을 참조하십시오.

string

kafkaQueries

Kafka 브로커로 보내 각 브로커에서 읽을 데이터를 정의하는 쿼리입니다. 이러한 속성에 대한 자세한 내용은 JmxTransQueryTemplate 스키마 참조 를 참조하십시오.

JmxTransQueryTemplate array

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

template

JmxTrans 리소스에 대한 템플릿입니다.

JmxTransTemplate

4.2.56. JmxTransOutputDefinitionTemplate schema reference

사용 대상: JmxTransSpec

Expand
속성설명

outputType

내보낼 데이터의 형식을 설정하기 위한 템플릿입니다. 자세한 내용은 JmxTrans OutputWriters 를 참조하십시오.

string

host

데이터를 내보낼 원격 호스트의 DNS/hostname입니다.

string

port

데이터를 푸시하는 원격 호스트의 포트입니다.

integer

flushDelayInSeconds

새 데이터 세트를 푸시하기 전에 JmxTrans가 대기하는 시간(초)입니다.

integer

typeNames

와일드카드 쿼리에 대한 응답으로 데이터를 필터링하기 위한 템플릿입니다. 자세한 내용은 JmxTrans 쿼리를 참조하십시오.

문자열 배열

name

출력 정의의 이름을 설정하기 위한 템플릿입니다. 이는 쿼리 결과를 전송해야 하는 위치를 식별하는 데 사용됩니다.

string

4.2.57. JmxTransQueryTemplate schema reference

사용 대상: JmxTransSpec

Expand
속성설명

targetMBean

특정가 아닌 와일드카드를 사용하는 경우 여러 data에서 데이터가 수집됩니다. 그러지 않으면 해당 지정된 태그에서 데이터가 수집됩니다.

string

속성

대상의 특성을 포함해야 하는 속성을 결정합니다.

문자열 배열

출력

spec.kafka.jmxTrans.outputDefinitions에 지정된 출력 정의 이름 목록 및 여기서 푸시된 위치 및 데이터 포멧을 정의합니다.

문자열 배열

4.2.58. JmxTransTemplate 스키마 참조

사용 대상: JmxTransSpec

Expand
속성설명

Deployment

JmxTrans Deployment 템플릿.

DeploymentTemplate

Pod

JmxTrans Pod 용 템플릿 .

PodTemplate

컨테이너

JmxTrans 컨테이너용 템플릿.

ContainerTemplate

serviceAccount

JmxTrans 서비스 계정에 대한 템플릿입니다.

resourcetemplate

4.2.59. KafkaExporterSpec schema reference

사용 대상: KafkaSpec

Expand
속성설명

image

포드의 Docker 이미지입니다.

string

groupRegex

수집할 소비자 그룹을 지정하는 정규식입니다. 기본값은 .* 입니다.

string

topicRegex

수집할 주제를 지정하는 정규식입니다. 기본값은 .* 입니다.

string

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

logging

지정된 심각도 또는 위의 메시지만 기록합니다. 유효한 수준: [info,debug,trace]. 기본 로그 수준은 info 입니다.

string

enableSaramaLogging

Kafka Exporter에서 사용하는 Go 클라이언트 라이브러리인 Sarama 로깅을 활성화합니다.

boolean

template

배포 템플릿 및 포드 사용자 지정.

KafkaExporterTemplate

livenessProbe

Pod 활동성 점검입니다.

probe

readinessProbe

Pod 준비 상태 점검.

probe

4.2.60. KafkaExporterTemplate 스키마 참조

사용 대상: KafkaExporterSpec

Expand
속성설명

Deployment

Kafka 내보내기 배포를 위한 템플릿 .

DeploymentTemplate

Pod

Kafka 내보내기 포드 용 템플릿 .

PodTemplate

service

service 속성이 더 이상 사용되지 않습니다. Kafka 내보내기 서비스가 제거되었습니다. Kafka 내보내기 서비스 템플릿.

resourcetemplate

컨테이너

Kafka 내보내기 컨테이너용 템플릿입니다.

ContainerTemplate

serviceAccount

Kafka Exporter 서비스 계정에 대한 템플릿입니다.

resourcetemplate

4.2.61. KafkaStatus 스키마 참조

사용 대상: Kafka

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

리스너

내부 및 외부 리스너 주소입니다.

ListenerStatus 배열

clusterId

Kafka 클러스터 ID.

string

4.2.62. 조건 스키마 참조

사용됨: KafkaBridgeStatus, KafkaConnectorStatus, KafkaConnectStatus, KafkaMirrorMaker2Status, KafkaMirrorMakerStatus, KafkaRebalanceStatus, KafkaStatus, KafkaTopicStatus, KafkaUserStatus

Expand
속성설명

type

리소스의 다른 조건을 구분하는 데 사용되는 조건의 고유 식별자입니다.

string

status

조건의 상태, 즉 True, False 또는 Unknown입니다.

string

lastTransitionTime

형식의 조건이 하나의 상태에서 다른 상태로 변경 된 마지막 시간입니다. 필요한 형식은 UTC 시간대의 'yyy-MM-ddTHH:mm:ssZ'입니다.

string

reason

조건의 마지막 전환 이유( CamelCase의 단일 단어).

string

message

조건의 마지막 전환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다.

string

4.2.63. ListenerStatus 스키마 참조

사용 대상: KafkaStatus

Expand
속성설명

type

type 속성은 더 이상 사용되지 않으며 이제 name 을 사용하여 구성해야 합니다. 리스너의 이름입니다.

string

name

리스너의 이름입니다.

string

주소

이 리스너의 주소 목록입니다.

ListenerAddress 배열

bootstrapServers

이 리스너를 사용하여 Kafka 클러스터에 연결하기 위한 쉼표로 구분된 host:port 쌍 목록입니다.

string

certificates

지정된 리스너에 연결할 때 서버의 ID를 확인하는 데 사용할 수 있는 TLS 인증서 목록입니다. tls외부 리스너만 설정합니다.

문자열 배열

4.2.64. ListenerAddress 스키마 참조

사용 대상: ListenerStatus

Expand
속성설명

host

Kafka 부트스트랩 서비스의 DNS 이름 또는 IP 주소입니다.

string

port

Kafka 부트스트랩 서비스의 포트입니다.

integer

4.2.65. KafkaConnect 스키마 참조

Expand
속성설명

spec

Kafka Connect 클러스터의 사양입니다.

KafkaConnectSpec

status

Kafka Connect 클러스터의 상태입니다.

KafkaConnectStatus

4.2.66. KafkaConnectSpec schema reference

사용 대상: KafkaConnect

KafkaConnectSpec 스키마 속성의 전체 목록

Kafka Connect 클러스터를 구성합니다.

4.2.66.1. config

config 속성을 사용하여 Kafka Connect 옵션을 키로 구성합니다.

값은 다음 JSON 유형 중 하나일 수 있습니다.

  • 문자열
  • 숫자
  • 부울

일부 옵션에는 기본값이 있습니다.

  • 기본값 connect-cluster를 사용하여 group.id
  • default 값이 connect-cluster-offsetsoffset.storage.topic
  • 기본값 connect-cluster-configs가 있는 config.storage.topic
  • status.storage.topic with default 값이 connect-cluster-status
  • key.converter with default value org.apache.kafka.connect.json.JsonConverter
  • value.converter with default value org.apache.kafka.connect.json.JsonConverter

이러한 옵션은 KafkaConnect.spec.config 속성에 없는 경우 자동으로 구성됩니다.

예외

Apache Kafka 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다.

그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 리스너 및 REST 인터페이스 구성
  • 플러그인 경로 구성

다음 접두사가 있는 속성은 설정할 수 없습니다.

  • bootstrap.servers
  • consumer.interceptor.classes
  • 리스너.
  • plugin.path
  • producer.interceptor.classes
  • rest.
  • sasl.
  • 보안.
  • ssl.

config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 대한 다음 예외를 포함하여 Kafka Connect로 전달됩니다.

Kafka Connect 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  config:
    group.id: my-connect-cluster
    offset.storage.topic: my-connect-cluster-offsets
    config.storage.topic: my-connect-cluster-configs
    status.storage.topic: my-connect-cluster-status
    key.converter: org.apache.kafka.connect.json.JsonConverter
    value.converter: org.apache.kafka.connect.json.JsonConverter
    key.converter.schemas.enable: true
    value.converter.schemas.enable: true
    config.storage.replication.factor: 3
    offset.storage.replication.factor: 3
    status.storage.replication.factor: 3
  # ...

중요

Cluster Operator는 제공된 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Connect 클러스터가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 Kafka Connect 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.

4.2.66.2. logging

Kafka Connect에는 자체 구성 가능한 로거가 있습니다.

  • connect.root.logger.level
  • log4j.logger.org.reflections

추가 로거는 실행 중인 Kafka Connect 플러그인에 따라 추가됩니다.

curl 요청을 사용하여 Kafka 브로커 Pod에서 실행되는 Kafka Connect 로거의 전체 목록을 가져옵니다.

curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/

Kafka Connect는 Apache log4j 로거 구현을 사용합니다.

로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.

로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.namelogging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.

여기서는 인라인외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.

인라인 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
  # ...
  logging:
    type: inline
    loggers:
      connect.root.logger.level: INFO
      log4j.logger.org.apache.kafka.connect.runtime.WorkerSourceTask: TRACE
      log4j.logger.org.apache.kafka.connect.runtime.WorkerSinkTask: DEBUG
  # ...

참고

로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: connect-logging.log4j
  # ...

구성되지 않은 모든 로거는 수준이 OFF 로 설정되어 있습니다.

Cluster Operator를 사용하여 Kafka Connect를 배포한 경우 Kafka Connect 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.

외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.

garbage collector(GC)

가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.

4.2.66.3. KafkaConnectSpec 스키마 속성

Expand
속성설명

버전

Kafka Connect 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다.

string

replicas

Kafka Connect 그룹의 Pod 수입니다. 기본값은 3 입니다.

integer

image

포드의 Docker 이미지입니다.

string

bootstrapServers

연결할 부트스트랩 서버입니다. 이 값은 < hostname > :_<port>_ 쌍의 쉼표로 구분된 목록으로 지정해야 합니다.

string

tls

TLS 구성입니다.

ClientTls

인증

Kafka Connect에 대한 인증 구성 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 값은 [tls, scram-sha-256, scram-sha-512, plain, oauth] 중 하나여야 합니다.

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

config

Kafka Connect 구성입니다. 접두사가 있는 속성은 ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes(예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.cipher.protocol, ssl.protocols.protocols).

map

resources

CPU 및 메모리 리소스 및 요청된 초기 리소스에 대한 최대 제한입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

livenessProbe

Pod 활성 검사입니다.

probe

readinessProbe

Pod 준비 상태 확인

probe

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

jmxOptions

ScanSetting 옵션.

KafkaJmxOptions

logging

Kafka Connect의 로깅 구성입니다. 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

clientRackInitImage

client.rack 을 초기화하는 데 사용되는 init 컨테이너의 이미지 .

string

Rack

client.rack 소비자 구성으로 사용할 노드 레이블 구성입니다.

Rack

tracing

Kafka Connect에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 tracing.type 속성 값에 따라 달라집니다. 이 값은 [jaeger, opentelemetry] 중 하나여야 합니다.

JaegerTracing, OpenTelemetryTracing

template

Kafka Connect 및 Kafka MirrorECDHE 2 리소스에 대한 템플릿입니다. 템플릿을 사용하면 배포,Pod서비스 생성 방법을 지정할 수 있습니다.

KafkaConnectTemplate

externalConfiguration

Secrets 또는 ConfigMaps의 데이터를 Kafka Connect Pod로 전달하여 커넥터를 구성하는 데 사용합니다.

ExternalConfiguration

BUILD

Connect 컨테이너 이미지를 빌드하는 방법을 구성합니다. 선택 사항:

BUILD

metricsConfig

지표 구성. 유형은 지정된 오브젝트 내의 metricsConfig.type 속성 값에 따라 달라지며, 이는 [jmxPrometheusExporter] 중 하나여야 합니다.

JmxPrometheusExporterMetrics

4.2.67. clientTLS 스키마 참조

KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec

ClientTls 스키마 속성의 전체 목록

KafkaConnect, KafkaBridge, KafkaMirror, KafkaMirrorMaker2를 클러스터에 연결하기 위해 TLS 신뢰할 수 있는 인증서를 구성합니다.

4.2.67.1. trustedCertificates

trustedCertificates 속성을 사용하여 보안 목록을 제공합니다.

4.2.67.2. clientTLS 스키마 속성

Expand
속성설명

trustedCertificates

TLS 연결에 대한 신뢰할 수 있는 인증서입니다.

CertSecretSource 배열

4.2.68. KafkaClientAuthenticationTls schema reference

KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec

KafkaClientAuthenticationTls 스키마 속성의 전체 목록

mTLS 인증을 구성하려면 type 속성을 tls. mTLS에서 TLS 인증서를 사용하여 인증합니다.

4.2.68.1. certificateAndKey

인증서는 certificateAndKey 속성에 지정되며 항상 OpenShift 시크릿에서 로드됩니다. 시크릿의 인증서는 public 및 private의 두 가지 키 아래에 X509 형식으로 저장해야 합니다.

User Operator에서 생성한 보안을 사용하거나 인증에 사용되는 키로 자체 TLS 인증서 파일을 생성한 다음 파일에서 Secret 을 생성할 수 있습니다.

oc create secret generic MY-SECRET \
--from-file=MY-PUBLIC-TLS-CERTIFICATE-FILE.crt \
--from-file=MY-PRIVATE.key
참고

mTLS 인증은 TLS 연결에서만 사용할 수 있습니다.

mTLS 구성의 예

authentication:
  type: tls
  certificateAndKey:
    secretName: my-secret
    certificate: my-public-tls-certificate-file.crt
    key: private.key

4.2.68.2. KafkaClientAuthenticationTls 스키마 속성

type 속성은 KafkaClientAuthenticationScramSha256, KafkaClientAuthentication ScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth 와의 사용을 구분하는 구분자입니다. KafkaClientAuthenticationTls 유형의 tls 값이 있어야 합니다.

Expand
속성설명

certificateAndKey

인증서 및 개인 키 쌍을 보유한 보안에 대한 참조입니다.

CertAndKeySecretSource

type

tls 여야 합니다.

string

4.2.69. KafkaClientAuthenticationScramSha256 schema reference

KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec

KafkaClientAuthenticationScramSha256 스키마 속성의 전체 목록

SASL 기반 SCRAM-SHA-256 인증을 구성하려면 type 속성을 scram-sha-256 으로 설정합니다. SCRAM-SHA-256 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.

4.2.69.1. 사용자 이름

사용자 이름 속성에 사용자 이름을 지정합니다.

4.2.69.2. passwordSecret

passwordSecret 속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.

User Operator가 생성한 시크릿을 사용할 수 있습니다.

필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용할 수 있습니다.

echo -n PASSWORD > MY-PASSWORD.txt

그런 다음 텍스트 파일에서 보안을 생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt

Kafka Connect에 대한 SCRAM-SHA-256 클라이언트 인증의 예

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-connect-password-field: LFTIyFRFlMmU2N2Tm

secretName 속성에는 Secret 의 이름이 포함되어 있으며, password 속성에는 암호가 시크릿 내에 저장되는 키 이름이 포함됩니다.

중요

암호 속성에 실제 암호 를 지정하지 마십시오.

Kafka Connect에 대한 SASL 기반 SCRAM-SHA-256 클라이언트 인증 구성의 예

authentication:
  type: scram-sha-256
  username: my-connect-username
  passwordSecret:
    secretName: my-connect-secret-name
    password: my-connect-password-field

4.2.69.3. KafkaClientAuthenticationScramSha256 schema properties

Expand
속성설명

passwordSecret

암호가 있는 보안에 대한 참조입니다.

PasswordSecretSource

type

scram-sha-256 이어야 합니다.

string

사용자 이름

인증에 사용되는 사용자 이름입니다.

string

4.2.70. PasswordSecretSource 스키마 참조

KafkaClientAuthenticationOAuth, KafkaClientAuthenticationPlain, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512

Expand
속성설명

암호

암호가 저장된 시크릿의 키 이름입니다.

string

secretName

암호가 포함된 시크릿의 이름입니다.

string

4.2.71. KafkaClientAuthenticationScramSha512 schema reference

KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec

KafkaClientAuthenticationScramSha512 스키마 속성의 전체 목록

SASL 기반 SCRAM-SHA-512 인증을 구성하려면 type 속성을 scram-sha-512 로 설정합니다. SCRAM-SHA-512 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.

4.2.71.1. 사용자 이름

사용자 이름 속성에 사용자 이름을 지정합니다.

4.2.71.2. passwordSecret

passwordSecret 속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.

User Operator가 생성한 시크릿을 사용할 수 있습니다.

필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용할 수 있습니다.

echo -n PASSWORD > MY-PASSWORD.txt

그런 다음 텍스트 파일에서 보안을 생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt

Kafka Connect에 대한 SCRAM-SHA-512 클라이언트 인증의 예

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-connect-password-field: LFTIyFRFlMmU2N2Tm

secretName 속성에는 Secret 의 이름이 포함되어 있으며, password 속성에는 암호가 시크릿 내에 저장되는 키 이름이 포함됩니다.

중요

암호 속성에 실제 암호 를 지정하지 마십시오.

Kafka Connect에 대한 SASL 기반 SCRAM-SHA-512 클라이언트 인증 구성의 예

authentication:
  type: scram-sha-512
  username: my-connect-username
  passwordSecret:
    secretName: my-connect-secret-name
    password: my-connect-password-field

4.2.71.3. KafkaClientAuthenticationScramSha512 schema properties

Expand
속성설명

passwordSecret

암호가 있는 보안에 대한 참조입니다.

PasswordSecretSource

type

scram-sha-512 여야 합니다.

string

사용자 이름

인증에 사용되는 사용자 이름입니다.

string

4.2.72. KafkaClientAuthenticationPlain schema reference

KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec

KafkaClientAuthenticationPlain 스키마 속성의 전체 목록

SASL 기반 PLAIN 인증을 구성하려면 type 속성을 plain 로 설정합니다. SASL PLAIN 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.

주의

SASL PLAIN 메커니즘은 네트워크에서 사용자 이름과 암호를 일반 텍스트로 전송합니다. TLS 암호화가 활성화된 경우에만 SASL PLAIN 인증을 사용하십시오.

4.2.72.1. 사용자 이름

사용자 이름 속성에 사용자 이름을 지정합니다.

4.2.72.2. passwordSecret

passwordSecret 속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.

User Operator가 생성한 시크릿을 사용할 수 있습니다.

필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용합니다.

echo -n PASSWORD > MY-PASSWORD.txt

그런 다음 텍스트 파일에서 보안을 생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt

Kafka Connect에 대한 PLAIN 클라이언트 인증의 예

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-password-field-name: LFTIyFRFlMmU2N2Tm

secretName 속성에는 Secret 의 이름이 포함되어 있으며 password 속성에는 암호가 시크릿 내에 저장된 키 이름이 포함됩니다.

중요

암호 속성에 실제 암호 를 지정하지 마십시오.

SASL 기반 PLAIN 클라이언트 인증 구성의 예

authentication:
  type: plain
  username: my-connect-username
  passwordSecret:
    secretName: my-connect-secret-name
    password: my-password-field-name

4.2.72.3. KafkaClientAuthenticationPlain schema properties

type 속성은 KafkaClientAuthenticationPlain 유형과 KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthentication Sha512 , KafkaClientAuthentication OAuth 사용을 구분하는 판별자입니다. KafkaClientAuthenticationPlain 유형의 값이 plain 이어야 합니다.

Expand
속성설명

passwordSecret

암호가 있는 보안에 대한 참조입니다.

PasswordSecretSource

type

일반 이어야 합니다.

string

사용자 이름

인증에 사용되는 사용자 이름입니다.

string

4.2.73. KafkaClientAuthenticationOAuth schema reference

KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec

KafkaClientAuthenticationOAuth 스키마 속성의 전체 목록

OAuth 클라이언트 인증을 구성하려면 type 속성을 oauth 로 설정합니다.

OAuth 인증은 다음 옵션 중 하나를 사용하여 구성할 수 있습니다.

  • 클라이언트 ID 및 시크릿
  • 클라이언트 ID 및 새로 고침 토큰
  • 액세스 토큰
  • 사용자 이름 및 암호
  • TLS

클라이언트 ID 및 시크릿

인증에 사용되는 클라이언트 ID 및 클라이언트 시크릿과 함께 tokenEndpointUri 속성에서 권한 부여 서버의 주소를 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고 클라이언트 ID 및 시크릿을 사용하여 인증하며 Kafka 브로커로 인증하는 데 사용할 액세스 토큰을 가져옵니다. clientSecret 속성에서 클라이언트 시크릿이 포함된 보안에 대한 링크를 지정합니다.

클라이언트 ID 및 클라이언트 보안을 사용한 OAuth 클라이언트 인증 예

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  clientSecret:
    secretName: my-client-oauth-secret
    key: client-secret

필요한 경우 선택적으로 범위대상 을 지정할 수 있습니다.

클라이언트 ID 및 새로 고침 토큰

OAuth 클라이언트 ID 및 새로 고침 토큰과 함께 tokenEndpointUri 속성에서 OAuth 서버의 주소를 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고, 클라이언트 ID 및 새로 고침 토큰을 사용하여 인증하고, Kafka 브로커와 함께 인증하는 데 사용할 액세스 토큰을 가져옵니다. refreshToken 속성에서 새로 고침 토큰이 포함된 보안에 대한 링크를 지정합니다.

클라이언트 ID 및 새로 고침 토큰을 사용한 OAuth 클라이언트 인증의 예

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token

액세스 토큰

Kafka 브로커를 사용하여 인증에 사용되는 액세스 토큰을 직접 구성할 수 있습니다. 이 경우 tokenEndpointUri 를 지정하지 않습니다. accessToken 속성에서 액세스 토큰이 포함된 보안에 대한 링크를 지정합니다.

액세스 토큰만 사용하는 OAuth 클라이언트 인증 예

authentication:
  type: oauth
  accessToken:
    secretName: my-access-token-secret
    key: access-token

사용자 이름 및 암호

OAuth 사용자 이름 및 암호 구성은 OAuth 리소스 소유자 암호 부여 메커니즘을 사용합니다. 이 메커니즘은 더 이상 사용되지 않으며 클라이언트 자격 증명(ID 및 시크릿)을 사용할 수 없는 환경에서만 통합을 사용하도록 지원됩니다. 액세스 관리 시스템에서 다른 접근 방식을 지원하지 않거나 사용자 계정이 인증에 필요한 경우 사용자 계정을 사용해야 할 수 있습니다.

일반적인 방법은 클라이언트 애플리케이션을 나타내는 권한 부여 서버에 특수 사용자 계정을 생성하는 것입니다. 그런 다음 무작위로 생성된 긴 암호와 매우 제한된 권한 집합을 계정에 제공합니다. 예를 들어 계정은 Kafka 클러스터에만 연결할 수 있지만 다른 서비스를 사용하거나 사용자 인터페이스에 로그인할 수 없습니다.

새로 고침 토큰 메커니즘을 먼저 사용하는 것이 좋습니다.

토큰EndpointUri 속성에서 권한 부여 서버의 주소를 클라이언트 ID, 사용자 이름 및 인증에 사용되는 암호와 함께 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고, 사용자 이름, 암호, 클라이언트 ID 및 선택적으로 Kafka 브로커로 인증하는 데 사용할 액세스 토큰을 가져오는 클라이언트 시크릿을 사용하여 인증합니다.

passwordSecret 속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.

일반적으로 공용 OAuth 클라이언트를 사용하여 clientId 를 구성해야 합니다. 기밀 OAuth 클라이언트를 사용하는 경우 clientSecret 을 구성해야 합니다.

사용자 이름을 사용한 OAuth 클라이언트 인증 예 및 공개 클라이언트와 암호

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  username: my-username
  passwordSecret:
    secretName: my-password-secret-name
    password: my-password-field-name
  clientId: my-public-client-id

사용자 이름과 함께 기밀 클라이언트가 있는 암호를 사용한 OAuth 클라이언트 인증의 예

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  username: my-username
  passwordSecret:
    secretName: my-password-secret-name
    password: my-password-field-name
  clientId: my-confidential-client-id
  clientSecret:
    secretName: my-confidential-client-oauth-secret
    key: client-secret

필요한 경우 선택적으로 범위대상 을 지정할 수 있습니다.

TLS

HTTPS 프로토콜을 사용하여 OAuth 서버에 액세스하는 경우 이 인증서에서 사용하는 TLS 인증서가 신뢰할 수 있는 인증 기관에서 서명하고 해당 호스트 이름이 인증서에 나열되는 경우 추가 구성이 필요하지 않습니다.

OAuth 서버가 자체 서명된 인증서를 사용하거나 신뢰할 수 없는 인증 기관에서 서명한 인증서를 사용하는 경우 사용자 정의 리소스에서 신뢰할 수 있는 인증서 목록을 구성할 수 있습니다. tlsTrustedCertificates 속성에는 인증서가 저장되는 키 이름이 있는 시크릿 목록이 포함되어 있습니다. 인증서는 X509 형식으로 저장해야 합니다.

제공되는 TLS 인증서의 예

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
  tlsTrustedCertificates:
    - secretName: oauth-server-ca
      certificate: tls.crt

OAuth 클라이언트는 기본적으로 OAuth 서버의 호스트 이름이 인증서 제목 또는 대체 DNS 이름 중 하나와 일치하는지 확인합니다. 필요하지 않은 경우 호스트 이름 확인을 비활성화할 수 있습니다.

비활성화된 TLS 호스트 이름 확인의 예

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
  disableTlsHostnameVerification: true

4.2.73.1. KafkaClientAuthenticationOAuth 스키마 속성

type 속성은 KafkaClientAuthenticationOAuth 유형 사용을 KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthentication Sha512 , KafkaClientAuthentication Plain 과 구별하는 판별자입니다. KafkaClientAuthenticationOAuth 유형에 대한 oauth 값이 있어야 합니다.

Expand
속성설명

accessToken

권한 부여 서버에서 가져온 액세스 토큰이 포함된 OpenShift 보안에 대한 링크입니다.

GenericSecretSource

accessTokenIsJwt

액세스 토큰을 JWT로 처리할지 여부를 구성합니다. 권한 부여 서버가 불투명 토큰을 반환하는 경우 false 로 설정해야 합니다. 기본값은 true 입니다.

boolean

대상

권한 부여 서버에 대해 인증할 때 사용할 OAuth 대상입니다. 일부 권한 부여 서버에는 대상을 명시적으로 설정해야 합니다. 가능한 값은 권한 부여 서버 구성 방법에 따라 다릅니다. 기본적으로 토큰 끝점 요청을 수행할 때 대상은 지정되지 않습니다.

string

clientId

Kafka 클라이언트가 OAuth 서버에 대해 인증하고 토큰 끝점 URI를 사용하는 OAuth 클라이언트 ID입니다.

string

clientSecret

Kafka 클라이언트가 OAuth 서버에 인증하고 토큰 끝점 URI를 사용하는 데 사용할 수 있는 OAuth 클라이언트 시크릿이 포함된 OpenShift 보안에 대한 링크입니다.

GenericSecretSource

connectTimeoutSeconds

권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다.

integer

disableTlsHostnameVerification

TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 false 입니다.

boolean

enableMetrics

OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 false 입니다.

boolean

httpRetries

초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다.

integer

httpRetryPauseMs

실패한 HTTP 요청을 재시도하기 전에 일시 정지를 수행합니다. 설정되지 않은 경우 기본값은 일시 중지되지 않고 즉시 요청을 반복하는 것입니다.

integer

maxTokenExpirySeconds

액세스 토큰의 라이브 시간을 지정된 초 수로 설정하거나 제한합니다. 권한 부여 서버에서 불투명 토큰을 반환하는 경우 설정해야 합니다.

integer

passwordSecret

암호가 있는 보안에 대한 참조입니다.

PasswordSecretSource

readTimeoutSeconds

권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다.

integer

refreshToken

권한 부여 서버에서 액세스 토큰을 가져오는 데 사용할 수 있는 새로 고침 토큰이 포함된 OpenShift 보안에 대한 링크입니다.

GenericSecretSource

scope

권한 부여 서버에 대해 인증할 때 사용할 OAuth 범위입니다. 일부 권한 부여 서버를 설정해야 합니다. 가능한 값은 권한 부여 서버 구성 방법에 따라 달라집니다. 기본적으로 토큰 끝점 요청을 수행할 때 범위가 지정되지 않습니다.

string

tlsTrustedCertificates

OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다.

CertSecretSource 배열

tokenEndpointUri

권한 부여 서버 토큰 끝점 URI입니다.

string

type

oauth 여야 합니다.

string

사용자 이름

인증에 사용되는 사용자 이름입니다.

string

4.2.74. Jaegertracing 스키마 참조

JaegerTracing 유형이 더 이상 사용되지 않습니다.

used in: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec

type 속성은 JaegerTracing 유형 사용을 OpenTelemetryTracing 과 구별하는 판별자입니다. JaegerTracing 유형의 jaeger 값이 있어야 합니다.

Expand
속성설명

type

jaeger 여야 합니다.

string

4.2.75. OpenTelemetryTracing 스키마 참조

used in: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec

type 속성은 OpenTelemetryTracing 유형 사용을 구분하는 구분자 입니다. OpenTelemetry 유형의 opentelemetry 값이 있어야 합니다.

Expand
속성설명

type

opentelemetry 여야 합니다.

string

4.2.76. KafkaConnectTemplate 스키마 참조

사용됨: KafkaConnectSpec, KafkaMirrorMaker2Spec

Expand
속성설명

Deployment

Kafka Connect 배포 용 템플릿.

DeploymentTemplate

podSet

Kafka Connect StrimziPodSet 리소스에 대한 템플릿입니다.

resourcetemplate

Pod

Kafka Connect 포드 용 템플릿 .

PodTemplate

apiService

Kafka Connect API 서비스 템플릿.

InternalServiceTemplate

headlessService

Kafka Connect 헤드리스 서비스에 대한 템플릿.

InternalServiceTemplate

connectContainer

Kafka Connect 컨테이너용 템플릿입니다.

ContainerTemplate

initContainer

Kafka init 컨테이너용 템플릿입니다.

ContainerTemplate

podDisruptionBudget

Kafka Connect PodDisruptionBudget 템플릿.

PodDisruptionBudgetTemplate

serviceAccount

Kafka Connect 서비스 계정에 대한 템플릿입니다.

resourcetemplate

clusterRoleBinding

Kafka Connect ClusterRoleBinding용 템플릿입니다.

resourcetemplate

buildPod

Kafka Connect 빌드 포드 용 템플릿 . 빌드 포드는 OpenShift에서만 사용됩니다.

PodTemplate

buildContainer

Kafka Connect Build 컨테이너용 템플릿입니다. 빌드 컨테이너는 OpenShift에서만 사용됩니다.

ContainerTemplate

buildConfig

새 컨테이너 이미지를 빌드하는 데 사용되는 Kafka Connect BuildConfig용 템플릿입니다. BuildConfig는 OpenShift에서만 사용됩니다.

BuildConfigTemplate

buildServiceAccount

Kafka Connect Build 서비스 계정용 템플릿.

resourcetemplate

jmxSecret

Kafka Connect 클러스터 10.0.0.1 인증의 보안에 대한 템플릿입니다.

resourcetemplate

4.2.77. BuildConfigTemplate 스키마 참조

사용 대상: KafkaConnectTemplate

Expand
속성설명

metadata

PodDisruptionBudgetTemplate 리소스에 적용할 메타데이터입니다.

MetadataTemplate

pullSecret

기본 이미지를 가져오는 데 필요한 인증 정보가 있는 컨테이너 레지스트리 시크릿입니다.

string

4.2.78. ExternalConfiguration 스키마 참조

사용됨: KafkaConnectSpec, KafkaMirrorMaker2Spec

ExternalConfiguration 스키마 속성의 전체 목록

Kafka Connect 커넥터의 구성 옵션을 정의하는 외부 스토리지 속성을 구성합니다.

ConfigMaps 또는 Secrets를 Kafka Connect Pod에 환경 변수 또는 볼륨으로 마운트할 수 있습니다. 볼륨 및 환경 변수는 KafkaConnect.spec 또는 KafkaMirrorMaker2.specexternalConfiguration 속성에서 구성됩니다.

적용되면 커넥터를 개발할 때 환경 변수와 볼륨을 사용할 수 있습니다.

자세한 내용은 외부 소스에서 구성 값 로드 를 참조하십시오.

4.2.78.1. ExternalConfiguration 스키마 속성

Expand
속성설명

env

Kafka Connect Pod에서 환경 변수로 Secret 또는 ConfigMap의 데이터를 사용할 수 있도록 합니다.

ExternalConfigurationEnv 배열

volumes

Kafka Connect Pod에서 볼륨으로 데이터를 사용할 수 있도록 Secret 또는 ConfigMap의 데이터를 제공합니다.

ExternalConfigurationVolumeSource 배열

4.2.79. ExternalConfigurationEnv 스키마 참조

사용 대상: ExternalConfiguration

Expand
속성설명

name

Kafka Connect pod에 전달할 환경 변수의 이름입니다. 환경 변수의 이름은 KAFKA_ 또는 STRIMZI_ 로 시작할 수 없습니다.

string

valueFrom

Kafka Connect pod에 전달될 환경 변수의 값입니다. Secret 또는 ConfigMap 필드에 대한 참조로 전달할 수 있습니다. 필드는 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다.

ExternalConfigurationEnvVarSource

4.2.80. ExternalConfigurationEnvVarSource schema reference

사용 위치: ExternalConfigurationEnv

Expand
속성설명

configMapKeyRef

ConfigMap의 키에 대한 참조입니다. 자세한 내용은 core/v1 configmapkeyselector의 외부 설명서를 참조하십시오.

ConfigMapKeySelector

secretKeyRef

시크릿의 키에 대한 참조입니다. 자세한 내용은 core/v1 secretkeyselector의 외부 설명서를 참조하십시오.

SecretKeySelector

4.2.81. ExternalConfigurationVolumeSource 스키마 참조

사용 대상: ExternalConfiguration

Expand
속성설명

configMap

ConfigMap의 키에 대한 참조입니다. 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. 자세한 내용은 core/v1 configmapvolumesource에 대한 외부 설명서 를 참조하십시오.

ConfigMapVolumeSource

name

Kafka Connect Pod에 추가할 볼륨의 이름입니다.

string

secret

시크릿의 키에 대한 참조입니다. 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. 자세한 내용은 core/v1 secretvolumesource에 대한 외부 설명서 를 참조하십시오.

SecretVolumeSource

4.2.82. 빌드 스키마 참조

사용 대상: KafkaConnectSpec

빌드 스키마 속성의 전체 목록

Kafka Connect 배포에 대한 추가 커넥터를 구성합니다.

4.2.82.1. output

추가 커넥터 플러그인을 사용하여 새 컨테이너 이미지를 빌드하려면 AMQ Streams에서 이미지를 푸시, 저장 및 가져올 수 있는 컨테이너 레지스트리가 필요합니다. AMQ Streams는 자체 컨테이너 레지스트리를 실행하지 않으므로 레지스트리를 제공해야 합니다. AMQ Streams는 프라이빗 컨테이너 레지스트리 및 Quay 또는 Docker Hub 와 같은 공개 레지스트리를 지원합니다. 컨테이너 레지스트리는 KafkaConnect 사용자 정의 리소스의 .spec.build.output 섹션에서 구성됩니다. 필요한 출력 구성은 dockerimagestream 의 두 가지 유형을 지원합니다.

Docker 레지스트리 사용

Docker 레지스트리를 사용하려면 유형을 docker 로 지정하고 새 컨테이너 이미지의 전체 이름으로 이미지 필드를 지정해야 합니다. 전체 이름은 다음과 같습니다.

  • 레지스트리의 주소
  • 포트 번호 (표준 포트에서 청취하는 경우)
  • 새 컨테이너 이미지의 태그

유효한 컨테이너 이미지 이름의 예:

  • docker.io/my-org/my-image/my-tag
  • quay.io/my-org/my-image/my-tag
  • image-registry.image-registry.svc:5000/myproject/kafka-connect-build:latest

각 Kafka Connect 배포에서는 별도의 이미지를 사용해야 하며, 이는 가장 기본적인 수준에서 다른 태그를 의미할 수 있습니다.

레지스트리에 인증이 필요한 경우 pushSecret 을 사용하여 레지스트리 인증 정보로 시크릿 이름을 설정합니다. 보안의 경우 kubernetes.io/dockerconfigjson 유형과 .dockerconfigjson 파일을 사용하여 Docker 인증 정보를 포함합니다. 프라이빗 레지스트리에서 이미지를 가져오는 방법에 대한 자세한 내용은 기존 Docker 자격 증명을 기반으로 보안 생성을 참조하십시오.

출력 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      type: docker 
1

      image: my-registry.io/my-org/my-connect-cluster:latest 
2

      pushSecret: my-registry-credentials 
3

  #...

1
(필수) AMQ Streams에서 사용하는 출력 유형입니다.
2
(필수) 리포지토리 및 태그를 포함하여 사용된 이미지의 전체 이름입니다.
3
(선택 사항) 컨테이너 레지스트리 인증 정보를 사용하여 시크릿의 이름입니다.

OpenShift ImageStream 사용

Docker 대신 OpenShift ImageStream을 사용하여 새 컨테이너 이미지를 저장할 수 있습니다. Kafka Connect를 배포하기 전에 ImageStream을 수동으로 생성해야 합니다. ImageStream을 사용하려면 유형을 이미지 스트림 으로 설정하고, image 속성을 사용하여 ImageStream의 이름과 사용된 태그를 지정합니다. 예를 들면 my-connect-image-stream:latest 입니다.

출력 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      type: imagestream 
1

      image: my-connect-build:latest 
2

  #...

1
(필수) AMQ Streams에서 사용하는 출력 유형입니다.
2
(필수) ImageStream 및 태그의 이름입니다.

4.2.82.2. plugins

커넥터 플러그인은 특정 유형의 외부 시스템에 연결하는 데 필요한 구현을 정의하는 파일 집합입니다. 컨테이너 이미지에 필요한 커넥터 플러그인은 KafkaConnect 사용자 정의 리소스의 .spec.build.plugins 속성을 사용하여 구성해야 합니다. 각 커넥터 플러그인에는 Kafka Connect 배포 내에서 고유한 이름이 있어야 합니다. 또한 플러그인 아티팩트가 나열되어야 합니다. 이러한 아티팩트는 AMQ Streams에서 다운로드하고 새 컨테이너 이미지에 추가되며 Kafka Connect 배포에서 사용됩니다. 커넥터 플러그인 아티팩트는 (de)serializers와 같은 추가 구성 요소도 포함할 수 있습니다. 각 커넥터 플러그인은 별도의 디렉터리로 다운로드되어 다른 커넥터와 해당 종속성이 적절하게 샌드 박스됩니다. 각 플러그인은 하나 이상의 아티팩트 로 구성해야 합니다.

두 개의 커넥터 플러그인 을 사용하는 플러그인 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins: 
1

      - name: debezium-postgres-connector
        artifacts:
          - type: tgz
            url: https://repo1.maven.org/maven2/io/debezium/debezium-connector-postgres/2.1.3.Final/debezium-connector-postgres-2.1.3.Final-plugin.tar.gz
            sha512sum: c4ddc97846de561755dc0b021a62aba656098829c70eb3ade3b817ce06d852ca12ae50c0281cc791a5a131cb7fc21fb15f4b8ee76c6cae5dd07f9c11cb7c6e79
      - name: camel-telegram
        artifacts:
          - type: tgz
            url: https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-telegram-kafka-connector/0.11.5/camel-telegram-kafka-connector-0.11.5-package.tar.gz
            sha512sum: d6d9f45e0d1dbfcc9f6d1c7ca2046168c764389c78bc4b867dab32d24f710bb74ccf2a007d7d7a8af2dfca09d9a52ccbc2831fc715c195a3634cca055185bd91
  #...

1
(필수) 커넥터 플러그인 및 아티팩트 목록.

AMQ Streams는 다음 유형의 아티팩트를 지원합니다.

  • 직접 다운로드 및 사용되는 JAR 파일
  • TGZ 아카이브, 다운로드 및 압축 해제
  • ZIP 아카이브, 다운로드 및 압축 해제
  • Maven 오케스트레이션을 사용하는 Maven 아티팩트
  • 기타 아티팩트는 직접 다운로드하여 사용합니다.
중요

AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고, 자동화된 빌드 및 Kafka Connect 배포에서 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다.

JAR 아티팩트 사용

JAR 아티팩트는 컨테이너 이미지에 다운로드하여 추가된 JAR 파일을 나타냅니다. JAR 아티팩트를 사용하려면 유형 속성을 ScanSetting 설정하고 url 속성을 사용하여 다운로드 위치를 지정합니다.

또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 AMQ Streams는 새 컨테이너 이미지를 빌드하는 동안 아티팩트의 체크섬을 확인합니다.

JAR 아티팩트 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: jar 
1

            url: https://my-domain.tld/my-jar.jar 
2

            sha512sum: 589...ab4 
3

          - type: jar
            url: https://my-domain.tld/my-jar2.jar
  #...

1
(필수) 아티팩트 유형입니다.
2
아티팩트를 다운로드한 URL(필수)입니다.
3
(선택 사항) SHA-512 체크섬을 사용하여 아티팩트를 확인합니다.

TGZ 아티팩트 사용

TGZ 아티팩트는 Gzip 압축을 사용하여 압축한 TAR 아카이브를 다운로드하는 데 사용됩니다. TGZ 아티팩트는 여러 다른 파일을 구성하는 경우에도 전체 Kafka Connect 커넥터를 포함할 수 있습니다. TGZ 아티팩트는 새 컨테이너 이미지를 빌드하는 동안 AMQ Streams에서 자동으로 다운로드 및 압축을 해제합니다. TGZ 아티팩트를 사용하려면 type 속성을 tgz 로 설정하고 url 속성을 사용하여 다운로드 위치를 지정합니다.

또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 AMQ Streams는 압축을 풀고 새 컨테이너 이미지를 빌드하기 전에 체크섬을 확인합니다.

TGZ 아티팩트 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: tgz 
1

            url: https://my-domain.tld/my-connector-archive.tgz 
2

            sha512sum: 158...jg10 
3

  #...

1
(필수) 아티팩트 유형입니다.
2
(필수) 아카이브를 다운로드한 URL입니다.
3
(선택 사항) SHA-512 체크섬을 사용하여 아티팩트를 확인합니다.

ZIP 아티팩트 사용

ZIP 아티팩트는 ZIP 압축 아카이브를 다운로드하는 데 사용됩니다. 이전 섹션에서 설명한 TGZ 아티팩트와 동일한 방식으로 ZIP 아티팩트를 사용합니다. 유일한 차이점은 type: tgz.type 대신 zip 을 지정하는 것입니다.

Maven 아티팩트 사용

Maven 아티팩트는 커넥터 플러그인 아티팩트를 Maven 좌표로 지정하는 데 사용됩니다. Maven 조정은 Maven 리포지토리에서 찾아서 가져올 수 있도록 플러그인 아티팩트와 종속성을 식별합니다.

참고

커넥터 빌드 프로세스에서 컨테이너 이미지에 아티팩트를 추가하려면 Maven 리포지토리에 액세스할 수 있어야 합니다.

Maven 아티팩트 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: maven 
1

            repository: https://mvnrepository.com 
2

            group: org.apache.camel.kafkaconnector 
3

            artifact: camel-kafka-connector 
4

            version: 0.11.0 
5

  #...

1
(필수) 아티팩트 유형입니다.
2
(선택 사항) 아티팩트를 다운로드할 수 있는 Maven 리포지토리입니다. 리포지토리를 지정하지 않으면 기본적으로 Maven Central 리포지토리 가 사용됩니다.
3
(필수) Maven 그룹 ID입니다.
4
(필수) Maven 아티팩트 유형.
5
(필수) Maven 버전 번호입니다.

기타 아티팩트 사용

기타 아티팩트는 컨테이너 이미지에 다운로드하여 추가된 모든 종류의 파일을 나타냅니다. 결과 컨테이너 이미지에 아티팩트의 특정 이름을 사용하려면 fileName 필드를 사용합니다. 파일 이름을 지정하지 않으면 URL 해시를 기반으로 파일의 이름이 지정됩니다.

또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 AMQ Streams는 새 컨테이너 이미지를 빌드하는 동안 아티팩트의 체크섬을 확인합니다.

기타 아티팩트 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: other  
1

            url: https://my-domain.tld/my-other-file.ext  
2

            sha512sum: 589...ab4  
3

            fileName: name-the-file.ext  
4

  #...

1
(필수) 아티팩트 유형입니다.
2
아티팩트를 다운로드한 URL(필수)입니다.
3
(선택 사항) SHA-512 체크섬을 사용하여 아티팩트를 확인합니다.
4
(선택 사항) 파일이 결과 컨테이너 이미지에 저장되는 이름입니다.

4.2.82.3. 빌드 스키마 속성

Expand
속성설명

출력 출력

새로 빌드된 이미지를 저장할 위치를 설정합니다. 필수 항목입니다. 유형은 지정된 오브젝트 내의 output.type 속성 값에 따라 달라집니다. 이 값은 [docker, imagestream] 중 하나여야 합니다.

DockerOutput, ImageStreamOutput

resources

빌드를 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

plugins

Kafka Connect에 추가해야 하는 커넥터 플러그인 목록입니다. 필수 항목입니다.

plugin 배열

4.2.83. DockerOutput 스키마 참조

사용 대상: 빌드

type 속성은 DockerOutput 유형과 ImageStreamOutput 유형을 구분하는 구분자입니다. DockerOutput 유형의 값 docker 가 있어야 합니다.

Expand
속성설명

image

새로 빌드된 이미지에 태그를 지정하고 푸시하는 데 사용할 전체 이름입니다. 예: quay.io/my-organization/my-custom-connect:latest. 필수 항목입니다.

string

pushSecret

새로 빌드된 이미지를 푸시하기 위한 인증 정보가 포함된 컨테이너 레지스트리 시크릿.

string

additionalKanikoOptions

새 Connect 이미지를 빌드할 때 Kaniko executor에 전달될 추가 옵션을 설정합니다. 허용되는 옵션은 --customPlatform, --insecure-pull, --insecure-registry, --log-registry, --log-timestamp, --registry-timestamp, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run입니다. 이러한 옵션은 Kaniko executor가 사용되는 OpenShift에서만 사용됩니다. OpenShift에서 무시됩니다. 옵션은 Kaniko GitHub 리포지토리에 설명되어 있습니다. 이 필드를 변경해도 Kafka Connect 이미지의 새 빌드가 트리거되지 않습니다.

문자열 배열

type

docker 가 있어야 합니다.

string

4.2.84. ImageStreamOutput schema reference

사용 대상: 빌드

type 속성은 ImageStreamOutput 유형과 DockerOutput 유형 사용을 구분하는 구분자입니다. ImageStreamOutput 유형의 값 imagestream 이 있어야 합니다.

Expand
속성설명

image

새로 빌드된 이미지가 푸시될 ImageStream의 이름 및 태그입니다. 예: my-custom-connect:latest. 필수 항목입니다.

string

type

이미지 스트림이어야 합니다.

string

4.2.85. 플러그인 스키마 참조

사용 대상: 빌드

Expand
속성설명

name

커넥터 플러그인의 고유한 이름입니다. 는 커넥터 아티팩트가 저장되는 경로를 생성하는 데 사용됩니다. 이름은 KafkaConnect 리소스 내에서 고유해야 합니다. 이름은 다음과 같은 패턴을 따라야 합니다. ^[a-z][-_a-z0-9]*[a-z]$. 필수 항목입니다.

string

아티팩트

이 커넥터 플러그인에 속하는 아티팩트 목록입니다. 필수 항목입니다.

JarArtifact, TgzArtifact, ZipArtifact, MavenArtifact, OtherArtifact 배열

4.2.86. JarArtifact 스키마 참조

사용 대상: 플러그인

Expand
속성설명

url

다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting , zip,tgz기타 아티팩트에 필요합니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

sha512sum

아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

insecure

기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 true 로 설정하면 서버가 안전하지 않은 것으로 간주되는 경우에도 모든 TLS 확인이 비활성화되어 아티팩트가 다운로드됩니다.

boolean

type

ScanSetting 여야 합니다.

string

4.2.87. TgzArtifact 스키마 참조

사용 대상: 플러그인

Expand
속성설명

url

다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting , zip,tgz기타 아티팩트에 필요합니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

sha512sum

아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

insecure

기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 true 로 설정하면 서버가 안전하지 않은 것으로 간주되는 경우에도 모든 TLS 확인이 비활성화되어 아티팩트가 다운로드됩니다.

boolean

type

tgz 여야 합니다.

string

4.2.88. ZipArtifact 스키마 참조

사용 대상: 플러그인

Expand
속성설명

url

다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting , zip,tgz기타 아티팩트에 필요합니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

sha512sum

아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

insecure

기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 true 로 설정하면 서버가 안전하지 않은 것으로 간주되는 경우에도 모든 TLS 확인이 비활성화되어 아티팩트가 다운로드됩니다.

boolean

type

zip 이어야 합니다.

string

4.2.89. MavenArtifact 스키마 참조

사용 대상: 플러그인

type 속성은 JarArtifact 유형, Tgz Artifact , ZipArtifact, OtherArtifact 의 사용을 구별하는 판별자입니다. MavenArtifact 유형의 경우 maven 값이 있어야 합니다.

Expand
속성설명

리포지터리

아티팩트를 다운로드할 Maven 리포지토리입니다. maven 아티팩트 유형에만 적용됩니다.

string

group

Maven 그룹 ID. maven 아티팩트 유형에만 적용됩니다.

string

artifact

Maven 아티팩트 ID. maven 아티팩트 유형에만 적용됩니다.

string

버전

Maven 버전 번호입니다. maven 아티팩트 유형에만 적용됩니다.

string

type

maven 이어야 합니다.

string

4.2.90. OtherArtifact 스키마 참조

사용 대상: 플러그인

Expand
속성설명

url

다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting , zip,tgz기타 아티팩트에 필요합니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

sha512sum

아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

fileName

아티팩트를 저장할 이름입니다.

string

insecure

기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 true 로 설정하면 서버가 안전하지 않은 것으로 간주되는 경우에도 모든 TLS 확인이 비활성화되어 아티팩트가 다운로드됩니다.

boolean

type

다른 사람이어야 합니다.

string

4.2.91. KafkaConnectStatus schema reference

사용 대상: KafkaConnect

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

url

Kafka Connect 커넥터를 관리하고 모니터링하기 위한 REST API 끝점의 URL입니다.

string

connectorPlugins

이 Kafka Connect 배포에서 사용할 수 있는 커넥터 플러그인 목록입니다.

ConnectorPlugin 배열

labelSelector

이 리소스를 제공하는 Pod의 라벨 선택기입니다.

string

replicas

이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다.

integer

4.2.92. ConnectorPlugin 스키마 참조

사용 대상: KafkaConnectStatus, KafkaMirrorMaker2Status

Expand
속성설명

type

커넥터 플러그인의 유형입니다. 사용 가능한 유형은 싱크소스 입니다.

string

버전

커넥터 플러그인의 버전입니다.

string

클래스

커넥터 플러그인의 클래스입니다.

string

4.2.93. KafkaTopic 스키마 참조

Expand
속성설명

spec

주제의 사양입니다.

KafkaTopicSpec

status

주제의 상태.

KafkaTopicStatus

4.2.94. KafkaTopicSpec schema reference

사용 대상: KafkaTopic

Expand
속성설명

파티션

주제의 파티션 수입니다. 주제 생성 후에는 이 문제를 줄일 수 없습니다. 주제 생성 후 늘릴 수 있지만 특히 의미 체계 파티셔닝이 있는 주제의 경우 그 결과를 이해하는 것이 중요합니다. 이 값이 없는 경우 기본값은 num.partitions 의 브로커 구성으로 설정됩니다.

integer

replicas

항목에 보유해야 하는 복제본 수입니다. 이 기능이 없는 경우 default.replication.factor 의 브로커 구성이 기본값으로 설정됩니다.

integer

config

주제 구성입니다.

map

topicName

주제의 이름입니다. 이 문제가 없는 경우 기본값은 주제의 metadata.name입니다. 주제 이름이 유효한 OpenShift 리소스 이름이 아닌 한 이 값을 설정하지 않는 것이 좋습니다.

string

4.2.95. KafkaTopicStatus 스키마 참조

사용 대상: KafkaTopic

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

topicName

주제 이름.

string

4.2.96. KafkaUser 스키마 참조

Expand
속성설명

spec

사용자의 사양입니다.

KafkaUserSpec

status

Kafka 사용자의 상태입니다.

KafkaUserStatus

4.2.97. KafkaUserSpec schema reference

사용 대상: KafkaUser

Expand
속성설명

인증

이 Kafka 사용자에게 활성화된 인증 메커니즘입니다. 지원되는 인증 메커니즘은 scram-sha-512,tls, tls-external 입니다.

  • SCRAM-sha-512 는 SASL SCRAM-SHA-512 자격 증명을 사용하여 시크릿을 생성합니다.
  • TLS 는 상호 TLS 인증을 위한 사용자 인증서로 보안을 생성합니다.
  • TLS-external 에서는 사용자 인증서를 생성하지 않습니다. 그러나 User Operator 외부에서 생성된 사용자 인증서를 사용하여 상호 TLS 인증을 사용하도록 사용자를 준비합니다. 이 사용자에 설정된 ACL 및 할당량은 CN=<username> 형식으로 구성됩니다.

인증은 선택 사항입니다. 인증이 구성되지 않은 경우 인증 정보가 생성되지 않습니다. 사용자에 대해 설정된 ACL 및 할당량은 SASL 인증에 적합한 <username > 형식으로 구성됩니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 값은 [tls, tls-external, scram-sha-512] 중 하나여야 합니다.

KafkaUserTlsClientAuthentication, KafkaUserTlsExternalClientAuthentication, KafkaUserScramSha512ClientAuthentication

권한 부여

이 Kafka 사용자에 대한 권한 부여 규칙입니다. 유형은 지정된 오브젝트 내의 authorization.type 속성 값에 따라 달라지며 [simple] 중 하나여야 합니다.

KafkaUserAuthorizationSimple

할당량

클라이언트가 사용하는 브로커 리소스를 제어하기 위한 요청에 대한 할당량입니다. Kafka 사용자 할당량에 대한 네트워크 대역폭 및 요청 속도 할당량은 http://kafka.apache.org/documentation/#design_quotas 에서 확인할 수 있습니다.

KafkaUserQuotas

template

Kafka 사용자 시크릿이 생성되는 방법을 지정하는 템플릿입니다.

KafkaUserTemplate

4.2.98. KafkaUserTlsClientAuthentication 스키마 참조

사용 대상: KafkaUserSpec

type 속성은 KafkaUserTlsClientAuthentication 유형과 KafkaUserTlsExternalClientAuthentication, KafkaUserScramSha512 ClientClientAuthentication 사용을 구분하는 구분자입니다. KafkaUserTlsClientAuthentication 유형의 값 tls 가 있어야 합니다.

Expand
속성설명

type

tls 여야 합니다.

string

4.2.99. KafkaUserTlsExternalClientAuthentication schema reference

사용 대상: KafkaUserSpec

type 속성은 KafkaUserTlsExternalClientAuthentication 유형인 KafkaUserTlsClientAuthentication, KafkaUserScramSha512 ClientClientAuthentication 유형을 구분하는 구분자입니다. KafkaUserTlsExternalClientAuthentication 유형에 대한 tls-external 값이 있어야 합니다.

Expand
속성설명

type

tls-external 이어야 합니다.

string

4.2.100. KafkaUserScramSha512ClientAuthentication 스키마 참조

사용 대상: KafkaUserSpec

type 속성은 KafkaUserScramSha512ClientAuthentication 유형인 KafkaUserTlsClientAuthentication, KafkaUserTlsExternalClientAuthentication 유형을 구분하는 판별자입니다. KafkaUserScramSha512ClientAuthentication 유형의 scram-sha-512 가 있어야 합니다.

Expand
속성설명

암호

사용자 암호를 지정합니다. 설정되지 않은 경우 User Operator가 새 암호가 생성됩니다.

password

type

scram-sha-512 여야 합니다.

string

4.2.101. 암호 스키마 참조

다음에서 사용됨: KafkaUserScramSha512ClientAuthentication

Expand
속성설명

valueFrom

암호를 읽을 시크릿입니다.

PasswordSource

4.2.102. PasswordSource 스키마 참조

사용 중인 위치: 암호

Expand
속성설명

secretKeyRef

리소스의 네임스페이스에서 시크릿 키를 선택합니다. 자세한 내용은 core/v1 secretkeyselector의 외부 설명서를 참조하십시오.

SecretKeySelector

4.2.103. KafkaUserAuthorizationSimple 스키마 참조

사용 대상: KafkaUserSpec

type 속성은 나중에 추가할 수 있는 KafkaUserAuthorizationSimple 유형의 사용을 구분하는 구분자입니다. KafkaUserAuthorizationSimple 유형에 대해 간단한 값이 있어야 합니다.

Expand
속성설명

type

단순 해야 합니다.

string

ACL

이 사용자에게 적용해야 하는 ACL 규칙 목록입니다.

AclRule array

4.2.104. AclRule 스키마 참조

사용됨: KafkaUserAuthorizationSimple

AclRule 스키마 속성의 전체 목록

브로커가 AclAuthorizer 를 사용하는 경우 KafkaUser 에 대한 액세스 제어 규칙을 구성합니다.

권한 부여가 있는 KafkaUser 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaUser
metadata:
  name: my-user
  labels:
    strimzi.io/cluster: my-cluster
spec:
  # ...
  authorization:
    type: simple
    acls:
      - resource:
          type: topic
          name: my-topic
          patternType: literal
        operations:
          - Read
          - Describe
      - resource:
          type: group
          name: my-group
          patternType: prefix
        operations:
          - Read

4.2.104.1. resource

resource 속성을 사용하여 규칙이 적용되는 리소스를 지정합니다.

간단한 권한 부여는 type 속성에 지정된 네 가지 리소스 유형을 지원합니다.

  • 주제(주체)
  • 소비자 그룹 (그룹)
  • 클러스터(클러스터)
  • TransactionId(TransactionId)

주제, 그룹 및 트랜잭션 ID 리소스의 경우 규칙이 name 속성에 적용되는 리소스의 이름을 지정할 수 있습니다.

클러스터 유형 리소스에는 이름이 없습니다.

이름은 patternType 속성을 사용하여 리터럴 또는 접두사 로 지정됩니다.

  • 리터럴 이름은 name 필드에 지정된 대로 정확하게 사용됩니다.
  • 접두사 이름은 name 값을 접두사로 사용한 다음 해당 값으로 시작하는 이름이 있는 모든 리소스에 규칙을 적용합니다.

patternType리터럴 로 설정되는 경우 해당 규칙이 모든 리소스에 적용되는 것을 나타내기 위해 이름을 * 로 설정할 수 있습니다.

사용자가 모든 주제의 메시지를 읽을 수 있는 ACL 규칙의 예

    acls:
      - resource:
          type: topic
          name: "*"
          patternType: literal
        operations:
          - Read

4.2.104.2. type

작업을 허용하거나 거부 (현재 지원되지 않음)하는 규칙 유형입니다.

type 필드는 선택 사항입니다. type 이 지정되지 않은 경우 ACL 규칙은 허용 규칙으로 처리됩니다.

4.2.104.3. 작업

허용 또는 거부할 규칙에 대한 작업 목록을 지정합니다.

지원되는 작업은 다음과 같습니다.

  • read
  • write
  • delete
  • 변경
  • describe
  • All
  • IdempotentWrite
  • ClusterAction
  • 개발
  • AlterConfigs
  • DescribeConfigs

특정 작업만 각 리소스에 대해 작동합니다.

AclAuthorizer, ACL 및 지원되는 리소스 및 작업 조합에 대한 자세한 내용은 권한 부여 및 ACL을 참조하십시오.

4.2.104.4. host

host 속성을 사용하여 규칙이 허용 또는 거부되는 원격 호스트를 지정합니다.

별표(*)를 사용하여 모든 호스트에서 작업을 허용하거나 거부합니다. host 필드는 선택 사항입니다. host 를 지정하지 않으면 기본적으로 * 값이 사용됩니다.

4.2.104.5. AclRule 스키마 속성

Expand
속성설명

host

ACL 규칙에 설명된 작업이 허용 또는 거부되는 호스트입니다.

string

작업

operation 속성은 더 이상 사용되지 않으며 spec.authorization.acls[*].operations 를 사용하여 구성해야 합니다. 허용 또는 거부되는 작업입니다. 지원되는 작업은 읽기, 쓰기, 만들기, 삭제, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite 및 All입니다.

문자열 ([Read, Write, Delete, Alter, Describe, All, IdempotentWrite, ClusterAction, Create, AlterConfigs, DescribeConfigs])

작업

허용 또는 거부할 작업 목록입니다. 지원되는 작업은 읽기, 쓰기, 만들기, 삭제, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite 및 All입니다.

문자열 ([Read, Write, Delete, Alter, Describe, All, IdempotentWrite, ClusterAction, Create, AlterConfigs, DescribeConfigs]) 배열

resource

지정된 ACL 규칙이 적용되는 리소스를 나타냅니다. 유형은 [topic, group, cluster, transactionalId] 중 하나여야 하는 지정된 오브젝트 내의 resource.type 속성 값에 따라 달라집니다.

AclRuleTopicResource, AclRuleGroupResource, AclRuleClusterResource, AclRuleTransactionalIdResource

type

규칙의 유형입니다. 현재 지원되는 유일한 유형은 허용됩니다. allow 유형의 ACL 규칙은 사용자가 지정된 작업을 실행할 수 있도록 하는 데 사용됩니다. 기본값은 allow 입니다.

문자열([allow, deny] 중 하나)

4.2.105. AclRuleTopicResource 스키마 참조

사용 대상: AclRule

type 속성은 AclRuleTopicResource 유형과 AclRuleGroupResource, AclRuleClusterResource, AclRuleTransactionalIdResource 유형을 구분하는 구분자입니다. AclRuleTopicResource 유형의 값 항목이 있어야 합니다.

Expand
속성설명

type

주제 여야 합니다.

string

name

지정된 ACL 규칙이 적용되는 리소스 이름입니다. patternType 필드와 결합하여 접두사 패턴을 사용할 수 있습니다.

string

patternType

리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 literal접두사 입니다. 리터럴 패턴 유형을 사용하면 리소스 필드가 전체 주제 이름의 정의로 사용됩니다. 접두사 패턴 유형을 사용하면 리소스 이름이 접두사로만 사용됩니다. 기본값은 리터럴 입니다.

문자열 ([prefix, literal] 중 하나)

4.2.106. AclRuleGroupResource 스키마 참조

사용 대상: AclRule

type 속성은 AclRuleGroupResource 유형 사용을 AclRuleTopicResource, AclRuleClusterResource, AclRuleTransactionalIdResource 와 구별하는 판별자입니다. AclRuleGroupResource 유형의 값 그룹이 있어야 합니다.

Expand
속성설명

type

group 이어야 합니다.

string

name

지정된 ACL 규칙이 적용되는 리소스 이름입니다. patternType 필드와 결합하여 접두사 패턴을 사용할 수 있습니다.

string

patternType

리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 literal접두사 입니다. 리터럴 패턴 유형을 사용하면 리소스 필드가 전체 주제 이름의 정의로 사용됩니다. 접두사 패턴 유형을 사용하면 리소스 이름이 접두사로만 사용됩니다. 기본값은 리터럴 입니다.

문자열 ([prefix, literal] 중 하나)

4.2.107. AclRuleClusterResource 스키마 참조

사용 대상: AclRule

type 속성은 AclRuleClusterResource 유형 사용을 AclRuleTopicResource, AclRuleGroupResource, AclRuleTransactionalIdResource 와 구분하는 구분자입니다. AclRuleClusterResource 유형의 값 cluster 가 있어야 합니다.

Expand
속성설명

type

클러스터 여야 합니다.

string

4.2.108. AclRuleTransactionalIdResource 스키마 참조

사용 대상: AclRule

type 속성은 AclRuleTransactionalIdResource 유형과 AclRuleTopicResource, AclRuleGroupResource, AclRuleClusterResource 유형을 구분하는 판별자입니다. AclRuleTransaction alId Resource 유형의 TransactionId 값이 있어야 합니다.

Expand
속성설명

type

transactionalId 여야 합니다.

string

name

지정된 ACL 규칙이 적용되는 리소스 이름입니다. patternType 필드와 결합하여 접두사 패턴을 사용할 수 있습니다.

string

patternType

리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 literal접두사 입니다. 리터럴 패턴 유형을 사용하면 리소스 필드가 전체 이름의 정의로 사용됩니다. 접두사 패턴 유형을 사용하면 리소스 이름이 접두사로만 사용됩니다. 기본값은 리터럴 입니다.

문자열 ([prefix, literal] 중 하나)

4.2.109. KafkaUserQuotas 스키마 참조

사용 대상: KafkaUserSpec

KafkaUserQuotas 스키마 속성의 전체 목록

Kafka를 사용하면 사용자가 클라이언트에서 리소스 사용을 제어하도록 할당량을 설정할 수 있습니다.

4.2.109.1. 할당량

다음 유형의 할당량을 사용하도록 클라이언트를 구성할 수 있습니다.

  • 네트워크 사용량 할당량은 할당량을 공유하는 각 클라이언트 그룹의 바이트 속도 임계값을 지정합니다.
  • CPU 사용률 할당량은 클라이언트의 브로커 요청 창을 지정합니다. 창은 클라이언트가 요청을 할 수 있는 시간의 백분율입니다. 클라이언트는 브로커의 I/O 스레드 및 네트워크 스레드를 요청합니다.
  • 파티션 변경 할당량은 클라이언트가 초당 만들 수 있는 파티션 변경의 수를 제한합니다.

파티션 변경 할당량을 사용하면 Kafka 클러스터가 동시 주제 작업으로 압도되지 않습니다. 파티션 변경은 다음 유형의 사용자 요청에 따라 수행됩니다.

  • 새 주제를 위한 파티션 생성
  • 기존 항목에 파티션 추가
  • 주제에서 파티션 삭제

파티션 변경 할당량을 구성하여 사용자 요청에 허용되는 변경 비율을 제어할 수 있습니다.

Kafka 클라이언트에 할당량을 사용하는 것이 여러 가지 상황에서 유용할 수 있습니다. 너무 높은 속도로 요청을 보내는 잘못 구성된 Kafka 생산자를 고려하십시오. 이러한 잘못된 구성으로 인해 다른 클라이언트에 대한 서비스 거부가 발생할 수 있으므로 문제가 있는 클라이언트가 차단되어야 합니다. 네트워크 제한 할당량을 사용하면 이러한 상황이 다른 클라이언트에 큰 영향을 미치지 않도록 할 수 있습니다.

AMQ Streams는 사용자 수준 할당량을 지원하지만 클라이언트 수준 할당량은 지원하지 않습니다.

Kafka 사용자 할당량 구성의 예

spec:
  quotas:
    producerByteRate: 1048576
    consumerByteRate: 2097152
    requestPercentage: 55
    controllerMutationRate: 10

Kafka 사용자 할당량에 대한 자세한 내용은 Apache Kafka 설명서 를 참조하십시오.

4.2.109.2. KafkaUserQuotas 스키마 속성

Expand
속성설명

consumerByteRate

그룹의 클라이언트가 제한되기 전에 각 클라이언트 그룹에서 브로커에서 가져올 수 있는 초당 최대 바이트 수에 대한 할당량입니다. 각broker별로 정의됩니다.

integer

controllerMutationRate

Create topics request, create partitions request 및 delete topics request에 대한 변경이 허용되는 비율에 대한 할당량입니다. 속도는 생성 또는 삭제된 파티션 수에 따라 누적됩니다.

number

producerByteRate

그룹의 클라이언트가 제한되기 전에 각 클라이언트 그룹이 브로커에 게시할 수 있는 초당 최대 바이트 수에 대한 할당량입니다. 각broker별로 정의됩니다.

integer

requestPercentage

각 클라이언트 그룹의 최대 CPU 사용률에 대한 할당량이 네트워크 및 I/O 스레드의 백분율로 사용됩니다.

integer

4.2.110. KafkaUserTemplate 스키마 참조

사용 대상: KafkaUserSpec

KafkaUserTemplate 스키마 속성의 전체 목록

User Operator에서 생성한 보안에 대한 추가 레이블 및 주석을 지정합니다.

KafkaUserTemplate표시 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaUser
metadata:
  name: my-user
  labels:
    strimzi.io/cluster: my-cluster
spec:
  authentication:
    type: tls
  template:
    secret:
      metadata:
        labels:
          label1: value1
        annotations:
          anno1: value1
  # ...

4.2.110.1. KafkaUserTemplate 스키마 속성

Expand
속성설명

secret

KafkaUser 리소스에 대한 템플릿입니다. 템플릿을 사용하면 암호 또는 TLS 인증서가 있는 시크릿이 생성되는 방법을 지정할 수 있습니다.

resourcetemplate

4.2.111. KafkaUserStatus 스키마 참조

사용 대상: KafkaUser

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

사용자 이름

사용자 이름.

string

secret

인증 정보가 저장되는 시크릿 의 이름입니다.

string

4.2.112. KafkaMirrorMaker 스키마 참조

KafkaMirrorMaker 유형이 더 이상 사용되지 않습니다. 대신 KafkaMirrorMaker2 를 사용하십시오.

Expand
속성설명

spec

Kafka MirrorMaker 사양입니다.

KafkaMirrorMakerSpec

status

Kafka MirrorMaker의 상태입니다.

KafkaMirrorMakerStatus

4.2.113. KafkaMirrorMakerSpec schema reference

사용됨: KafkaMirrorMaker

KafkaMirrorMakerSpec 스키마 속성의 전체 목록

Kafka MirrorMaker를 구성합니다.

4.2.113.1. include

include 속성을 사용하여 Kafka MirrorMaker가 소스에서 대상 Kafka 클러스터로 미러링하는 주제 목록을 구성합니다.

이 속성을 사용하면 단일 주제 이름으로 복잡한 패턴에 이르기까지 가장 간단한 경우의 정규식을 사용할 수 있습니다. 예를 들어 A|B 또는 모든 주제를 사용하여 A|B 또는 모든 주제를 사용하여 A 및 B를 미러링할 수 있습니다. 쉼표로 구분된 여러 정규 표현식을 Kafka MirrorMaker로 전달할 수도 있습니다.

4.2.113.2. KafkaMirrorMakerConsumerSpec and KafkaMirrorMakerProducerSpec

KafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec 을 사용하여 소스(consumer) 및 대상(producer) 클러스터를 구성합니다.

Kafka MirrorMaker는 항상 두 개의 Kafka 클러스터(소스 및 대상)와 함께 작동합니다. 연결을 설정하기 위해 소스 및 대상 Kafka 클러스터의 부트스트랩 서버는 HOSTNAME:PORT 쌍의 쉼표로 구분된 목록으로 지정됩니다. 쉼표로 구분된 각 목록에는 하나 이상의 Kafka 브로커 또는 HOSTNAME:PORT 쌍으로 지정된 Kafka 브로커를 가리키는 서비스가 포함되어 있습니다.

4.2.113.3. logging

Kafka MirrorMaker에는 구성 가능한 로거가 있습니다.

  • mirrormaker.root.logger

MirrorMaker는 Apache log4j 로거 구현을 사용합니다.

로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.

로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.namelogging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.

여기서는 인라인외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker
spec:
  # ...
  logging:
    type: inline
    loggers:
      mirrormaker.root.logger: INFO
      log4j.logger.org.apache.kafka.clients.NetworkClient: TRACE
      log4j.logger.org.apache.kafka.common.network.Selector: DEBUG
  # ...
참고

로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: mirror-maker-log4j.properties
  # ...

garbage collector(GC)

가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.

4.2.113.4. KafkaMirrorMakerSpec 스키마 속성

Expand
속성설명

버전

Kafka MirrorMaker 버전입니다. 기본값은 3.4.0입니다. 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 이해하려면 설명서를 참조하십시오.

string

replicas

배포 의 포드 수입니다.

integer

image

포드의 Docker 이미지입니다.

string

consumer

소스 클러스터 구성.

KafkaMirrorMakerConsumerSpec

프로듀서

대상 클러스터 구성.

KafkaMirrorMakerProducerSpec

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

whitelist

whitelist 속성은 더 이상 사용되지 않으며 spec.include 를 사용하여 구성해야 합니다. 미러링에 포함된 주제 목록입니다. 이 옵션을 사용하면 Java 스타일 정규식을 사용하는 모든 정규식이 허용됩니다. A|B 표현식을 사용하여 A 및 B라는 두 주제를 미러링할 수 있습니다. 또는 특별한 경우 정규식 * 을 사용하여 모든 항목을 미러링 할 수 있습니다. 쉼표로 구분된 여러 정규식을 지정할 수도 있습니다.

string

include

미러링에 포함된 주제 목록입니다. 이 옵션을 사용하면 Java 스타일 정규식을 사용하는 모든 정규식이 허용됩니다. A|B 표현식을 사용하여 A 및 B라는 두 주제를 미러링할 수 있습니다. 또는 특별한 경우 정규식 * 을 사용하여 모든 항목을 미러링 할 수 있습니다. 쉼표로 구분된 여러 정규식을 지정할 수도 있습니다.

string

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

logging

MirrorMaker의 로깅 구성입니다. 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

metricsConfig

지표 구성. 유형은 지정된 오브젝트 내의 metricsConfig.type 속성 값에 따라 달라지며, 이는 [jmxPrometheusExporter] 중 하나여야 합니다.

JmxPrometheusExporterMetrics

tracing

Kafka MirrorMaker에서 추적의 구성 유형은 지정된 오브젝트 내의 tracing.type 속성 값에 따라 달라집니다. 이 값은 [jaeger, opentelemetry] 중 하나여야 합니다.

JaegerTracing, OpenTelemetryTracing

template

Kafka MirrorMaker 리소스, 배포Pod가 생성되는 방법을 지정하는 템플릿입니다.

KafkaMirrorMakerTemplate

livenessProbe

Pod 활성 검사입니다.

probe

readinessProbe

Pod 준비 상태 확인

probe

4.2.114. KafkaMirrorMakerConsumerSpec schema reference

다음에서 사용됨: KafkaMirrorMakerSpec

KafkaMirrorMakerConsumerSpec 스키마 속성의 전체 목록

MirrorMaker 소비자를 구성합니다.

4.2.114.1. numStreams

consumer.numStreams 속성을 사용하여 소비자의 스트림 수를 구성합니다.

소비자 스레드 수를 늘려 미러링 주제의 처리량을 늘릴 수 있습니다. 소비자 스레드는 Kafka MirrorMaker에 대해 지정된 소비자 그룹에 속합니다. 주제 파티션은 병렬로 메시지를 사용하는 소비자 스레드 전체에 할당됩니다.

4.2.114.2. offsetCommitInterval

consumer.offsetCommitInterval 속성을 사용하여 소비자에 대한 오프셋 자동 커밋 간격을 구성합니다.

Kafka MirrorMaker 소스 Kafka 클러스터의 데이터를 사용한 후 오프셋이 커밋되는 일반 시간 간격을 지정할 수 있습니다. 시간 간격은 기본값인 60,000을 사용하여 밀리초 단위로 설정됩니다.

4.2.114.3. config

consumer.config 속성을 사용하여 소비자의 Kafka 옵션을 키로 구성합니다.

값은 다음 JSON 유형 중 하나일 수 있습니다.

  • 문자열
  • 숫자
  • 부울

예외

소비자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.

그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 소비자 그룹 식별자
  • 인터셉터

다음 접두사가 있는 속성은 설정할 수 없습니다.

  • bootstrap.servers
  • group.id
  • interceptor.classes
  • sasl.
  • 보안.
  • ssl.

config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음과 같은 예외를 포함하여 MirrorMaker로 전달됩니다.

중요

Cluster Operator는 제공된 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 MirrorMaker 클러스터가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 MirrorMaker 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.

4.2.114.4. groupId

consumer.groupId 속성을 사용하여 소비자 그룹 식별자를 구성합니다.

Kafka MirrorMaker는 Kafka 소비자를 사용하여 다른 Kafka 소비자 클라이언트와 마찬가지로 메시지를 소비합니다. 소스 Kafka 클러스터에서 사용된 메시지는 대상 Kafka 클러스터로 미러링됩니다. 사용자가 파티션 할당을 위해 소비자 그룹의 일부여야 하므로 그룹 식별자가 필요합니다.

4.2.114.5. KafkaMirrorMakerConsumerSpec schema properties

Expand
속성설명

numStreams

생성할 소비자 스트림 스레드 수를 지정합니다.

integer

offsetCommitInterval

ms에서 오프셋 자동 커밋 간격을 지정합니다. 기본값은 60000입니다.

integer

bootstrapServers

Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다.

string

groupId

이 소비자가 속하는 소비자 그룹을 식별하는 고유한 문자열입니다.

string

인증

클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 값은 [tls, scram-sha-256, scram-sha-512, plain, oauth] 중 하나여야 합니다.

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

config

MirrorMaker 소비자 구성. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, group.id, sasl., security., security., interceptor.classes (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).

map

tls

MirrorMaker를 클러스터에 연결하기 위한 TLS 구성입니다.

ClientTls

4.2.115. KafkaMirrorMakerProducerSpec schema reference

다음에서 사용됨: KafkaMirrorMakerSpec

KafkaMirrorMakerProducerSpec 스키마 속성의 전체 목록

MirrorMaker 생산자를 구성합니다.

4.2.115.1. abortOnSendFailure

producer.abortOnSendFailure 속성을 사용하여 프로듀서의 메시지 전송 실패를 처리하는 방법을 구성합니다.

기본적으로 Kafka MirrorMaker에서 Kafka 클러스터로 메시지를 보낼 때 오류가 발생하면 다음을 수행합니다.

  • Kafka MirrorMaker 컨테이너가 OpenShift에서 종료되었습니다.
  • 그런 다음 컨테이너가 다시 생성됩니다.

abortOnSendFailure 옵션이 false 로 설정된 경우 메시지 전송 오류가 무시됩니다.

4.2.115.2. config

producer.config 속성을 사용하여 생산자의 Kafka 옵션을 키로 구성합니다.

값은 다음 JSON 유형 중 하나일 수 있습니다.

  • 문자열
  • 숫자
  • 부울

예외

생산자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.

그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 인터셉터

다음 접두사가 있는 속성은 설정할 수 없습니다.

  • bootstrap.servers
  • interceptor.classes
  • sasl.
  • 보안.
  • ssl.

config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음과 같은 예외를 포함하여 MirrorMaker로 전달됩니다.

중요

Cluster Operator는 제공된 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 MirrorMaker 클러스터가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 MirrorMaker 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.

4.2.115.3. KafkaMirrorMakerProducerSpec schema properties

Expand
속성설명

bootstrapServers

Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다.

string

abortOnSendFailure

실패한 전송에서 종료하도록 MirrorMaker를 설정하는 플래그입니다. 기본값은 true 입니다.

boolean

인증

클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 값은 [tls, scram-sha-256, scram-sha-512, plain, oauth] 중 하나여야 합니다.

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

config

MirrorMaker 생산자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, sasl., security., interceptor.classes (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).

map

tls

MirrorMaker를 클러스터에 연결하기 위한 TLS 구성입니다.

ClientTls

4.2.116. KafkaMirrorMakerTemplate 스키마 참조

다음에서 사용됨: KafkaMirrorMakerSpec

Expand
속성설명

Deployment

Kafka MirrorMaker 배포 템플릿.

DeploymentTemplate

Pod

Kafka MirrorMaker 포드 템플릿.

PodTemplate

podDisruptionBudget

Kafka MirrorMaker PodDisruptionBudget 템플릿.

PodDisruptionBudgetTemplate

mirrorMakerContainer

Kafka MirrorMaker 컨테이너용 템플릿입니다.

ContainerTemplate

serviceAccount

Kafka MirrorMaker 서비스 계정용 템플릿입니다.

resourcetemplate

4.2.117. KafkaMirrorMakerStatus schema reference

사용됨: KafkaMirrorMaker

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

labelSelector

이 리소스를 제공하는 Pod의 라벨 선택기입니다.

string

replicas

이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다.

integer

4.2.118. KafkaBridge 스키마 참조

Expand
속성설명

spec

Kafka 브리지의 사양입니다.

KafkaBridgeSpec

status

Kafka 브리지의 상태입니다.

KafkaBridgeStatus

4.2.119. KafkaBridgeSpec schema reference

사용 대상: KafkaBridge

KafkaBridgeSpec 스키마 속성의 전체 목록

Kafka 브리지 클러스터를 구성합니다.

구성 옵션은 다음과 관련이 있습니다.

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 소비자 구성
  • 생산자 구성
  • HTTP 구성

4.2.119.1. logging

Kafka Bridge에는 구성 가능한 자체 로거가 있습니다.

  • rootLogger.level
  • logger.<operation-id>

로거에서 < operation-id >를 교체할 수 있습니다. <operation-id > 로거를 사용하여 특정 작업에 대한 로그 수준을 설정합니다.

  • createConsumer
  • deleteConsumer
  • subscribe
  • unsubscribe
  • poll
  • assign
  • commit
  • send
  • sendToPartition
  • seekToBeginning
  • seekToEnd
  • search
  • healthy
  • Ready
  • openapi

각 작업은 OpenAPI 사양에 따라 정의되며 브리지가 HTTP 클라이언트에서 요청을 수신하는 해당 API 끝점이 있습니다. 각 끝점의 로그 수준을 변경하여 수신 및 발신 HTTP 요청에 대한 세분화된 로깅 정보를 생성할 수 있습니다.

각 로거는 이름을 http.openapi.operation. <operation-id>로 할당하도록 구성해야 합니다. 예를 들어 송신 작업 로거에 대한 로깅 수준을 구성한다는 것은 다음을 정의하는 것을 의미합니다.

logger.send.name = http.openapi.operation.send
logger.send.level = DEBUG

Kafka Bridge는 Apache log4j2 로거 구현을 사용합니다. 로거는 log4j2.properties 파일에 정의되며, 이 파일에는 정상준비된 엔드포인트에 대해 다음과 같은 기본 구성이 있습니다.

logger.healthy.name = http.openapi.operation.healthy
logger.healthy.level = WARN
logger.ready.name = http.openapi.operation.ready
logger.ready.level = WARN

다른 모든 작업의 로그 수준은 기본적으로 INFO 로 설정됩니다.

로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.

로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. logging.valueFrom.configMapKeyRef.namelogging.valueFrom.configMapKeyRef.key 속성은 필수입니다. 이름 또는 키가 설정되지 않은 경우 기본 로깅이 사용됩니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.

여기서는 인라인외부 로깅의 예를 참조하십시오.

인라인 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
spec:
  # ...
  logging:
    type: inline
    loggers:
      rootLogger.level: INFO
      # enabling DEBUG just for send operation
      logger.send.name: "http.openapi.operation.send"
      logger.send.level: DEBUG
  # ...

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: bridge-logj42.properties
  # ...

구성되지 않은 모든 로거는 수준이 OFF 로 설정되어 있습니다.

Cluster Operator를 사용하여 Kafka 브리지 브리지를 배포한 경우 Kafka Bridge 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.

외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.

garbage collector(GC)

가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.

4.2.119.2. KafkaBridgeSpec 스키마 속성

Expand
속성설명

replicas

배포 의 포드 수입니다. 기본값은 1 입니다.

integer

image

포드의 Docker 이미지입니다.

string

bootstrapServers

Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다.

string

tls

Kafka 브리지를 클러스터에 연결하기 위한 TLS 구성입니다.

ClientTls

인증

클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 값은 [tls, scram-sha-256, scram-sha-512, plain, oauth] 중 하나여야 합니다.

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

http

HTTP 관련 구성입니다.

KafkaBridgeHttpConfig

adminClient

Kafka AdminClient 관련 구성

KafkaBridgeAdminClientSpec

consumer

Kafka 소비자 관련 구성.

KafkaBridgeConsumerSpec

프로듀서

Kafka 프로듀서 관련 구성

KafkaBridgeProducerSpec

resources

예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

jvmOptions

Pod에 현재 지원되지 않는 JVM 옵션입니다.

JvmOptions

logging

Kafka 브리지의 로깅 구성입니다. 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

clientRackInitImage

client.rack 을 초기화하는 데 사용되는 init 컨테이너의 이미지 .

string

Rack

client.rack 소비자 구성으로 사용할 노드 레이블 구성입니다.

Rack

enableMetrics

Kafka 브릿지에 대한 지표를 활성화합니다. 기본값은 false입니다.

boolean

livenessProbe

Pod 활성 검사입니다.

probe

readinessProbe

Pod 준비 상태 확인

probe

template

Kafka 브리지 리소스용 템플릿. 템플릿을 사용하면 배포Pod 가 생성되는 방법을 지정할 수 있습니다.

KafkaBridgeTemplate

tracing

Kafka 브리지에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 tracing.type 속성 값에 따라 달라집니다. 이 값은 [jaeger, opentelemetry] 중 하나여야 합니다.

JaegerTracing, OpenTelemetryTracing

4.2.120. KafkaBridgeHttpConfig schema reference

사용 대상: KafkaBridgeSpec

KafkaBridgeHttpConfig 스키마 속성의 전체 목록

Kafka 브리지의 Kafka 클러스터에 대한 HTTP 액세스를 구성합니다.

기본 HTTP 구성은 Kafka 브리지가 포트 8080에서 수신 대기하도록 하는 것입니다.

4.2.120.1. CORS

Kafka 클러스터에 대한 HTTP 액세스를 활성화할 뿐만 아니라 HTTP 속성은 CORS(Cross-Origin Resource Sharing)를 통해 Kafka Bridge에 대한 액세스 제어를 활성화하고 정의하는 기능을 제공합니다. CORS는 브라우저에서 하나 이상의 원본에서 선택된 리소스에 액세스할 수 있는 HTTP 메커니즘입니다. CORS를 구성하려면 허용되는 리소스 원본 및 HTTP 액세스 방법 목록을 정의합니다. 원본의 경우 URL 또는 Java 정규식을 사용할 수 있습니다.

Kafka 브리지 HTTP 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  http:
    port: 8080
    cors:
      allowedOrigins: "https://strimzi.io"
      allowedMethods: "GET,POST,PUT,DELETE,OPTIONS,PATCH"
  # ...

4.2.120.2. KafkaBridgeHttpConfig 스키마 속성

Expand
속성설명

port

서버가 수신 대기 중인 포트입니다.

integer

CORS

HTTP 브릿지에 대한 CORS 구성입니다.

KafkaBridgeHttpCors

4.2.121. KafkaBridgeHttpCors schema reference

사용 대상: KafkaBridgeHttpConfig

Expand
속성설명

allowedOrigins

허용된 원본 목록입니다. Java 정규식을 사용할 수 있습니다.

문자열 배열

allowedMethods

허용된 HTTP 메서드 목록입니다.

문자열 배열

4.2.122. KafkaBridgeAdminClientSpec schema reference

사용 대상: KafkaBridgeSpec

Expand
속성설명

config

브릿지에서 생성한 AdminClient 인스턴스에 사용되는 Kafka AdminClient 구성입니다.

map

4.2.123. KafkaBridgeConsumerSpec schema reference

사용 대상: KafkaBridgeSpec

KafkaBridgeConsumerSpec 스키마 속성의 전체 목록

Kafka 브릿지의 소비자 옵션을 키로 구성합니다.

값은 다음 JSON 유형 중 하나일 수 있습니다.

  • 문자열
  • 숫자
  • 부울

예외

소비자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.

그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 소비자 그룹 식별자

다음 접두사가 있는 속성은 설정할 수 없습니다.

  • bootstrap.servers
  • group.id
  • sasl.
  • 보안.
  • ssl.

config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 대한 다음 예외를 포함하여 Kafka Bridge로 전달됩니다.

Kafka 브리지 소비자 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  consumer:
    config:
      auto.offset.reset: earliest
      enable.auto.commit: true
    # ...

중요

Cluster Operator는 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Bridge 배포가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 Kafka Bridge 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.

4.2.123.1. KafkaBridgeConsumerSpec schema properties

Expand
속성설명

config

브릿지에서 생성한 소비자 인스턴스에 사용되는 Kafka 소비자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, group.id, sasl., security. (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).

map

4.2.124. KafkaBridgeProducerSpec schema reference

사용 대상: KafkaBridgeSpec

KafkaBridgeProducerSpec 스키마 속성의 전체 목록

Kafka 브릿지의 생산자 옵션을 키로 구성합니다.

값은 다음 JSON 유형 중 하나일 수 있습니다.

  • 문자열
  • 숫자
  • 부울

예외

생산자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.

그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 소비자 그룹 식별자

다음 접두사가 있는 속성은 설정할 수 없습니다.

  • bootstrap.servers
  • sasl.
  • 보안.
  • ssl.

config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 대한 다음 예외를 포함하여 Kafka Bridge로 전달됩니다.

Kafka 브리지 생산자 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  producer:
    config:
      acks: 1
      delivery.timeout.ms: 300000
    # ...

중요

Cluster Operator는 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Bridge 배포가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 Kafka Bridge 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.

4.2.124.1. KafkaBridgeProducerSpec 스키마 속성

Expand
속성설명

config

브릿지에서 생성한 생산자 인스턴스에 사용되는 Kafka 생산자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, sasl., security. (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols).

map

4.2.125. KafkaBridgeTemplate 스키마 참조

사용 대상: KafkaBridgeSpec

Expand
속성설명

Deployment

Kafka 브리지 배포를 위한 템플릿 .

DeploymentTemplate

Pod

Kafka 브리지 포드 용 템플릿 .

PodTemplate

apiService

Kafka 브리지 API 서비스 템플릿.

InternalServiceTemplate

podDisruptionBudget

Kafka Bridge PodDisruptionBudget 템플릿.

PodDisruptionBudgetTemplate

bridgeContainer

Kafka 브리지 컨테이너용 템플릿입니다.

ContainerTemplate

clusterRoleBinding

Kafka Bridge ClusterRoleBinding용 템플릿입니다.

resourcetemplate

serviceAccount

Kafka 브리지 서비스 계정용 템플릿.

resourcetemplate

initContainer

Kafka Bridge init 컨테이너용 템플릿입니다.

ContainerTemplate

4.2.126. KafkaBridgeStatus 스키마 참조

사용 대상: KafkaBridge

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

url

외부 클라이언트 애플리케이션이 Kafka 브리지에 액세스할 수 있는 URL입니다.

string

labelSelector

이 리소스를 제공하는 Pod의 라벨 선택기입니다.

string

replicas

이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다.

integer

4.2.127. KafkaConnector 스키마 참조

Expand
속성설명

spec

Kafka 커넥터의 사양입니다.

KafkaConnectorSpec

status

Kafka 커넥터의 상태입니다.

KafkaConnectorStatus

4.2.128. KafkaConnectorSpec 스키마 참조

사용 대상: KafkaConnector

Expand
속성설명

클래스

Kafka 커넥터의 클래스입니다.

string

tasksMax

Kafka 커넥터의 최대 작업 수입니다.

integer

autoRestart

커넥터 및 작업 구성을 자동으로 다시 시작합니다.

autoRestart

config

Kafka 커넥터 구성입니다. connector.class, tasks.max 속성을 설정할 수 없습니다.

map

일시 중지

커넥터를 일시 중지해야 하는지 여부입니다. 기본값은 false입니다.

boolean

4.2.129. AutoRestart 스키마 참조

used in: KafkaConnectorSpec, KafkaMirrorMaker2ConnectorSpec

AutoRestart 스키마 속성의 전체 목록

FAILED 상태인 커넥터 및 작업에 대한 자동 재시작을 구성합니다.

활성화된 경우 백오프 알고리즘은 실패한 각 커넥터 및 해당 작업에 자동 재시작을 적용합니다.

Operator는 조정 시 자동 재시작을 시도합니다. 첫 번째 시도가 실패하면 Operator에서 최대 6개의 시도를 더 만듭니다. 재시작 시도 간격은 2분에서 30분으로 증가합니다. 다시 시작할 때마다 실패한 커넥터 및 작업은 FAILED 에서 RESTARTING 으로 전송됩니다. 마지막 시도 후 재시작이 실패하면 커넥터 구성에 문제가 있을 수 있습니다. 커넥터와 작업은 FAILED 상태로 남아 있으며 수동으로 다시 시작해야 합니다. 이 작업은 strimzi.io/restart: "true"KafKaConnector 사용자 정의 리소스에 주석을 달아 이를 수행할 수 있습니다.

Kafka Connect 커넥터의 경우 KafkaConnector 리소스의 autoRestart 속성을 사용하여 실패한 커넥터 및 작업의 자동 재시작을 활성화합니다.

Kafka Connect에 실패한 커넥터의 자동 재시작 활성화

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: my-source-connector
spec:
  autoRestart:
    enabled: true

MirrorMaker 2의 경우 KafkaMirrorMaker2 리소스에서 커넥터의 autoRestart 속성을 사용하여 실패한 커넥터 및 작업을 자동으로 다시 시작할 수 있습니다.

MirrorMaker 2에 실패한 커넥터의 자동 재시작 활성화

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
metadata:
  name: my-mm2-cluster
spec:
  mirrors:
  - sourceConnector:
      autoRestart:
        enabled: true
      # ...
    heartbeatConnector:
      autoRestart:
        enabled: true
      # ...
    checkpointConnector:
      autoRestart:
        enabled: true
      # ...

4.2.129.1. AutoRestart 스키마 속성

Expand
속성설명

enabled

실패한 커넥터 및 작업에 대한 자동 재시작을 활성화하거나 비활성화해야 하는지 여부입니다.

boolean

4.2.130. KafkaConnectorStatus 스키마 참조

사용 대상: KafkaConnector

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

autoRestart

자동 재시작 상태입니다.

AutoRestartStatus

connectorStatus

Kafka Connect REST API에서 보고한 커넥터 상태입니다.

map

tasksMax

Kafka 커넥터의 최대 작업 수입니다.

integer

주제

Kafka 커넥터에서 사용하는 항목 목록입니다.

문자열 배열

4.2.131. AutoRestartStatus 스키마 참조

사용 대상: KafkaConnectorStatus, KafkaMirrorMaker2Status

Expand
속성설명

count

커넥터 또는 작업을 다시 시작하는 횟수입니다.

integer

connectorName

다시 시작되는 커넥터의 이름입니다.

string

lastRestartTimestamp

자동 다시 시작을 마지막으로 시도한 시간입니다. 필요한 형식은 UTC 시간대의 'yyy-MM-ddTHH:mm:ssZ'입니다.

string

4.2.132. KafkaMirrorMaker2 스키마 참조

Expand
속성설명

spec

Kafka MirrorMaker 2 클러스터의 사양입니다.

KafkaMirrorMaker2Spec

status

Kafka MirrorMaker 2 클러스터의 상태.

KafkaMirrorMaker2Status

4.2.133. KafkaMirrorMaker2Spec 스키마 참조

다음에서 사용됨: KafkaMirrorMaker2

Expand
속성설명

버전

Kafka Connect 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다.

string

replicas

Kafka Connect 그룹의 Pod 수입니다. 기본값은 3 입니다.

integer

image

포드의 Docker 이미지입니다.

string

connectCluster

Kafka Connect에 사용되는 클러스터 별칭입니다. 별칭은 spec.clusters 에 있는 목록의 클러스터와 일치해야 합니다.

string

클러스터

미러링을 위한 Kafka 클러스터입니다.

KafkaMirrorMaker2ClusterSpec array

미러

MirrorMaker 2 커넥터 구성.

KafkaMirrorMaker2MirrorSpec array

resources

CPU 및 메모리 리소스 및 요청된 초기 리소스에 대한 최대 제한입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오.

resourceRequirements

livenessProbe

Pod 활성 검사입니다.

probe

readinessProbe

Pod 준비 상태 확인

probe

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

jmxOptions

ScanSetting 옵션.

KafkaJmxOptions

logging

Kafka Connect의 로깅 구성입니다. 유형은 지정된 개체 내의 logging.type 속성 값에 따라 달라지며 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

clientRackInitImage

client.rack 을 초기화하는 데 사용되는 init 컨테이너의 이미지 .

string

Rack

client.rack 소비자 구성으로 사용할 노드 레이블 구성입니다.

Rack

tracing

Kafka Connect에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 tracing.type 속성 값에 따라 달라집니다. 이 값은 [jaeger, opentelemetry] 중 하나여야 합니다.

JaegerTracing, OpenTelemetryTracing

template

Kafka Connect 및 Kafka MirrorECDHE 2 리소스에 대한 템플릿입니다. 템플릿을 사용하면 배포,Pod서비스 생성 방법을 지정할 수 있습니다.

KafkaConnectTemplate

externalConfiguration

Secrets 또는 ConfigMaps의 데이터를 Kafka Connect Pod로 전달하여 커넥터를 구성하는 데 사용합니다.

ExternalConfiguration

metricsConfig

지표 구성. 유형은 지정된 오브젝트 내의 metricsConfig.type 속성 값에 따라 달라지며, 이는 [jmxPrometheusExporter] 중 하나여야 합니다.

JmxPrometheusExporterMetrics

4.2.134. KafkaMirrorMaker2ClusterSpec 스키마 참조

에 사용됨: KafkaMirrorMaker2Spec

KafkaMirrorMaker2ClusterSpec 스키마 속성의 전체 목록

미러링을 위해 Kafka 클러스터를 구성합니다.

4.2.134.1. config

config 속성을 사용하여 Kafka 옵션을 구성합니다.

표준 Apache Kafka 구성을 제공하여 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.

TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl 속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm 속성을 구성할 수도 있습니다.

4.2.134.2. KafkaMirrorMaker2ClusterSpec 스키마 속성

Expand
속성설명

별칭

Kafka 클러스터를 참조하는 데 사용되는 별칭입니다.

string

bootstrapServers

Kafka 클러스터에 대한 연결을 설정하는 쉼표로 구분된 host:port 쌍 목록입니다.

string

tls

MirrorMaker 2 커넥터를 클러스터에 연결하기 위한 TLS 구성입니다.

ClientTls

인증

클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 값은 [tls, scram-sha-256, scram-sha-512, plain, oauth] 중 하나여야 합니다.

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

config

MirrorMaker 2 클러스터 구성. 접두사가 있는 속성은 ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes(예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.cipher.protocol, ssl.protocols.protocols).

map

4.2.135. KafkaMirrorMaker2MirrorSpec 스키마 참조

에 사용됨: KafkaMirrorMaker2Spec

Expand
속성설명

sourceCluster

Kafka MirrorMaker 2 커넥터에서 사용하는 소스 클러스터의 별칭입니다. 별칭은 spec.clusters 에 있는 목록의 클러스터와 일치해야 합니다.

string

targetCluster

Kafka MirrorMaker 2 커넥터에서 사용하는 대상 클러스터의 별칭입니다. 별칭은 spec.clusters 에 있는 목록의 클러스터와 일치해야 합니다.

string

sourceConnector

Kafka MirrorMaker 2 소스 커넥터의 사양입니다.

KafkaMirrorMaker2ConnectorSpec

heartbeatConnector

Kafka MirrorMaker 2 하트비트 커넥터의 사양입니다.

KafkaMirrorMaker2ConnectorSpec

checkpointConnector

Kafka MirrorMaker 2 체크포인트 커넥터의 사양입니다.

KafkaMirrorMaker2ConnectorSpec

topicsPattern

미러링할 주제와 일치하는 정규식(예: "topic1|topic2|topic3")입니다. 쉼표로 구분된 목록도 지원됩니다.

string

topicsBlacklistPattern

topicsBlacklistPattern 속성은 더 이상 사용되지 않으며 이제 .spec.mirrors.topicsExcludePattern 을 사용하여 구성해야 합니다. 미러링에서 제외할 주제와 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

topicsExcludePattern

미러링에서 제외할 주제와 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

groupsPattern

미러링할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

groupsBlacklistPattern

groupsBlacklistPattern 속성은 더 이상 사용되지 않으며 이제 .spec.mirrors.groupsExcludePattern 을 사용하여 구성해야 합니다. 미러링에서 제외할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

groupsExcludePattern

미러링에서 제외할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

4.2.136. KafkaMirrorMaker2ConnectorSpec 스키마 참조

에 사용됨: KafkaMirrorMaker2MirrorSpec

Expand
속성설명

tasksMax

Kafka 커넥터의 최대 작업 수입니다.

integer

config

Kafka 커넥터 구성입니다. connector.class, tasks.max 속성을 설정할 수 없습니다.

map

autoRestart

커넥터 및 작업 구성을 자동으로 다시 시작합니다.

autoRestart

일시 중지

커넥터를 일시 중지해야 하는지 여부입니다. 기본값은 false입니다.

boolean

4.2.137. KafkaMirrorMaker2Status 스키마 참조

다음에서 사용됨: KafkaMirrorMaker2

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

url

Kafka Connect 커넥터를 관리하고 모니터링하기 위한 REST API 끝점의 URL입니다.

string

autoRestartStatuses

MirrorMaker 2 커넥터 자동 재시작 상태 목록입니다.

AutoRestartStatus 배열

connectorPlugins

이 Kafka Connect 배포에서 사용할 수 있는 커넥터 플러그인 목록입니다.

ConnectorPlugin 배열

커넥터

Kafka Connect REST API에서 보고한 대로 MirrorMaker 2 커넥터 상태 목록입니다.

맵 배열

labelSelector

이 리소스를 제공하는 Pod의 라벨 선택기입니다.

string

replicas

이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다.

integer

4.2.138. KafkaRebalance 스키마 참조

Expand
속성설명

spec

Kafka의 사양을 재조정합니다.

KafkaRebalanceSpec

status

Kafka의 상태를 재조정합니다.

KafkaRebalanceStatus

4.2.139. KafkaRebalanceSpec schema reference

사용 대상: KafkaRebalance

Expand
속성설명

mode

모드: 재조정을 실행합니다. 지원되는 모드는 전체,add-brokers,remove-brokers 입니다. 지정하지 않으면 기본적으로 전체 모드가 사용됩니다.

  • 전체 모드는 클러스터의 모든 브로커 간에 재조정을 실행합니다.
  • Add-brokers 모드는 클러스터를 확장한 후 일부 복제본을 새로 추가된 브로커로 이동하는 데 사용할 수 있습니다.
  • 제거할 브로커에서 복제본을 이동하기 위해 클러스터를 축소하기 전에 remove-brokers 모드를 사용할 수 있습니다.

문자열( among [remove-brokers, full, add-brokers])

brokers

스케일링 또는 재조정에 사용할 축소의 경우 새로 추가된 브로커 목록입니다. 이 목록은 재조정 모드 add-brokersremove-brokers 에서만 사용할 수 있습니다. 이는 전체 모드에서 무시됩니다.

정수 배열

목표

리밸런스 제안을 생성 및 실행하는 데 사용할 우선 순위를 줄임으로써 정렬된 목표 목록입니다. 지원되는 목표는 https://github.com/linkedin/cruise-control#goals 에서 확인할 수 있습니다. 빈 목표 목록이 제공되면 default.goals Cruise Control 구성 매개변수에 선언된 값이 사용됩니다.

문자열 배열

skipHardGoalCheck

최적화 제안 생성에서 Kafka CR에 지정된 하드 목표를 건너뛰도록 허용할지 여부입니다. 이는 이러한 어려운 목표 중 일부가 균형 솔루션을 찾는 것을 막을 때 유용할 수 있습니다. 기본값은 false입니다.

boolean

rebalanceDisk

동일한 브로커에서 디스크 공간 사용률의 균형을 조정하는 인브로커 디스크 밸런싱을 활성화합니다. 여러 디스크가 있는 JBOD 스토리지를 사용하는 Kafka 배포에만 적용됩니다. 활성화하면 inter-broker 밸런싱이 비활성화됩니다. 기본값은 false입니다.

boolean

excludedTopics

일치하는 항목이 최적화 제안 계산에서 제외되는 정규식입니다. 이 표현식은 java.util.regex.Pattern 클래스에서 구문 분석합니다. 지원되는 형식에 대한 자세한 내용은 해당 클래스에 대한 설명서를 참조하십시오.

string

concurrentPartitionMovementsPerBroker

지속적인 파티션 복제 동작의 상한은 각 브로커의 내외로 들어갑니다. 기본값은 5입니다.

integer

concurrentIntraBrokerPartitionMovements

각 브로커 내에서 디스크의 지속적인 파티션 복제 변동의 상한입니다. 기본값은 2입니다.

integer

concurrentLeaderMovements

지속적인 파티션 리더십의 범위. 기본값은 1000입니다.

integer

replicationThrottle

복제본 이동에 사용되는 대역폭의 상한(초당 바이트 단위)입니다. 기본적으로 제한은 없습니다.

integer

replicaMovementStrategies

생성된 최적화 제안에서 복제본 변동에 대한 실행 순서를 결정하는 데 사용되는 전략 클래스 이름 목록입니다. 기본적으로 BaseReplica>-<mentStrategy가 사용되며, 생성된 순서대로 복제본 이동을 실행합니다.

문자열 배열

4.2.140. KafkaRebalanceStatus schema reference

사용 대상: KafkaRebalance

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

Operator가 마지막으로 조정한 CRD 생성입니다.

integer

sessionId

이 KafkaRebalance 리소스와 관련된 Cruise Control에 대한 요청의 세션 식별자입니다. Kafka 리밸런스 Operator에서 지속적인 재조정 작업의 상태를 추적하는 데 사용됩니다.

string

optimizationResult

최적화 결과를 설명하는 JSON 오브젝트입니다.

map

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동