12.2. 스키마 속성


12.2.1. Kafka 스키마 참조

Expand
속성설명

spec

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

KafkaSpec

status

Kafka 및 Zoo Cryostat 클러스터 및 Topic Operator의 상태입니다.

KafkaStatus

12.2.2. KafkaSpec 스키마 참조

사용 위치: Kafka

Expand
속성설명

kafka

Kafka 클러스터 구성

KafkaClusterSpec

zookeeper

Zoo Cryostat 클러스터 구성.

ZookeeperClusterSpec

entityOperator

Entity Operator 구성

EntityOperatorSpec

clusterCa

클러스터 인증 기관 구성.

CertificateAuthority

clientsCa

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

CertificateAuthority

cruiseControl

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

CruiseControlSpec

kafkaExporter

Kafka 내보내기의 구성 Kafka 내보내기는 주제/파티션에서 소비자 그룹의 지연과 같은 추가 메트릭을 제공할 수 있습니다.

KafkaExporterSpec

maintenanceTimeWindows

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

문자열 배열

12.2.3. KafkaClusterSpec schema reference

사용 위치: KafkaSpec

KafkaClusterSpec 스키마 속성의 전체 목록

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

12.2.3.1. 리스너

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

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

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  kafka:
    # ...
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
    # ...
  zookeeper:
    # ...
Copy to Clipboard Toggle word wrap

12.2.3.2. config

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

표준 Apache Kafka 구성은 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.

구성할 수 없는 구성 옵션은 다음과 같습니다.

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

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

  • 문자열
  • 숫자
  • 부울

AMQ Streams에서 직접 관리하는 옵션을 제외하고 Apache Kafka 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 같거나 시작하는 키가 있는 모든 구성 옵션은 허용되지 않습니다.

  • 리스너
  • advertised.
  • 브로커.
  • 리스너.
  • host.name
  • port
  • inter.broker.listener.name
  • sasl.
  • ssl.
  • 보안.
  • 암호.
  • principal.builder.class
  • log.dir
  • zookeeper.connect
  • zookeeper.set.acl
  • 인증자.
  • super.user

config 속성에 forbidden 옵션이 있으면 무시되고 Cluster Operator 로그 파일에 경고 메시지가 출력됩니다. 지원되는 모든 옵션은 Kafka로 전달됩니다.

금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다. Zookeeper .connection.timeout.ms 속성을 구성하여 Zoo Cryostat 연결을 설정하는 데 허용되는 최대 시간을 설정할 수도 있습니다.

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
      ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      ssl.enabled.protocols: "TLSv1.2"
      ssl.protocol: "TLSv1.2"
      zookeeper.connection.timeout.ms: 6000
    # ...
Copy to Clipboard Toggle word wrap

12.2.3.3. brokerRackInitImage

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

  1. Cluster Operator 구성의 STRIMZI_DEFAULT_KAFKA_INIT_IMAGE 환경 변수에 지정된 컨테이너 이미지입니다.
  2. registry.redhat.io/amq7/amq-streams-rhel8-operator:2.2.2 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
    # ...
Copy to Clipboard Toggle word wrap

참고

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

12.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 로거 구현을 사용합니다.

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

로거 및 수준을 직접 (인라인) 지정하거나 사용자 지정(외부) 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"
  # ...
Copy to Clipboard Toggle word wrap

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: kafka-log4j.properties
  # ...
Copy to Clipboard Toggle word wrap

구성되지 않은 사용 가능한 로거는 수준이 OFF 로 설정되어 있습니다.

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

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

가비지 수집기(GC)

jvmOptions 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.

12.2.3.5. KafkaClusterSpec 스키마 속성

Expand
속성설명

버전

kafka 브로커 버전입니다. 기본값은 3.2.3입니다. 버전 업그레이드 또는 다운그레이드에 필요한 프로세스를 이해하려면 사용자 설명서를 참조하십시오.

string

replicas

클러스터의 Pod 수입니다.

integer

image

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

string

리스너

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

GenericKafkaListener 배열

config

다음 접두사가 있는 Kafka 브로커 구성 속성은 설정할 수 없습니다: listeners, advertise., broker., broker., host.name, port, inter.broker.listener.name, sasl., ssl., password., password., log.dir, zookeeper.connect, zookeeper.acl, zookeeper.ssl, zookeeper.ssl, Zookeeper.clientCnxnSocket, authorizer., super.user, cruise.control.metrics.topic, cruise.control.metrics.reporter.bootstrap.servers,node.id, process.roles, controller. (예: Zookeeper.connection.timeout.ms, ssl.cipher.suites, ssl.cipher.suites, SSL.protocol, ssl.enabled.protocols,cruise.control.metrics.topic.partitions, cruise.control.metrics.topic.topic.factor, cruise.control.topic.retention.ms,cruise.control.metrics.topic.retries.metrics.retries.retries.retries.metrics.topic.auto.topic.create.metrics.auto.topic.create.create.metrics.auto.metrics.create.timeout.timeout.timeout cruise.control.metrics.topic.min.insync.replicas,controller.quorum.election.max.ms, controller.quorum.election.timeout.ms, controller.quorum.fetch.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

포드 활성 확인.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

jmxOptions

Kafka 브로커를 위한 Cryostat 옵션.

KafkaJmxOptions

resources

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

ResourceRequirements

metricsConfig

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

JmxPrometheusExporterMetrics

logging

Kafka의 로깅 구성입니다. 유형은 지정된 오브젝트 내의 logging.type 속성 값에 따라 다르며, 이는 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

template

Kafka 클러스터 리소스에 대한 템플릿입니다. 템플릿을 사용하면 StatefulSet,Pod 및 서비스가 생성되는 방법을 지정할 있습니다.

KafkaClusterTemplate

12.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
    #...
Copy to Clipboard Toggle word wrap

12.2.4.1. 리스너

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

리스너 구성의 예

listeners:
  - name: plain
    port: 9092
    type: internal
    tls: false
Copy to Clipboard Toggle word wrap

이름과 포트는 Kafka 클러스터 내에서 고유해야 합니다. 이름은 소문자와 숫자를 포함하여 최대 25자의 길이일 수 있습니다. 허용되는 포트 번호는 9092 이상이며, 이는 Prometheus 및 Cryostat에 이미 사용되는 포트 9404 및 9999를 제외하고 사용합니다.

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

12.2.4.2. type

유형은 internal 로 설정되거나 외부 리스너의 경우 경로, 로드 밸런서 ,node port 또는 ingress 로 설정됩니다.

internal

tls 속성을 사용하여 암호화하거나 암호화하지 않고 내부 리스너를 구성할 수 있습니다.

내부 리스너 구성의 예

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
    #...
Copy to Clipboard Toggle word wrap

라우트

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

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

경로 리스너 구성의 예

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external1
        port: 9094
        type: route
        tls: true
    #...
Copy to Clipboard Toggle word wrap

Ingress

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

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

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

수신 리스너 구성의 예

#...
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
  #...
Copy to Clipboard Toggle word wrap

참고

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

loadbalancer

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

모든 Kafka 브로커 포드에 대해 새 로드 밸런서 서비스가 생성됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가 로드 밸런서가 생성됩니다. LoadBalancers는 다음 예제에서 포트 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
    #...
Copy to Clipboard Toggle word wrap

nodeport

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

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

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

nodeport 리스너 구성의 예

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external4
        port: 9095
        type: nodeport
        tls: false
        configuration:
          preferredNodePortAddressType: InternalDNS
    #...
Copy to Clipboard Toggle word wrap

참고

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

12.2.4.3. port

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

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

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

클라이언트 연결에 대한 주소 및 포트를 검색하는 명령의 예

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

참고

리스너는 인터브루커 통신(9090 및 9091) 및 메트릭(9404)에 대해 별도로 설정된 포트를 사용하도록 구성할 수 없습니다.

12.2.4.4. tls

TLS 속성은 필수입니다.

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

TLS 암호화는 항상 경로 리스너와 함께 사용됩니다.

12.2.4.5. 인증

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

12.2.4.6. networkPolicyPeers

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

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
# ...
Copy to Clipboard Toggle word wrap

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

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

networkPolicyPeers 필드의 구문은 NetworkPolicy 리소스의 from 필드와 동일합니다.

12.2.4.7. GenericKafkaListener 스키마 속성

Expand
속성설명

name

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

string

port

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

integer

type

리스너 유형입니다. 현재 지원되는 유형은 internal,route,loadbalancer,nodeportingress 입니다.

  • internal 유형은 OpenShift 클러스터 내에서만 Kafka를 내부적으로 노출합니다.
  • 경로 유형은 OpenShift 경로를 사용하여 Kafka를 노출합니다.
  • LoadBalancer 유형은 LoadBalancer 유형 서비스를 사용하여 Kafka를 노출합니다.
  • NodePort 유형은 NodePort 유형 서비스를 사용하여 Kafka를 노출합니다.
  • Ingress 유형은 OpenShift Nginx Ingress를 사용하여 Kafka를 노출합니다.

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

tls

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

boolean

인증

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

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthentication, KafkaListenerAuthenticationCustom

구성

추가 리스너 구성.

GenericKafkaListenerConfiguration

networkPolicyPeers

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

NetworkPolicyPeer 배열

12.2.5. KafkaListenerAuthenticationTls 스키마 참조

사용 중인 위치: GenericKafkaListener

type 속성은 KafkaListenerAuthenticationTls 유형과 KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth, KafkaListenerAuthentication AuthenticationCustom 의 사용을 구분하는 분류자입니다. KafkaListenerAuthenticationTls 유형의 tls 값이 있어야 합니다.

Expand
속성설명

type

tls 여야 합니다.

string

12.2.6. KafkaListenerAuthenticationScramSha512 schema reference

사용 중인 위치: GenericKafkaListener

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

Expand
속성설명

type

scram-sha-512 여야 합니다.

string

12.2.7. KafkaListenerAuthenticationOAuth 스키마 참조

사용 중인 위치: GenericKafkaListener

type 속성은 KafkaListenerAuthenticationOAuth 유형과 KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthentication AuthenticationCustom 의 사용을 구분하는 분류자입니다. KafkaListenerAuthenticationOAuth 유형의 oauth 값이 있어야 합니다.

Expand
속성설명

accessTokenIsJwt

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

boolean

checkAccessTokenType

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

boolean

checkAudience

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

boolean

checkIssuer

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

boolean

clientAudience

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

string

clientId

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

string

clientScope

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

string

clientSecret

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

GenericSecretSource

connectTimeoutSeconds

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

integer

customClaimCheck

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

string

disableTlsHostnameVerification

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

boolean

enableECDSA

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

boolean

enableOauthBearer

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

boolean

enablePlain

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

boolean

fallbackUserNameClaim

userNameClaim 에서 지정한 클레임이 없는 경우 사용자 ID에 사용할 대체 사용자 이름 클레임입니다. 이 기능은 client_credentials 인증에만 클라이언트 ID가 다른 클레임에 제공될 때 유용합니다. userNameClaim 이 설정된 경우에만 적용됩니다.

string

fallbackUserNamePrefix

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

string

groupsClaim

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

string

groupsClaimDelimiter

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

string

introspectionEndpointUri

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

string

jwksEndpointUri

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

string

jwksExpirySeconds

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

integer

jwksMinRefreshPauseSeconds

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

integer

jwksRefreshSeconds

JWKS 인증서를 새로 고치는 빈도를 구성합니다. 새로 고침 간격은 60초 이상 짧아 jwksExpirySeconds 에 지정된 만료 간격이어야 합니다. 기본값은 300초입니다.

integer

maxSecondsWithoutReauthentication

인증된 세션이 재인증 없이 유효한 최대 시간(초)입니다. 그러면 Apache Kafka 재인증 기능이 활성화되고 액세스 토큰이 만료되면 세션이 만료됩니다. 최대 시간 이전에 액세스 토큰이 만료되거나 최대 시간에 도달하면 클라이언트가 다시 인증해야 합니다. 그렇지 않으면 서버가 연결을 삭제합니다. 기본적으로 설정되지 않음 - 액세스 토큰이 만료되면 인증된 세션이 만료되지 않습니다. 이 옵션은 SASL_OAUTHBEARER 인증 메커니즘에만 적용됩니다( enableOauthBearertrue인 경우).

integer

readTimeoutSeconds

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

integer

tlsTrustedCertificates

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

CertSecretSource array

tokenEndpointUri

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

string

type

oauth 여야 합니다.

string

userInfoEndpointUri

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

string

userNameClaim

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

string

validIssuerUri

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

string

validTokenType

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

string

12.2.8. GenericSecretSource 스키마 참조

사용 위치: KafkaClientAuthenticationOAuth, KafkaListenerAuthenticationCustom, KafkaListenerAuthenticationOAuth

Expand
속성설명

key

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

string

secretName

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

string

12.2.9. CertSecretSource 스키마 참조

에서 사용됨: clientTls, KafkaAuthorizationKeycloak, KafkaClientAuthenticationOAuth, KafkaListenerAuthenticationOAuth

Expand
속성설명

certificate

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

string

secretName

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

string

12.2.10. KafkaListenerAuthenticationCustom 스키마 참조

사용 중인 위치: GenericKafkaListener

KafkaListenerAuthenticationCustom 스키마 속성의 전체 목록

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

사용자 지정 인증을 사용하면 모든 유형의 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
Copy to Clipboard Toggle word wrap

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

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

12.2.10.1. listenerConfig

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

12.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 에 있습니다.

12.2.10.3. 주요 빌더

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

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

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

참고

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

다음 예제에서는 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
        ...
    }
}
Copy to Clipboard Toggle word wrap

12.2.10.4. KafkaListenerAuthenticationCustom 스키마 속성

type 속성은 KafkaListenerAuthenticationCustom 유형과 KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth 를 구분하는 분류자입니다. KafkaListenerAuthenticationCustom 유형의 사용자 지정 값이 있어야 합니다.

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

12.2.11. GenericKafkaListenerConfiguration 스키마 참조

사용 중인 위치: GenericKafkaListener

GenericKafkaListenerConfiguration 스키마 속성의 전체 목록

Kafka 리스너에 대한 구성입니다.

12.2.11.1. brokerCertChainAndKey

brokerCert CryostatAndKey 속성은 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
# ...
Copy to Clipboard Toggle word wrap

12.2.11.2. externalTrafficPolicy

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

12.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
      # ...
# ...
Copy to Clipboard Toggle word wrap

12.2.11.4. 클래스

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

Ingress 클래스 nginx-internal을 사용한 유형 ingress 의 외부 리스너 예

listeners:
  #...
  - name: external
    port: 9094
    type: ingress
    tls: true
    configuration:
      class: nginx-internal
    # ...
# ...
Copy to Clipboard Toggle word wrap

12.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
      # ...
# ...
Copy to Clipboard Toggle word wrap

12.2.11.6. useServiceDnsDomain

useServiceDnsDomain 속성은 내부 리스너에서만 사용됩니다. 클러스터 서비스 접미사(일반적으로 .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
      # ...
# ...
Copy to Clipboard Toggle word wrap

OpenShift 클러스터에서 .cluster.local 과 다른 서비스 접미사를 사용하는 경우 Cluster Operator 구성에서 KUBERNETES_SERVICE_DNS_DOMAIN 환경 변수를 사용하여 접미사를 구성할 수 있습니다. 자세한 내용은 6.2.1절. “Cluster Operator 구성”를 참조하십시오.

12.2.11.7. GenericKafkaListenerConfiguration 스키마 속성

Expand
속성설명

brokerCertChainAndKey

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

CertAndKeySecretSource

externalTrafficPolicy

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

문자열([Local, Cluster] 중 하나)

loadBalancerSourceRanges

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

문자열 배열

부트스트랩

부트스트랩 구성입니다.

GenericKafkaListenerConfigurationBootstrap

브로커

broker별 구성입니다.

GenericKafkaListenerConfigurationBroker array

ipFamilyPolicy

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

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

ipFamilies

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

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

createBootstrapService

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

boolean

클래스

사용할 Ingress 컨트롤러를 정의하는 Ingress 클래스를 구성합니다. 이 필드는 수신 유형 리스너에서만 사용할 수 있습니다. 지정하지 않으면 기본 Ingress 컨트롤러가 사용됩니다.

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 도메인 접미사가 포함됩니다(기본적으로 .cluster.local 에 의해 환경 변수 KUBERNETES_DNS_DOMAIN)를 사용하여 구성할 수 있습니다. 기본값은 false 입니다. 이 필드는 내부 유형 리스너에서만 사용할 수 있습니다.

boolean

12.2.12. CertAndKeySecretSource schema reference

GenericKafkaListenerConfiguration, KafkaClientAuthenticationTls에서 사용됨

Expand
속성설명

certificate

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

string

key

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

string

secretName

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

string

12.2.13. GenericKafkaListenerConfigurationBootstrap schema reference

GenericKafkaListenerConfiguration에서 사용됨

GenericKafkaListenerConfigurationBootstrap 스키마 속성의 전체 목록

nodePort,host,loadBalancerIPannotations 속성의 브로커 서비스는 GenericKafkaListenerConfigurationBroker 스키마 에 구성됩니다.

12.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
# ...
Copy to Clipboard Toggle word wrap

12.2.13.2. host

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

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

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
# ...
Copy to Clipboard Toggle word wrap

기본적으로 경로 리스너 호스트는 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
# ...
Copy to Clipboard Toggle word wrap

12.2.13.3. nodePort

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

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

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

# ...
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
# ...
Copy to Clipboard Toggle word wrap

12.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
# ...
Copy to Clipboard Toggle word wrap

12.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"
# ...
Copy to Clipboard Toggle word wrap

12.2.13.6. GenericKafkaListenerConfigurationBootstrap 스키마 속성

Expand
속성설명

alternativeNames

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

문자열 배열

host

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

string

nodePort

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

integer

loadBalancerIP

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

string

annotations

Ingress,경로 또는 서비스 리소스에 추가할 주석입니다. 이 필드를 사용하여 외부 DNS와 같은 DNS 공급자를 구성할 수 있습니다. 이 필드는 loadbalancer,nodeport,route 또는 ingress 유형 리스너에서만 사용할 수 있습니다.

map

labels

Ingress,Route 또는 Service 리소스에 추가할 레이블입니다. 이 필드는 loadbalancer,nodeport,route 또는 ingress 유형 리스너에서만 사용할 수 있습니다.

map

12.2.14. GenericKafkaListenerConfigurationBroker schema reference

GenericKafkaListenerConfiguration에서 사용됨

GenericKafkaListenerConfigurationBroker 스키마 속성의 전체 목록

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

브로커를 위한 광고 주소

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

리스너의 구성 속성에 브로커 ID를 지정하고 공개된 호스트 이름 및 포트를 사용자 지정할 수 있습니다. then 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
# ...
Copy to Clipboard Toggle word wrap

12.2.14.1. GenericKafkaListenerConfigurationBroker 스키마 속성

Expand
속성설명

broker

kafka 브로커 ID(broker ID) 브로커 ID는 0에서 시작하고 브로커 복제본 수에 해당합니다.

integer

advertisedHost

브로커의 advertise .brokers 에서 사용할 호스트 이름입니다.

string

advertisedPort

브로커의 공개된.brokers 에서 사용할 포트 번호입니다.

integer

host

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

string

nodePort

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

integer

loadBalancerIP

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

string

annotations

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

map

labels

Ingress,Route 또는 Service 리소스에 추가할 레이블입니다. 이 필드는 loadbalancer,nodeport,route 또는 ingress 유형 리스너에서만 사용할 수 있습니다.

map

12.2.15. EphemeralStorage 스키마 참조

에서 사용: JbodStorage, KafkaClusterSpec, ZookeeperClusterSpec

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

Expand
속성설명

id

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

integer

sizeLimit

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

string

type

임시 여야 합니다.

string

12.2.16. PersistentClaimStorage 스키마 참조

에서 사용: JbodStorage, KafkaClusterSpec, ZookeeperClusterSpec

type 속성은 PersistentClaimStorage 유형 사용을 EphemeralStorage 와 구분하는 계층 구조입니다. PersistentClaimStorage 유형에 대한 persistent-claim 값이 있어야 합니다.

Expand
속성설명

type

persistent-claim 이어야 합니다.

string

size

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

string

선택기

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

map

deleteClaim

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

boolean

클래스

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

string

id

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

integer

덮어쓰기

개별 브로커에 대한 덮어쓰기입니다. overrides 필드를 사용하면 브로커마다 다른 구성을 지정할 수 있습니다.

PersistentClaimStorageOverride array

12.2.17. PersistentClaimStorageOverride schema reference

사용 위치: PersistentClaimStorage

Expand
속성설명

클래스

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

string

broker

kafka 브로커 ID(broker ID)

integer

12.2.18. JbodStorage 스키마 참조

사용 위치: KafkaClusterSpec

type 속성은 JbodStorage 유형 사용을 EphemeralStorage, PersistentClaimStorage 와 구분하는 불일치입니다. JbodStorage 유형에 대한 값 jbod 가 있어야 합니다.

Expand
속성설명

type

jbod 여야 합니다.

string

volumes

JBOD 디스크 배열을 나타내는 스토리지 오브젝트로 볼륨 목록입니다.

EphemeralStorage, PersistentClaimStorage 배열

12.2.19. KafkaAuthorizationSimple 스키마 참조

사용 위치: KafkaClusterSpec

KafkaAuthorizationSimple 스키마 속성의 전체 목록

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

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

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

12.2.19.1. superUsers

ACL 규칙을 쿼리하지 않고 항상 허용되도록 슈퍼 사용자로 취급되는 사용자 주체 목록입니다. 자세한 내용은 Kafka 권한 부여를 참조하십시오.

간단한 권한 부여 구성의 예

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
    # ...
Copy to Clipboard Toggle word wrap

참고

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

12.2.19.2. KafkaAuthorizationSimple 스키마 속성

type 속성은 KafkaAuthorizationSimple 유형에서 KafkaAuthorizationOpa, KafkaAuthorizationKeycloak, KafkaAuthorizationCustom. KafkaAuthorizationSimple 형식에 대한 간단한 값이 있어야 합니다.

Expand
속성설명

type

단순 해야 합니다.

string

superUsers

슈퍼유저 목록입니다. 무제한 액세스 권한을 받아야 하는 사용자 주체 목록이 포함되어야 합니다.

문자열 배열

12.2.20. KafkaAuthorizationOpa 스키마 참조

사용 위치: KafkaClusterSpec

KafkaAuthorizationOpa 스키마 속성의 전체 목록

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

12.2.20.1. url

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

12.2.20.2. allowOnError

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

12.2.20.3. initialCacheCapacity

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

12.2.20.4. maximumCacheSize

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

12.2.20.5. expireAfterMs

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

12.2.20.6. superUsers

오픈 정책 에이전트 정책을 쿼리하지 않고 항상 허용되도록 슈퍼 사용자로 취급되는 사용자 주체 목록입니다. 자세한 내용은 Kafka 권한 부여를 참조하십시오.

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
    # ...
Copy to Clipboard Toggle word wrap

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

superUsers

슈퍼유저 목록(특히 무제한 액세스 권한이 있는 사용자 주체 목록).

문자열 배열

enableMetrics

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

boolean

12.2.21. KafkaAuthorizationKeycloak 스키마 참조

사용 위치: KafkaClusterSpec

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

Expand
속성설명

type

keycloak 이어야 합니다.

string

clientId

Kafka 클라이언트가 OAuth 서버에 대해 인증하고 토큰 엔드포인트 URI를 사용하는 데 사용할 수 있는 OAuth 클라이언트 ID입니다.

string

tokenEndpointUri

권한 부여 서버 토큰 엔드포인트 URI입니다.

string

tlsTrustedCertificates

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

CertSecretSource array

disableTlsHostnameVerification

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

boolean

delegateToKafkaAcls

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

boolean

grantsRefreshPeriodSeconds

두 연속으로 새로 고침을 허용하는 시간(초)입니다. 기본값은 60입니다.

integer

grantsRefreshPoolSize

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

integer

superUsers

슈퍼유저 목록입니다. 무제한 액세스 권한을 받아야 하는 사용자 주체 목록이 포함되어야 합니다.

문자열 배열

connectTimeoutSeconds

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

integer

readTimeoutSeconds

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

integer

12.2.22. KafkaAuthorizationCustom 스키마 참조

사용 위치: KafkaClusterSpec

KafkaAuthorizationCustom 스키마 속성의 전체 목록

AMQ Streams에서 사용자 지정 인증을 사용하려면 자체 작성자 플러그인을 구성하여 ACL(Access Control Lists)을 정의할 수 있습니다.

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

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

중요

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

12.2.22.1. authorizerClass

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

12.2.22.2. superUsers

ACL 규칙을 쿼리하지 않고 항상 허용되도록 슈퍼 사용자로 취급되는 사용자 주체 목록입니다. 자세한 내용은 Kafka 권한 부여를 참조하십시오.

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
    # ...
Copy to Clipboard Toggle word wrap

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

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

참고

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);
            }
        }
    }
Copy to Clipboard Toggle word wrap

12.2.22.3. KafkaAuthorizationCustom 스키마 속성

type 속성은 KafkaAuthorizationCustom 유형에서 KafkaAuthorizationSimple 유형, KafkaAuthorizationOpa, KafkaAuthorizationKeycloak 을 구분하는 불일치자입니다. KafkaAuthorizationCustom 유형의 사용자 지정 값이 있어야 합니다.

Expand
속성설명

type

custom 이어야 합니다.

string

authorizerClass

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

string

superUsers

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

문자열 배열

supportsAdminApi

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

boolean

12.2.23. Rack 스키마 참조

사용 위치: KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec

Rack 스키마 속성의 전체 목록

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

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

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

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

Kafka의 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    # ...
Copy to Clipboard Toggle word wrap

참고

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

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

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

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

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

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

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
    # ...
Copy to Clipboard Toggle word wrap

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

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

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

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

Kafka Connect의 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
# ...
spec:
  # ...
  rack:
    topologyKey: topology.kubernetes.io/zone
  # ...
Copy to Clipboard Toggle word wrap

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

MirrorMaker 2.0의 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
# ...
spec:
  # ...
  rack:
    topologyKey: topology.kubernetes.io/zone
  # ...
Copy to Clipboard Toggle word wrap

12.2.23.3. Rack 스키마 속성

Expand
속성설명

topologyKey

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

string

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

12.2.25. JvmOptions 스키마 참조

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

Expand
속성설명

-XX

JVM에 -XX 옵션 맵입니다.

map

-Xms

JVM에 대한 -Xms 옵션.

string

-Xmx

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

string

gcLoggingEnabled

가비지 컬렉션 로깅이 활성화되어 있는지 여부를 지정합니다. 기본값은 false입니다.

boolean

javaSystemProperties

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

SystemProperty 배열

12.2.26. SystemProperty 스키마 참조

사용 위치: JvmOptions

Expand
속성설명

name

시스템 속성 이름입니다.

string

value

시스템 속성 값입니다.

string

12.2.27. KafkaJmxOptions 스키마 참조

사용 위치: KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, ZookeeperClusterSpec

KafkaJmxOptions 스키마 속성의 전체 목록

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

포트 9999에 연결하여 Kafka 브로커, Zoo Cryostat 노드, Kafka Connect 및 MirrorMaker 2.0에서 Cryostat 메트릭을 가져옵니다. jmxOptions 속성을 사용하여 암호로 보호되거나 보호되지 않은 Cryostat 포트를 구성합니다. 암호 보호를 사용하면 권한이 없는 포드가 포트에 액세스하지 못하도록 합니다.

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

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

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

Kafka 브로커 및 Zoo Cryostat 노드에 대한 암호로 보호되는 Cryostat 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    jmxOptions:
      authentication:
        type: "password"
    # ...
  zookeeper:
    # ...
    jmxOptions:
      authentication:
        type: "password"
    #...
Copy to Clipboard Toggle word wrap

그런 다음 처리할 브로커를 지정하여 헤드리스 서비스를 사용하여 Pod를 클러스터에 배포하고 Cryostat 지표를 얻을 수 있습니다.

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

"CLUSTER-NAME-kafka-0.CLUSTER-NAME-kafka-brokers"
Copy to Clipboard Toggle word wrap

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

Cryostat 포트가 보안된 경우 Pod 배포에서 Cryostat Secret에서 사용자 이름과 암호를 참조하여 가져올 수 있습니다.

보호되지 않은 Cryostat 포트의 경우 빈 오브젝트 {} 을 사용하여 헤드리스 서비스에서 Cryostat 포트를 엽니다. 포드를 배포하고 보호된 포트에 대한 것과 동일한 방식으로 지표를 얻을 수 있지만, 이 경우 모든 Pod를 포트에서 읽을 수 있습니다.

Kafka 브로커 및 Zoo Cryostat 노드에 대한 포트 open Cryostat 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    jmxOptions: {}
    # ...
  zookeeper:
    # ...
    jmxOptions: {}
    # ...
Copy to Clipboard Toggle word wrap

12.2.27.1. KafkaJmxOptions 스키마 속성

Expand
속성설명

인증

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

KafkaJmxAuthenticationPassword

12.2.28. KafkaJmxAuthenticationPassword schema reference

사용 위치: KafkaJmxOptions

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

Expand
속성설명

type

암호 여야 합니다.

string

12.2.29. JmxPrometheusExporterMetrics schema reference

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

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

Expand
속성설명

type

jmxPrometheusExporter 여야 합니다.

string

valueFrom

Prometheus Cryostat Exporter 구성이 저장되는 ConfigMap 항목입니다. 이 구성 구조에 대한 자세한 내용은 Prometheus Cryostat Exporter 를 참조하십시오.

ExternalConfigurationReference

12.2.30. ExternalConfigurationReference schema reference

에서 사용: ExternalLogging, JmxPrometheusExporterMetrics

Expand
속성설명

configMapKeyRef

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

ConfigMapKeySelector

12.2.31. InlineLogging 스키마 참조

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

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

Expand
속성설명

type

인라인 이어야 합니다.

string

로거

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

map

12.2.32. ExternalLogging 스키마 참조

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

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

Expand
속성설명

type

외부에 있어야 합니다.

string

valueFrom

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

ExternalConfigurationReference

12.2.33. KafkaClusterTemplate 스키마 참조

사용 위치: KafkaClusterSpec

Expand
속성설명

statefulset

Kafka StatefulSet 용 템플릿 .

StatefulSetTemplate

Pod

Kafka 포드 의 템플릿입니다.

PodTemplate

bootstrapService

Kafka 부트스트랩 서비스 용 템플릿입니다.

InternalServiceTemplate

brokersService

Kafka 브로커 서비스 용 템플릿입니다.

InternalServiceTemplate

externalBootstrapService

Kafka 외부 부트스트랩 서비스 용 템플릿입니다.

ResourceTemplate

perPodService

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

ResourceTemplate

externalBootstrapRoute

Kafka 외부 부트스트랩 경로에 대한 템플릿 입니다.

ResourceTemplate

perPodRoute

OpenShift 외부에서 액세스하는 데 사용되는 Pod 당 Kafka 경로에 대한 템플릿입니다.

ResourceTemplate

externalBootstrapIngress

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

ResourceTemplate

perPodIngress

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

ResourceTemplate

persistentVolumeClaim

모든 Kafka PersistentVolumeClaims 에 대한 템플릿입니다.

ResourceTemplate

podDisruptionBudget

Kafka PodDisruptionBudget 용 템플릿 .

PodDisruptionBudgetTemplate

kafkaContainer

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

ContainerTemplate

initContainer

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

ContainerTemplate

clusterCaCert

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

ResourceTemplate

serviceAccount

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

ResourceTemplate

jmxSecret

Kafka Cluster Cryostat 인증의 시크릿용 템플릿입니다.

ResourceTemplate

clusterRoleBinding

Kafka ClusterRoleBinding용 템플릿입니다.

ResourceTemplate

podSet

Kafka StrimziPodSet 리소스의 템플릿입니다.

ResourceTemplate

12.2.34. StatefulSetTemplate 스키마 참조

사용 위치: KafkaClusterTemplate, ZookeeperClusterTemplate

Expand
속성설명

metadata

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

MetadataTemplate

podManagementPolicy

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

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

12.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
# ...
Copy to Clipboard Toggle word wrap

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

12.2.35.1. MetadataTemplate 스키마 속성

Expand
속성설명

labels

리소스 템플릿에 추가된 라벨입니다. StatefulSets,Deployments,Pods, Services 와 같은 다양한 리소스에 적용할 수 있습니다.

map

annotations

리소스 템플릿에 추가된 주석입니다. StatefulSets,Deployments,Pods, Services 와 같은 다양한 리소스에 적용할 수 있습니다.

map

12.2.36. PodTemplate 스키마 참조

CruiseControlTemplate, EntityOperatorTemplate, 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
# ...
Copy to Clipboard Toggle word wrap

12.2.36.1. hostAliases

hostAliases 속성을 사용하여 Pod의 /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"
      #...
Copy to Clipboard Toggle word wrap

12.2.36.2. PodTemplate 스키마 속성

Expand
속성설명

metadata

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

MetadataTemplate

imagePullSecrets

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

LocalObjectReference array

securityContext

Pod 수준 보안 속성 및 일반적인 컨테이너 설정을 구성합니다. 자세한 내용은 core/v1 podsecuritycontext의 외부 문서를 참조하십시오.

PodSecurityContext

terminationGracePeriodSeconds

유예 기간은 Pod에서 실행되는 프로세스가 종료 신호를 보낸 후 시간(초)이며 프로세스가 강제 종료 신호로 중단되는 시간입니다. 이 값을 프로세스의 예상 정리 시간보다 길게 설정합니다. 값은 음수가 아닌 정수여야 합니다. 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

12.2.37. InternalServiceTemplate schema reference

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

Expand
속성설명

metadata

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

MetadataTemplate

ipFamilyPolicy

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

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

ipFamilies

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

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

12.2.38. resourcetemplate 스키마 참조

CruiseControlTemplate, EntityOperatorTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, KafkaUserTemplate, ZookeeperClusterTemplate

Expand
속성설명

metadata

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

MetadataTemplate

12.2.39. PodDisruptionBudgetTemplate schema reference

CruiseControlTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaMirrorMakerTemplate, ZookeeperClusterTemplate

PodDisruptionBudgetTemplate 스키마 속성의 전체 목록

AMQ Streams는 모든 새로운 StatefulSet 또는 Deployment 에 대해 PodDisruptionBudget 을 생성합니다. 기본적으로 Pod 중단 예산에서는 지정된 시간에 단일 Pod를 사용할 수 없습니다. maxUnavailable 속성의 기본값을 변경하여 사용할 수 없는 Pod의 양을 늘릴 수 있습니다.

PodDisruptionBudget 템플릿의 예

# ...
template:
  podDisruptionBudget:
    metadata:
      labels:
        key1: label1
        key2: label2
      annotations:
        key1: label1
        key2: label2
    maxUnavailable: 1
# ...
Copy to Clipboard Toggle word wrap

12.2.39.1. PodDisruptionBudgetTemplate schema properties

Expand
속성설명

metadata

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

MetadataTemplate

maxUnavailable

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

integer

12.2.40. ContainerTemplate 스키마 참조

CruiseControlTemplate, EntityOperatorTemplate, 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
# ...
Copy to Clipboard Toggle word wrap

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

12.2.40.1. ContainerTemplate 스키마 속성

Expand
속성설명

env

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

ContainerEnvVar array

securityContext

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

SecurityContext

12.2.41. ContainerEnvVar schema reference

사용된 위치: ContainerTemplate

Expand
속성설명

name

환경 변수 키입니다.

string

value

환경 변수 값입니다.

string

12.2.42. ZookeeperClusterSpec 스키마 참조

사용 위치: KafkaSpec

ZookeeperClusterSpec 스키마 속성의 전체 목록

Zoo Cryostat 클러스터를 구성합니다.

12.2.42.1. config

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

표준 Apache Zoo Cryostat 구성은 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.

구성할 수 없는 구성 옵션은 다음과 같습니다.

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

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

  • 문자열
  • 숫자
  • 부울

AMQ Streams에서 직접 관리하는 옵션을 제외하고 Zoo Cryostat 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 같거나 시작하는 키가 있는 모든 구성 옵션은 허용되지 않습니다.

  • 서버.
  • dataDir
  • dataLogDir
  • clientPort
  • authProvider
  • quorum.auth
  • requireClientAuthScheme

config 속성에 forbidden 옵션이 있으면 무시되고 Cluster Operator 로그 파일에 경고 메시지가 출력됩니다. 기타 지원되는 모든 옵션은 Zoo Cryostat로 전달됩니다.

금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다.

Zoo Cryostat 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  kafka:
    # ...
  zookeeper:
    # ...
    config:
      autopurge.snapRetainCount: 3
      autopurge.purgeInterval: 1
      ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      ssl.enabled.protocols: "TLSv1.2"
      ssl.protocol: "TLSv1.2"
    # ...
Copy to Clipboard Toggle word wrap

12.2.42.2. logging

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

  • zookeeper.root.logger

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

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

로거 및 수준을 직접 (인라인) 지정하거나 사용자 지정(외부) 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"
    # ...
Copy to Clipboard Toggle word wrap

외부 로깅

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

가비지 수집기(GC)

jvmOptions 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.

12.2.42.3. ZookeeperClusterSpec 스키마 속성

Expand
속성설명

replicas

클러스터의 Pod 수입니다.

integer

image

포드의 Docker 이미지입니다.

string

storage

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

EphemeralStorage, PersistentClaimStorage

config

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

map

livenessProbe

포드 활성 확인.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

jmxOptions

Zookeeper 노드의 Cryostat 옵션.

KafkaJmxOptions

resources

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

ResourceRequirements

metricsConfig

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

JmxPrometheusExporterMetrics

logging

Zoo Cryostat의 로깅 구성입니다. 유형은 지정된 오브젝트 내의 logging.type 속성 값에 따라 다르며, 이는 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

template

Zoo Cryostat 클러스터 리소스의 템플릿입니다. 템플릿을 사용하면 StatefulSet,Pod 및 서비스가 생성되는 방법을 지정할 있습니다.

ZookeeperClusterTemplate

12.2.43. ZookeeperClusterTemplate 스키마 참조

사용 위치: ZookeeperClusterSpec

Expand
속성설명

statefulset

Zoo Cryostat StatefulSet 용 템플릿 .

StatefulSetTemplate

Pod

Zoo Cryostat 포드 의 템플릿 .

PodTemplate

clientService

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

InternalServiceTemplate

nodesService

Zoo Cryostat 노드 서비스에 대한 템플릿 .

InternalServiceTemplate

persistentVolumeClaim

모든 Zoo Cryostat PersistentVolumeClaims 용 템플릿 .

ResourceTemplate

podDisruptionBudget

Zoo Cryostat PodDisruptionBudget 용 템플릿 .

PodDisruptionBudgetTemplate

zookeeperContainer

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

ContainerTemplate

serviceAccount

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

ResourceTemplate

jmxSecret

Zookeeper Cluster Cryostat 인증의 시크릿용 템플릿입니다.

ResourceTemplate

podSet

Zoo Cryostat StrimziPodSet 리소스의 템플릿입니다.

ResourceTemplate

12.2.44. EntityOperatorSpec schema reference

사용 위치: KafkaSpec

Expand
속성설명

topicOperator

Topic Operator의 구성

EntityTopicOperatorSpec

userOperator

사용자 Operator 구성.

EntityUserOperatorSpec

tlsSidecar

TLS 사이드카 구성.

TlsSidecar

template

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

EntityOperatorTemplate

12.2.45. EntityTopicOperatorSpec schema reference

in: EntityOperatorSpec에서 사용됨

EntityTopicOperatorSpec 스키마 속성의 전체 목록

Topic Operator를 구성합니다.

12.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
  # ...
Copy to Clipboard Toggle word wrap

외부 로깅

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
  # ...
Copy to Clipboard Toggle word wrap

가비지 수집기(GC)

jvmOptions 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.

12.2.45.2. EntityTopicOperatorSpec schema properties

Expand
속성설명

watchedNamespace

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

string

image

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

string

reconciliationIntervalSeconds

주기적 조정 사이의 간격입니다.

integer

zookeeperSessionTimeoutSeconds

Zoo Cryostat 세션의 시간 초과입니다.

integer

startupProbe

Pod 시작 확인

프로브

livenessProbe

포드 활성 확인.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

resources

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

ResourceRequirements

topicMetadataMaxAttempts

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

integer

logging

로깅 구성. 유형은 지정된 오브젝트 내의 logging.type 속성 값에 따라 다르며, 이는 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

12.2.46. EntityUserOperatorSpec schema reference

in: EntityOperatorSpec에서 사용됨

EntityUserOperatorSpec 스키마 속성의 전체 목록

User Operator를 구성합니다.

12.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 로깅 서비스를 참조하십시오.

여기서는 인라인외부 로깅의 예를 참조하십시오.

인라인 로깅

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
  # ...
Copy to Clipboard Toggle word wrap

외부 로깅

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
   # ...
Copy to Clipboard Toggle word wrap

가비지 수집기(GC)

jvmOptions 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.

12.2.46.2. EntityUserOperatorSpec 스키마 속성

Expand
속성설명

watchedNamespace

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

string

image

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

string

reconciliationIntervalSeconds

주기적 조정 사이의 간격입니다.

integer

zookeeperSessionTimeoutSeconds

Zookeeper SessionTimeoutSeconds 속성이 더 이상 사용되지 않습니다. 이 속성은 User Operator가 더 이상 사용하지 않기 때문에 더 이상 사용되지 않습니다. Zoo Cryostat 세션의 시간 초과입니다.

integer

secretPrefix

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

string

livenessProbe

포드 활성 확인.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

resources

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

ResourceRequirements

logging

로깅 구성. 유형은 지정된 오브젝트 내의 logging.type 속성 값에 따라 다르며, 이는 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

12.2.47. TlsSidecar 스키마 참조

in: CruiseControlSpec, EntityOperatorSpec

TlsSidecar 스키마 속성의 전체 목록

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

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

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

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

  • image
  • resources
  • logLevel
  • readinessProbe
  • livenessProbe

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

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

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

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

  • emerg
  • 경고
  • crit
  • err
  • 경고
  • 알림
  • 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
    # ...
Copy to Clipboard Toggle word wrap

12.2.47.1. TlsSidecar 스키마 속성

Expand
속성설명

image

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

string

livenessProbe

포드 활성 확인.

프로브

logLevel

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

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

readinessProbe

Pod 준비 상태 점검.

프로브

resources

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

ResourceRequirements

12.2.48. EntityOperatorTemplate 스키마 참조

in: EntityOperatorSpec에서 사용됨

Expand
속성설명

Deployment

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

ResourceTemplate

Pod

엔터티 Operator 포드 용 템플릿입니다.

PodTemplate

topicOperatorContainer

Entity Topic Operator 컨테이너에 대한 템플릿입니다.

ContainerTemplate

userOperatorContainer

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

ContainerTemplate

tlsSidecarContainer

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

ContainerTemplate

serviceAccount

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

ResourceTemplate

12.2.49. certificateAuthority 스키마 참조

사용 위치: KafkaSpec

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

Expand
속성설명

generateCertificateAuthority

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

boolean

generateSecretOwnerReference

true 인 경우 Cluster 및 Client CA Secrets가 Kafka 리소스로 설정된 ownerReference 를 사용하여 구성됩니다. true 인 경우 Kafka 리소스가 삭제되면 CA 시크릿도 삭제됩니다. false 인 경우 ownerReference 가 비활성화됩니다. false 인 경우 Kafka 리소스가 삭제되면 CA 보안이 유지되고 재사용할 수 있습니다. 기본값은 true 입니다.

boolean

validityDays

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

integer

renewalDays

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

integer

certificateExpirationPolicy

generateCertificateAuthority=true 인 경우 CA 인증서 만료를 처리하는 방법 기본값은 새 CA 인증서가 기존 개인 키를 재사용하는 데 생성되는 것입니다.

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

12.2.50. CruiseControlSpec schema reference

사용 위치: KafkaSpec

CruiseControlSpec 스키마 속성의 전체 목록

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

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

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

12.2.50.1. config

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

표준 크루즈 제어 구성은 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.

구성할 수 없는 구성 옵션은 다음과 관련이 있습니다.

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

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

  • 문자열
  • 숫자
  • 부울

AMQ Streams에서 직접 관리하는 옵션을 제외하고 Cruise Control 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 금지된 접두사 목록은 config 속성에 대한 설명을 참조하십시오.

config 속성에 forbidden 옵션이 있으면 무시되고 Cluster Operator 로그 파일에 경고 메시지가 출력됩니다. 지원되는 모든 옵션은 Cruise Control에 전달됩니다.

금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다. CORS(Cross-Origin Resource Sharing)를 사용하도록 웹 서버 속성을 구성할 수도 있습니다.

Cruise 제어 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    config:
      default.goals: >
        com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal,
        com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal
      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"
    # ...
Copy to Clipboard Toggle word wrap

12.2.50.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 Wiki의 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


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

12.2.50.3. cruise Control REST API 보안

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

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

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

API 권한 부여, 인증 및 SSL을 비활성화하는 크루즈 제어 구성

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

12.2.50.4. brokerCapacity

cruise Control은 용량 제한을 사용하여 리소스 배포에 대한 최적화 목표를 분류하고 있는지 확인합니다. 이 유형의 목표는 다음 네 가지가 있습니다.

  • DiskUsageDistributionGoal - 디스크 사용률 배포
  • CpuUsageDistributionGoal - CPU utilization distribution
  • NetworkInboundUsageDistributionGoal - 네트워크 인바운드 사용 배포
  • NetworkOutboundUsageDistributionGoal - 네트워크 아웃 바운드 사용 배포

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

  • inboundNetwork - 초당 바이트 단위로 인바운드 네트워크 처리량 (기본값: 10000KiB/s)
  • outboundNetwork - 초당 바이트 단위의 아웃 바운드 네트워크 처리량 (기본값: 10000KiB/s)

네트워크 처리량의 경우 표준 OpenShift 바이트 단위(K, M, G) 또는 초당 동등한 두 개의 백바이트(Ki, Mi, Gi)가 있는 정수 값을 사용합니다.

참고

디스크 및 CPU 용량 제한은 AMQ Streams에 의해 자동으로 생성되므로 설정할 필요가 없습니다.

참고

CPU 목표를 사용할 때 정확한 리밸런스 제안을 보장하기 위해 Kafka.spec.kafka.resources 의 CPU 제한과 동일한 CPU 요청을 설정할 수 있습니다. 이렇게 하면 모든 CPU 리소스가 미리 예약되며 항상 사용할 수 있습니다. 이 구성을 통해 Cruise Control은 CPU 목표를 기반으로 리밸런스 제안을 준비할 때 CPU 사용률을 적절하게 평가할 수 있습니다.

Bibyte 단위를 사용하는 Cruise Control BrokerCapacity 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    brokerCapacity:
      inboundNetwork: 10000KiB/s
      outboundNetwork: 10000KiB/s
    # ...
Copy to Clipboard Toggle word wrap

12.2.50.5. 로깅 구성

cruise Control에는 설정 가능한 자체 로거가 있습니다.

  • rootLogger.level

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

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

로거 및 수준을 직접 (인라인) 지정하거나 사용자 지정(외부) 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"
    # ...
Copy to Clipboard Toggle word wrap

외부 로깅

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

가비지 수집기(GC)

jvmOptions 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.

12.2.50.6. CruiseControlSpec 스키마 속성

Expand
속성설명

image

포드의 Docker 이미지입니다.

string

tlsSidecar

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

TlsSidecar

resources

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

ResourceRequirements

livenessProbe

Cruise Control 컨테이너에 대한 Pod 활성 점검.

프로브

readinessProbe

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

프로브

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

config

크루즈 제어 구성. 전체 구성 옵션 목록은 https://github.com/linkedin/cruise-control/wiki/Configurations 을 참조하십시오. 다음과 같은 접두사가 있는 속성을 설정할 수 없습니다: bootstrap.servers, client.id, Zookeeper., network., security., failed.brokers.zk.path,webserver.http., webserver.api.urlprefix, webserver.session.path, webserver.accesslog., two.step., request.reason.required, network. metric.reporter.sampler.bootstrap.servers, capacity.config.file, self.healing., ssl., 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

12.2.51. CruiseControlTemplate 스키마 참조

in: CruiseControlSpec

Expand
속성설명

Deployment

Cruise Control Deployment 용 템플릿 .

ResourceTemplate

Pod

Cruise Control Pod 용 템플릿입니다.

PodTemplate

apiService

Cruise Control API 서비스 용 템플릿입니다.

InternalServiceTemplate

podDisruptionBudget

Cruise Control PodDisruptionBudget 용 템플릿 .

PodDisruptionBudgetTemplate

cruiseControlContainer

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

ContainerTemplate

tlsSidecarContainer

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

ContainerTemplate

serviceAccount

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

ResourceTemplate

12.2.52. BrokerCapacity 스키마 참조

in: CruiseControlSpec

Expand
속성설명

disk

disk 속성이 더 이상 사용되지 않습니다. Cruise Control 디스크 용량 설정은 더 이상 사용되지 않으며, 디스크의 향후 브로커 용량에서 바이트 단위로 제거됩니다. 표준 OpenShift 바이트 단위(K, M, G 또는 T)와 함께 숫자 값, 두 개의 백바이트(Ki, Mi, Gi 또는 Ti) 또는 E notation이 있거나 없는 바이트 값을 사용합니다. 예를 들면 100000M, 100000Mi, 104857600000 또는 1e+11입니다.

string

cpuUtilization

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

integer

inboundNetwork

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

string

outboundNetwork

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

string

12.2.53. KafkaExporterSpec schema reference

사용 위치: KafkaSpec

Expand
속성설명

image

포드의 Docker 이미지입니다.

string

groupRegex

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

string

topicRegex

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

string

resources

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

ResourceRequirements

logging

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

string

enableSaramaLogging

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

boolean

template

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

KafkaExporterTemplate

livenessProbe

포드 활성 점검.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

12.2.54. KafkaExporterTemplate schema reference

사용 위치: KafkaExporterSpec

Expand
속성설명

Deployment

Kafka Exporter 배포를 위한 템플릿 입니다.

ResourceTemplate

Pod

Kafka Exporter Pod 용 템플릿입니다.

PodTemplate

service

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

ResourceTemplate

container

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

ContainerTemplate

serviceAccount

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

ResourceTemplate

12.2.55. KafkaStatus 스키마 참조

사용 위치: Kafka

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

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

integer

리스너

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

ListenerStatus 배열

clusterId

Kafka 클러스터 ID.

string

12.2.56. 조건 스키마 참조

KafkaBridgeStatus, KafkaConnectorStatus, KafkaConnectStatus, KafkaMirrorMaker2Status, KafkaMirrorMakerStatus, KafkaRebalanceStatus, KafkaTopicStatus, KafkaUserStatus ???

Expand
속성설명

type

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

string

status

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

string

lastTransitionTime

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

string

reason

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

string

message

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

string

12.2.57. ListenerStatus 스키마 참조

사용 위치: KafkaStatus

Expand
속성설명

type

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

string

name

리스너 이름입니다.

string

addresses

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

ListenerAddress 배열

bootstrapServers

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

string

인증서

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

문자열 배열

12.2.58. ListenerAddress 스키마 참조

사용 위치: ListenerStatus

Expand
속성설명

host

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

string

port

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

integer

12.2.59. KafkaConnect 스키마 참조

Expand
속성설명

spec

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

KafkaConnectSpec

status

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

KafkaConnectStatus

12.2.60. KafkaConnectSpec schema reference

사용 위치: KafkaConnect

KafkaConnectSpec 스키마 속성의 전체 목록

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

12.2.60.1. config

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

표준 Apache Kafka Connect 구성은 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.

구성할 수 없는 구성 옵션은 다음과 같습니다.

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

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

  • 문자열
  • 숫자
  • 부울

AMQ Streams에서 직접 관리하는 옵션을 제외하고 Apache Kafka 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 같거나 시작하는 키가 있는 구성 옵션은 사용할 수 없습니다.

  • ssl.
  • sasl.
  • 보안.
  • 리스너
  • plugin.path
  • rest.
  • bootstrap.servers

config 속성에 forbidden 옵션이 있으면 무시되고 Cluster Operator 로그 파일에 경고 메시지가 출력됩니다. 다른 모든 옵션은 Kafka Connect로 전달됩니다.

중요

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

특정 옵션에는 기본값이 있습니다.

  • 기본 값이 connect-clustergroup.id
  • offset.storage.topic 및 기본값 connect-cluster-offsets
  • config.storage.topic s의 기본값 connect-cluster-configs
  • status.storage.topic (기본값: 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 속성에 없는 경우 자동으로 구성됩니다.

금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하여 클라이언트 연결에 허용되는 3개의 ssl 구성 옵션을 사용할 수 있습니다. 암호화 제품군은 보안 연결 및 데이터 전송을 위한 알고리즘을 결합합니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm 속성을 구성할 수도 있습니다.

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
    ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    ssl.enabled.protocols: "TLSv1.2"
    ssl.protocol: "TLSv1.2"
    ssl.endpoint.identification.algorithm: HTTPS
  # ...
Copy to Clipboard Toggle word wrap

TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm 속성을 구성할 수도 있습니다.

12.2.60.2. logging

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

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

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

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

curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/
Copy to Clipboard Toggle word wrap

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

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

로거 및 수준을 직접 (인라인) 지정하거나 사용자 지정(외부) 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"
  # ...
Copy to Clipboard Toggle word wrap

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: connect-logging.log4j
  # ...
Copy to Clipboard Toggle word wrap

구성되지 않은 사용 가능한 로거는 수준이 OFF 로 설정되어 있습니다.

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

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

가비지 수집기(GC)

jvmOptions 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.

12.2.60.3. KafkaConnectSpec 스키마 속성

Expand
속성설명

버전

Kafka Connect 버전입니다. 기본값은 3.2.3입니다. 버전 업그레이드 또는 다운그레이드에 필요한 프로세스를 이해하려면 사용자 설명서를 참조하십시오.

string

replicas

Kafka Connect 그룹의 Pod 수입니다.

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.suites, ssl.cipher.suites)를 설정할 수 없습니다.

map

resources

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

ResourceRequirements

livenessProbe

포드 활성 확인.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

jmxOptions

Cryostat 옵션.

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] 중 하나여야 합니다.

JaegerTracing

template

Kafka Connect 및 Kafka 미러 메이커 2 리소스의 템플릿입니다. 템플릿을 사용하면 배포,Pod서비스 생성 방법을 지정할 수 있습니다.

KafkaConnectTemplate

externalConfiguration

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

ExternalConfiguration

Build

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

Build

metricsConfig

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

JmxPrometheusExporterMetrics

12.2.61. clientTLS 스키마 참조

사용 위치: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerProducerSpec

ClientTls 스키마 속성의 전체 목록

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

12.2.61.1. trustedCertificates

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

12.2.61.2. clientTLS 스키마 속성

Expand
속성설명

trustedCertificates

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

CertSecretSource array

12.2.62. KafkaClientAuthenticationTls schema reference

사용 위치: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerProducerSpec

KafkaClientAuthenticationTls 스키마 속성의 전체 목록

TLS 클라이언트 인증을 구성하려면 type 속성을 tls 값으로 설정합니다. TLS 클라이언트 인증은 TLS 인증서를 사용하여 인증합니다.

12.2.62.1. certificateAndKey

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

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

oc create secret generic MY-SECRET \
--from-file=MY-PUBLIC-TLS-CERTIFICATE-FILE.crt \
--from-file=MY-PRIVATE.key
Copy to Clipboard Toggle word wrap
참고

TLS 클라이언트 인증은 TLS 연결에서만 사용할 수 있습니다.

TLS 클라이언트 인증 구성 예

authentication:
  type: tls
  certificateAndKey:
    secretName: my-secret
    certificate: my-public-tls-certificate-file.crt
    key: private.key
Copy to Clipboard Toggle word wrap

12.2.62.2. KafkaClientAuthenticationTls 스키마 속성

type 속성은 KafkaClientAuthenticationTls 유형 및 KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth. KafkaClientAuthenticationTls 유형의 tls 값이 있어야 합니다.

Expand
속성설명

certificateAndKey

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

CertAndKeySecretSource

type

tls 여야 합니다.

string

12.2.63. KafkaClientAuthenticationScramSha256 schema reference

사용 위치: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerProducerSpec

KafkaClientAuthenticationScramSha256 스키마 속성의 전체 목록

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

12.2.63.1. 사용자 이름

username 속성에 username 을 지정합니다.

12.2.63.2. passwordSecret

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

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

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

echo -n PASSWORD > MY-PASSWORD.txt
Copy to Clipboard Toggle word wrap

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

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Copy to Clipboard Toggle word wrap

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

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-connect-password-field: LFTIyFRFlMmU2N2Tm
Copy to Clipboard Toggle word wrap

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

중요

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
Copy to Clipboard Toggle word wrap

12.2.63.3. KafkaClientAuthenticationScramSha256 schema properties

Expand
속성설명

passwordSecret

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

PasswordSecretSource

type

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

string

사용자 이름

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

string

12.2.64. PasswordSecretSource 스키마 참조

사용 위치: KafkaClientAuthenticationPlain, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512

Expand
속성설명

암호

암호가 저장된 Secret의 키 이름입니다.

string

secretName

암호가 포함된 보안의 이름입니다.

string

12.2.65. KafkaClientAuthenticationScramSha512 schema reference

사용 위치: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerProducerSpec

KafkaClientAuthenticationScramSha512 스키마 속성의 전체 목록

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

12.2.65.1. 사용자 이름

username 속성에 username 을 지정합니다.

12.2.65.2. passwordSecret

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

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

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

echo -n PASSWORD > MY-PASSWORD.txt
Copy to Clipboard Toggle word wrap

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

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Copy to Clipboard Toggle word wrap

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

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-connect-password-field: LFTIyFRFlMmU2N2Tm
Copy to Clipboard Toggle word wrap

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

중요

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
Copy to Clipboard Toggle word wrap

12.2.65.3. KafkaClientAuthenticationScramSha512 schema properties

Expand
속성설명

passwordSecret

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

PasswordSecretSource

type

scram-sha-512 여야 합니다.

string

사용자 이름

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

string

12.2.66. KafkaClientAuthenticationPlain schema reference

사용 위치: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerProducerSpec

KafkaClientAuthenticationPlain 스키마 속성의 전체 목록

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

주의

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

12.2.66.1. 사용자 이름

username 속성에 username 을 지정합니다.

12.2.66.2. passwordSecret

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

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

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

echo -n PASSWORD > MY-PASSWORD.txt
Copy to Clipboard Toggle word wrap

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

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Copy to Clipboard Toggle word wrap

Kafka Connect의 PLAIN 클라이언트 인증의 시크릿 예

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-password-field-name: LFTIyFRFlMmU2N2Tm
Copy to Clipboard Toggle word wrap

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

중요

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

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

authentication:
  type: plain
  username: my-connect-username
  passwordSecret:
    secretName: my-connect-secret-name
    password: my-password-field-name
Copy to Clipboard Toggle word wrap

12.2.66.3. KafkaClientAuthenticationPlain schema properties

type 속성은 KafkaClientAuthenticationPlain 유형에서 KafkaClientAuthenticationPlain 유형, KafkaClientAuthentication ScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationOAuth. KafkaClientAuthenticationPlain 유형의 plain 값이 있어야 합니다.

Expand
속성설명

passwordSecret

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

PasswordSecretSource

type

일반 이어야 합니다.

string

사용자 이름

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

string

12.2.67. KafkaClientAuthenticationOAuth schema reference

사용 위치: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerProducerSpec

KafkaClientAuthenticationOAuth 스키마 속성의 전체 목록

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

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

  • 클라이언트 ID 및 시크릿
  • 클라이언트 ID 및 새로 고침 토큰
  • 액세스 토큰
  • TLS

클라이언트 ID 및 시크릿

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

클라이언트 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
Copy to Clipboard Toggle word wrap

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

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

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

+ .an 클라이언트 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
Copy to Clipboard Toggle word wrap

액세스 토큰

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

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

authentication:
  type: oauth
  accessToken:
    secretName: my-access-token-secret
    key: access-token
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

12.2.67.1. KafkaClientAuthenticationOAuth 스키마 속성

type 속성은 KafkaClientAuthenticationOAuth 유형과 KafkaClientAuthenticationOAuth 유형, KafkaClientAuthentication ScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain. KafkaClientAuthenticationOAuth 유형의 oauth 값이 있어야 합니다.

Expand
속성설명

accessToken

권한 부여 서버에서 가져온 액세스 토큰이 포함된 OpenShift 보안에 대한 링크입니다.

GenericSecretSource

accessTokenIsJwt

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

boolean

대상

권한 부여 서버에 대해 인증할 때 사용할 OAuth 대상입니다. 일부 권한 부여 서버에서는 대상을 명시적으로 설정해야 합니다. 가능한 값은 권한 부여 서버 구성 방법에 따라 달라집니다. 기본적으로 토큰 끝점 요청을 수행할 때 대상 을 지정하지 않습니다.

string

clientId

Kafka 클라이언트가 OAuth 서버에 대해 인증하고 토큰 엔드포인트 URI를 사용하는 데 사용할 수 있는 OAuth 클라이언트 ID입니다.

string

clientSecret

Kafka 클라이언트가 OAuth 서버에 대해 인증하는 데 사용할 수 있는 OAuth 클라이언트 시크릿이 포함된 OpenShift 보안에 연결하고 토큰 엔드포인트 URI를 사용합니다.

GenericSecretSource

connectTimeoutSeconds

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

integer

disableTlsHostnameVerification

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

boolean

maxTokenExpirySeconds

액세스 토큰의 time-to-live를 지정된 초 수로 설정하거나 제한합니다. 권한 부여 서버가 불투명 토큰을 반환하는 경우 설정해야 합니다.

integer

readTimeoutSeconds

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

integer

refreshToken

권한 부여 서버에서 액세스 토큰을 가져오는 데 사용할 수 있는 새로 고침 토큰이 포함된 OpenShift 보안에 대한 링크입니다.

GenericSecretSource

scope

권한 부여 서버에 대해 인증할 때 사용할 OAuth 범위입니다. 일부 권한 부여 서버를 설정해야 합니다. 가능한 값은 권한 부여 서버 구성 방법에 따라 달라집니다. 토큰 끝점 요청을 수행할 때 기본적으로 범위가 지정되지 않습니다.

string

tlsTrustedCertificates

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

CertSecretSource array

tokenEndpointUri

권한 부여 서버 토큰 엔드포인트 URI입니다.

string

type

oauth 여야 합니다.

string

12.2.68. Jaegertracing 스키마 참조

사용 위치: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec

type 속성은 JaegerTracing 유형 사용을 나중에 추가할 수 있는 다른 하위 유형과 구분하는 불일치입니다. JaegerTracing 유형의 jaeger 값이 있어야 합니다.

Expand
속성설명

type

jaeger 여야 합니다.

string

12.2.69. KafkaConnectTemplate 스키마 참조

사용 위치: KafkaConnectSpec, KafkaMirrorMaker2Spec

Expand
속성설명

Deployment

Kafka Connect 배포를 위한 템플릿 입니다.

DeploymentTemplate

Pod

Kafka Connect 포드 용 템플릿입니다.

PodTemplate

apiService

Kafka Connect API 서비스 용 템플릿입니다.

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 빌드 컨테이너용 템플릿입니다. 빌드 컨테이너는 OpenShift에서만 사용됩니다.

ContainerTemplate

buildConfig

새 컨테이너 이미지를 빌드하는 데 사용되는 Kafka Connect BuildConfig의 템플릿입니다. BuildConfig는 OpenShift에서만 사용됩니다.

BuildConfigTemplate

buildServiceAccount

Kafka Connect 빌드 서비스 계정용 템플릿입니다.

ResourceTemplate

jmxSecret

Kafka Connect Cluster Cryostat 인증의 Secret용 템플릿입니다.

ResourceTemplate

12.2.70. DeploymentTemplate 스키마 참조

사용 위치: KafkaBridgeTemplate, KafkaConnectTemplate, KafkaMirrorMakerTemplate

Expand
속성설명

metadata

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

MetadataTemplate

deploymentStrategy

이 배포에 사용할 DeploymentStrategy입니다. 유효한 값은 RollingUpdateRecreate 입니다. 기본값은 RollingUpdate 입니다.

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

12.2.71. BuildConfigTemplate schema reference

사용 위치: KafkaConnectTemplate

Expand
속성설명

metadata

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

MetadataTemplate

pullSecret

기본 이미지를 가져오는 데 필요한 인증 정보가 있는 컨테이너 레지스트리 시크릿.

string

12.2.72. ExternalConfiguration 스키마 참조

사용 위치: KafkaConnectSpec, KafkaMirrorMaker2Spec

ExternalConfiguration 스키마 속성의 전체 목록

Kafka Connect 커넥터에 대한 구성 옵션을 정의하는 외부 스토리지 속성을 구성합니다.

Kafka Connect Pod에 ConfigMap 또는 보안을 환경 변수 또는 볼륨으로 마운트할 수 있습니다. 볼륨 및 환경 변수는 KafkaConnect.specexternalConfiguration 속성에 구성됩니다.

적용되면 커넥터를 개발할 때 환경 변수와 볼륨을 사용할 수 있습니다.

12.2.72.1. env

env 속성을 사용하여 하나 이상의 환경 변수를 지정합니다. 이러한 변수는 ConfigMap 또는 Secret의 값을 포함할 수 있습니다.

환경 변수에 대한 값을 포함하는 Secret의 예

apiVersion: v1
kind: Secret
metadata:
  name: aws-creds
type: Opaque
data:
  awsAccessKey: QUtJQVhYWFhYWFhYWFhYWFg=
  awsSecretAccessKey: Ylhsd1lYTnpkMjl5WkE=
Copy to Clipboard Toggle word wrap

참고

사용자 정의 환경 변수의 이름은 KAFKA_ 또는 STRIMZI_ 로 시작할 수 없습니다.

Secret의 값을 환경 변수에 마운트하려면 valueFrom 속성과 secretKeyRef 를 사용합니다.

시크릿의 값으로 설정된 환경 변수의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  externalConfiguration:
    env:
      - name: AWS_ACCESS_KEY_ID
        valueFrom:
          secretKeyRef:
            name: aws-creds
            key: awsAccessKey
      - name: AWS_SECRET_ACCESS_KEY
        valueFrom:
          secretKeyRef:
            name: aws-creds
            key: awsSecretAccessKey
Copy to Clipboard Toggle word wrap

시크릿 마운트의 일반적인 사용 사례는 커넥터가 Amazon AWS와 통신하는 것입니다. 커넥터는 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 를 읽을 수 있어야 합니다.

ConfigMap의 값을 환경 변수에 마운트하려면 다음 예와 같이 valueFrom 속성에 configMapKeyRef 를 사용합니다.

ConfigMap의 값으로 설정된 환경 변수의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  externalConfiguration:
    env:
      - name: MY_ENVIRONMENT_VARIABLE
        valueFrom:
          configMapKeyRef:
            name: my-config-map
            key: my-key
Copy to Clipboard Toggle word wrap

12.2.72.2. volumes

volume을 사용하여 ConfigMaps 또는 Secrets를 Kafka Connect Pod에 마운트합니다.

환경 변수 대신 볼륨을 사용하는 것은 다음 시나리오에서 유용합니다.

  • Kafka Connect 커넥터를 구성하는 데 사용되는 속성 파일 마운트
  • TLS 인증서를 사용하여 신뢰 저장소 또는 키 저장소 마운트

볼륨은 경로 /opt/kafka/external-configuration/ <volume-name>의 Kafka Connect 컨테이너 내부에 마운트됩니다. 예를 들어 connector-config 라는 볼륨의 파일은 /opt/kafka/external-configuration/connector-config 디렉터리에 표시됩니다.

구성 공급자는 구성 외부에서 값을 로드합니다. 공급자 메커니즘을 사용하여 Kafka Connect REST 인터페이스를 통해 제한된 정보를 전달하지 않습니다.

  • FileConfigProvider 는 파일의 속성에서 구성 값을 로드합니다.
  • DirectoryConfigProvider 디렉터리 구조 내에서 별도의 파일에서 구성 값을 로드합니다.

사용자 지정 공급자를 포함하여 둘 이상의 공급자를 추가하려면 쉼표로 구분된 목록을 사용합니다. 사용자 지정 공급자를 사용하여 다른 파일 위치에서 값을 로드할 수 있습니다.

FileConfigProvider 를 사용하여 속성 값 로드

이 예에서 mysecret 이라는 Secret에는 데이터베이스 이름과 암호를 지정하는 커넥터 속성이 포함되어 있습니다.

데이터베이스 속성이 있는 시크릿 예

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
stringData:
  connector.properties: |- 
1

    dbUsername: my-username 
2

    dbPassword: my-password
Copy to Clipboard Toggle word wrap

1
속성 파일 형식의 커넥터 구성입니다.
2
구성에 사용되는 데이터베이스 사용자 이름 및 암호 속성입니다.

Secret 및 FileConfigProvider 구성 공급자는 Kafka Connect 구성에 지정됩니다.

  • Secret은 connector-config 라는 볼륨에 마운트됩니다.
  • FileConfigProvider 에는 별칭 파일이 제공됩니다.

시크릿에서 값으로 설정된 외부 볼륨 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  config:
    config.providers: file 
1

    config.providers.file.class: org.apache.kafka.common.config.provider.FileConfigProvider 
2

  #...
  externalConfiguration:
    volumes:
      - name: connector-config 
3

        secret:
          secretName: mysecret 
4
Copy to Clipboard Toggle word wrap

1
구성 공급자의 별칭은 다른 구성 매개 변수를 정의하는 데 사용됩니다.
2
FileConfigProvider 는 속성 파일에서 값을 제공합니다. 매개 변수는 config.providers. ${alias}.class 형식의 별칭 을 사용합니다.
3
보안이 포함된 볼륨의 이름입니다. 각 볼륨은 name 속성에 이름을 지정하고 ConfigMap 또는 Secret에 대한 참조를 지정해야 합니다.
4
보안의 이름입니다.

Secret의 속성 값에 대한 자리 표시자는 커넥터 구성에서 참조됩니다. 자리 표시자 구조는 file:PATH-AND-FILE-NAME:PROPERTY 입니다. FileConfigProvider 는 커넥터 구성에서 마운트된 Secret에서 데이터베이스 사용자 이름암호 속성 값을 읽고 추출합니다.

외부 값에 대한 자리 표시자를 표시하는 커넥터 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: my-source-connector
  labels:
    strimzi.io/cluster: my-connect-cluster
spec:
  class: io.debezium.connector.mysql.MySqlConnector
  tasksMax: 2
  config:
    database.hostname: 192.168.99.1
    database.port: "3306"
    database.user: "${file:/opt/kafka/external-configuration/connector-config/mysecret:dbUsername}"
    database.password: "${file:/opt/kafka/external-configuration/connector-config/mysecret:dbPassword}"
    database.server.id: "184054"
    #...
Copy to Clipboard Toggle word wrap

DirectoryConfigProvider 를 사용하여 별도의 파일에서 속성 값을 로드

이 예에서 Secret 에는 별도의 파일에 TLS 신뢰 저장소 및 키 저장소 사용자 인증 정보가 포함되어 있습니다.

사용자 인증 정보가 있는 시크릿 예

apiVersion: v1
kind: Secret
metadata:
  name: my-user
  labels:
    strimzi.io/kind: KafkaUser
    strimzi.io/cluster: my-cluster
type: Opaque
data: 
1

  ca.crt: # Public key of the client CA
  user.crt: # User certificate that contains the public key of the user
  user.key: # Private key of the user
  user.p12: # PKCS #12 archive file for storing certificates and keys
  user.password: # Password for protecting the PKCS #12 archive file
Copy to Clipboard Toggle word wrap

Secret 및 DirectoryConfigProvider 구성 공급자는 Kafka Connect 구성에 지정됩니다.

  • Secret은 connector-config 라는 볼륨에 마운트됩니다.
  • DirectoryConfigProvider 에는 별칭 디렉터리 가 제공됩니다.

사용자 인증 정보 파일의 외부 볼륨 세트 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  config:
    config.providers: directory
    config.providers.directory.class: org.apache.kafka.common.config.provider.DirectoryConfigProvider 
1

  #...
  externalConfiguration:
    volumes:
      - name: cluster-ca
        secret:
          secretName: my-cluster-cluster-ca-cert
      - name: my-user
        secret:
          secretName: my-user
Copy to Clipboard Toggle word wrap

1 1
DirectoryConfigProvider 는 디렉터리의 파일에서 값을 제공합니다. 매개 변수는 config.providers. ${alias}.class 형식의 별칭 을 사용합니다.

인증 정보의 자리 표시자는 커넥터 구성에서 참조됩니다. 자리 표시자 구조는 directory:PATH:FILE-NAME 입니다. DirectoryConfigProvider 는 커넥터 구성에서 마운트된 시크릿에서 인증 정보를 읽고 추출합니다.

외부 값에 대한 자리 표시자를 표시하는 커넥터 구성 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: my-source-connector
  labels:
    strimzi.io/cluster: my-connect-cluster
spec:
  class: io.debezium.connector.mysql.MySqlConnector
  tasksMax: 2
  config:
    # ...
    database.history.producer.security.protocol: SSL
    database.history.producer.ssl.truststore.type: PEM
    database.history.producer.ssl.truststore.certificates: "${directory:/opt/kafka/external-configuration/cluster-ca:ca.crt}"
    database.history.producer.ssl.keystore.type: PEM
    database.history.producer.ssl.keystore.certificate.chain: "${directory:/opt/kafka/external-configuration/my-user:user.crt}"
    database.history.producer.ssl.keystore.key: "${directory:/opt/kafka/external-configuration/my-user:user.key}"
    #...
Copy to Clipboard Toggle word wrap

12.2.72.3. ExternalConfiguration 스키마 속성

Expand
속성설명

env

Kafka Connect Pod에서 시크릿 또는 ConfigMap의 데이터를 환경 변수로 사용할 수 있도록 합니다.

ExternalConfigurationEnv array

volumes

Kafka Connect Pod에서 시크릿 또는 ConfigMap의 데이터를 볼륨으로 사용할 수 있도록 합니다.

ExternalConfigurationVolumeSource 배열

12.2.73. ExternalConfigurationEnv schema reference

사용 위치: ExternalConfiguration

Expand
속성설명

name

Kafka Connect Pod에 전달될 환경 변수의 이름입니다. 환경 변수의 이름은 KAFKA_ 또는 STRIMZI_ 로 시작할 수 없습니다.

string

valueFrom

Kafka Connect Pod에 전달할 환경 변수의 값입니다. Secret 또는 ConfigMap 필드에 대한 참조로 전달할 수 있습니다. 이 필드는 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다.

ExternalConfigurationEnvVarSource

12.2.74. ExternalConfigurationEnvVarSource schema reference

사용 위치: ExternalConfigurationEnv

Expand
속성설명

configMapKeyRef

ConfigMap의 키에 대한 참조입니다. 자세한 내용은 core/v1 configmapkeyselector의 외부 문서를 참조하십시오.

ConfigMapKeySelector

secretKeyRef

시크릿의 키에 대한 참조입니다. 자세한 내용은 core/v1 secretkeyselector의 외부 문서를 참조하십시오.

SecretKeySelector

12.2.75. ExternalConfigurationVolumeSource schema reference

사용 위치: ExternalConfiguration

Expand
속성설명

configMap

ConfigMap의 키에 대한 참조입니다. 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. 자세한 내용은 core/v1 configmapvolumesource 에 대한 외부 문서를 참조하십시오.

ConfigMapVolumeSource

name

Kafka Connect Pod에 추가할 볼륨의 이름입니다.

string

Secret

시크릿의 키에 대한 참조입니다. 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. 자세한 내용은 core/v1 secretvolumesource 에 대한 외부 문서를 참조하십시오.

SecretVolumeSource

12.2.76. 빌드 스키마 참조

사용 위치: KafkaConnectSpec

빌드 스키마 속성의 전체 목록

Kafka Connect 배포를 위한 추가 커넥터를 구성합니다.

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

  #...
Copy to Clipboard Toggle word wrap

1
(필수) AMQ Streams에서 사용하는 출력 유형입니다.
2
(필수) 리포지토리 및 태그를 포함하여 사용된 이미지의 전체 이름입니다.
3
(선택 사항) 컨테이너 레지스트리 인증 정보가 있는 시크릿의 이름입니다.

OpenShift ImageStream 사용

Docker 대신 OpenShift ImageStream을 사용하여 새 컨테이너 이미지를 저장할 수 있습니다. ImageStream은 Kafka Connect를 배포하기 전에 수동으로 생성해야 합니다. ImageStream을 사용하려면 유형을 imagestream 로 설정하고 image 속성을 사용하여 이미지 스트림 이름 및 사용된 태그를 지정합니다. 예를 들면 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

  #...
Copy to Clipboard Toggle word wrap

1
(필수) AMQ Streams에서 사용하는 출력 유형입니다.
2
(필수) ImageStream 및 tag의 이름입니다.

12.2.76.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/1.3.1.Final/debezium-connector-postgres-1.3.1.Final-plugin.tar.gz
            sha512sum: 962a12151bdf9a5a30627eebac739955a4fd95a08d373b86bdcea2b4d0c27dd6e1edd5cb548045e115e33a9e69b1b2a352bee24df035a0447cb820077af00c03
      - name: camel-telegram
        artifacts:
          - type: tgz
            url: https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-telegram-kafka-connector/0.7.0/camel-telegram-kafka-connector-0.7.0-package.tar.gz
            sha512sum: a9b1ac63e3284bea7836d7d24d84208c49cdf5600070e6bd1535de654f6920b74ad950d51733e8020bf4187870699819f54ef5859c7846ee4081507f48873479
  #...
Copy to Clipboard Toggle word wrap

1
(필수) 커넥터 플러그인 및 아티팩트 목록입니다.

AMQ Streams는 다음 유형의 아티팩트를 지원합니다.

  • JAR 파일, 직접 다운로드 및 사용
  • 다운로드 및 압축 해제된 TGZ 아카이브
  • ZIP 아카이브, 다운로드 및 압축 해제
  • Maven 좌표를 사용하는 Maven 아티팩트
  • 기타 아티팩트는 직접 다운로드 및 사용
중요

AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 체크섬 확인을 구성하여 자동화된 빌드 및 Kafka Connect 배포에서 동일한 아티팩트를 사용해야 합니다.

JAR 아티팩트 사용

JAR 아티팩트는 컨테이너 이미지에 다운로드 및 추가된 JAR 파일을 나타냅니다. JAR 아티팩트를 사용하려면 type 속성을 root 설정하고 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
  #...
Copy to Clipboard Toggle word wrap

1
(필수) 아티팩트 유형입니다.
2
(필수) 아티팩트를 다운로드한 URL입니다.
3
(선택 사항) SHA-512 체크섬을 사용하여 아티팩트를 확인합니다.

TGZ 아티팩트 사용

TGZ 아티팩트는 Gzip 압축을 사용하여 압축한 TAR 아카이브를 다운로드하는 데 사용됩니다. TGZ 아티팩트는 여러 다른 파일을 포함하는 경우에도 전체 Kafka Connect 커넥터를 포함할 수 있습니다. 새 컨테이너 이미지를 빌드하는 동안 AMQ Streams에서 TGZ 아티팩트를 자동으로 다운로드하고 압축을 풉니다. 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

  #...
Copy to Clipboard Toggle word wrap

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

  #...
Copy to Clipboard Toggle word wrap

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

  #...
Copy to Clipboard Toggle word wrap

1
(필수) 아티팩트 유형입니다.
2
(필수) 아티팩트를 다운로드한 URL입니다.
3
(선택 사항) SHA-512 체크섬을 사용하여 아티팩트를 확인합니다.
4
(선택 사항) 결과 컨테이너 이미지에 파일이 저장되는 이름입니다.

12.2.76.3. 빌드 스키마 속성

Expand
속성설명

출력

새로 빌드된 이미지를 저장할 위치를 구성합니다. 필수 항목입니다. 유형은 지정된 오브젝트 내의 output.type 속성 값에 따라 다르며 [docker, imagestream] 중 하나여야 합니다.

DockerOutput, ImageStreamOutput

resources

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

ResourceRequirements

plugins

Kafka Connect에 추가해야 하는 커넥터 플러그인 목록입니다. 필수 항목입니다.

플러그인 배열

12.2.77. DockerOutput 스키마 참조

사용 위치: Build

type 속성은 DockerOutput 유형 사용을 ImageStreamOutput 과 구분하는 불일치입니다. DockerOutput 유형의 docker 값이 있어야 합니다.

Expand
속성설명

image

새로 빌드된 이미지에 태그 지정 및 푸시에 사용해야 하는 전체 이름입니다. 예를 들어 quay.io/my-organization/my-custom-connect:latest. 필수 항목입니다.

string

pushSecret

새로 빌드된 이미지를 푸시하기 위한 인증 정보가 있는 컨테이너 레지스트리 시크릿.

string

additionalKanikoOptions

새 Connect 이미지를 빌드할 때 Kaniko executor에 전달될 추가 옵션을 설정합니다. 허용되는 옵션은 --customPlatform, --insecure, --insecure-pull, --insecure-registry, --log-format, --log-timestamp, --registry-mirror, --single-snapshot, --skip-tls-verify, --skip-tls-verify-pull, --skip-tls-verify-pull, --skip-tls-verify, --verbosity, --snapshotMode, --snapshotMode, --snapshot-run입니다. 이러한 옵션은 Kaniko executor가 사용되는 OpenShift에서만 사용됩니다. OpenShift에서 무시됩니다. 옵션은 Kaniko GitHub 리포지토리에 설명되어 있습니다. 이 필드를 변경하면 Kafka Connect 이미지의 새 빌드가 트리거되지 않습니다.

문자열 배열

type

docker 여야 합니다.

string

12.2.78. ImageStreamOutput schema reference

사용 위치: Build

type 속성은 ImageStreamOutput 유형 사용을 DockerOutput 과 구분하는 불일치입니다. ImageStreamOutput 유형의 값 이미지 스트림이 있어야 합니다.

Expand
속성설명

image

새로 빌드된 이미지를 내보낼 ImageStream의 이름과 태그입니다. 예: my-custom-connect:latest. 필수 항목입니다.

string

type

이미지 스트림이어야 합니다.

string

12.2.79. 플러그인 스키마 참조

사용 위치: Build

Expand
속성설명

name

커넥터 플러그인의 고유 이름입니다. 는 커넥터 아티팩트가 저장될 경로를 생성하는 데 사용됩니다. 이름은 KafkaConnect 리소스 내에서 고유해야 합니다. 이름은 ^[a-z][-_a-z0-9]*[a-z]$ 의 패턴을 따라야 합니다. 필수 항목입니다.

string

아티팩트

이 커넥터 플러그인에 속하는 아티팩트 목록입니다. 필수 항목입니다.

JarArtifact, TgzArtifact, ZipArtifact, MavenArtifact, OtherArtifact 배열

12.2.80. JarArtifact 스키마 참조

사용된 기능: 플러그인

Expand
속성설명

url

다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 아티팩트를 수동으로 확인하고 자동화된 빌드에서 동일한 아티팩트를 사용하도록 체크섬 확인을 구성해야 합니다. scap , zip ,tgz기타 아티팩트에 필요합니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

sha512sum

아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬을 확인합니다. 지정하지 않으면 다운로드한 아티팩트가 확인되지 않습니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

insecure

기본적으로 TLS를 사용하는 연결이 안전한지 확인하기 위해 확인합니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있으며 서버 이름을 포함해야 합니다. 이 옵션을 true 로 설정하면 서버가 안전하지 않은 것으로 간주되는 경우에도 모든 TLS 확인이 비활성화되고 아티팩트가 다운로드됩니다.

boolean

type

vap이어야 합니다.

string

12.2.81. TgzArtifact 스키마 참조

사용된 기능: 플러그인

Expand
속성설명

url

다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 아티팩트를 수동으로 확인하고 자동화된 빌드에서 동일한 아티팩트를 사용하도록 체크섬 확인을 구성해야 합니다. scap , zip ,tgz기타 아티팩트에 필요합니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

sha512sum

아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬을 확인합니다. 지정하지 않으면 다운로드한 아티팩트가 확인되지 않습니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

insecure

기본적으로 TLS를 사용하는 연결이 안전한지 확인하기 위해 확인합니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있으며 서버 이름을 포함해야 합니다. 이 옵션을 true 로 설정하면 서버가 안전하지 않은 것으로 간주되는 경우에도 모든 TLS 확인이 비활성화되고 아티팩트가 다운로드됩니다.

boolean

type

tgz 여야 합니다.

string

12.2.82. ZipArtifact 스키마 참조

사용된 기능: 플러그인

Expand
속성설명

url

다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 아티팩트를 수동으로 확인하고 자동화된 빌드에서 동일한 아티팩트를 사용하도록 체크섬 확인을 구성해야 합니다. scap , zip ,tgz기타 아티팩트에 필요합니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

sha512sum

아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬을 확인합니다. 지정하지 않으면 다운로드한 아티팩트가 확인되지 않습니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

insecure

기본적으로 TLS를 사용하는 연결이 안전한지 확인하기 위해 확인합니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있으며 서버 이름을 포함해야 합니다. 이 옵션을 true 로 설정하면 서버가 안전하지 않은 것으로 간주되는 경우에도 모든 TLS 확인이 비활성화되고 아티팩트가 다운로드됩니다.

boolean

type

zip 이어야 합니다.

string

12.2.83. MavenArtifact 스키마 참조

사용된 기능: 플러그인

type 속성은 MavenArtifact 유형인 JarArtifact 유형, TgzArtifact, ZipArtifact, OtherArtifact...의 사용을 구분하는 불일치입니다. MavenArtifact 유형의 maven 값이 있어야 합니다.

Expand
속성설명

리포지토리

아티팩트를 다운로드하는 Maven 리포지토리입니다. maven 아티팩트 유형에만 적용됩니다.

string

group

Maven 그룹 ID. maven 아티팩트 유형에만 적용됩니다.

string

아티팩트

Maven 아티팩트 ID. maven 아티팩트 유형에만 적용됩니다.

string

버전

Maven 버전 번호. maven 아티팩트 유형에만 적용됩니다.

string

type

maven 이어야 합니다.

string

12.2.84. OtherArtifact 스키마 참조

사용된 기능: 플러그인

Expand
속성설명

url

다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 아티팩트를 수동으로 확인하고 자동화된 빌드에서 동일한 아티팩트를 사용하도록 체크섬 확인을 구성해야 합니다. scap , zip ,tgz기타 아티팩트에 필요합니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

sha512sum

아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬을 확인합니다. 지정하지 않으면 다운로드한 아티팩트가 확인되지 않습니다. maven 아티팩트 유형에는 적용되지 않습니다.

string

fileName

아티팩트를 저장할 이름입니다.

string

insecure

기본적으로 TLS를 사용하는 연결이 안전한지 확인하기 위해 확인합니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있으며 서버 이름을 포함해야 합니다. 이 옵션을 true 로 설정하면 서버가 안전하지 않은 것으로 간주되는 경우에도 모든 TLS 확인이 비활성화되고 아티팩트가 다운로드됩니다.

boolean

type

다른 이어야 합니다.

string

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

12.2.86. ConnectorPlugin 스키마 참조

사용 위치: KafkaConnectStatus, KafkaMirrorMaker2Status

Expand
속성설명

type

커넥터 플러그인의 유형입니다. 사용 가능한 유형은 싱크소스 입니다.

string

버전

커넥터 플러그인의 버전입니다.

string

클래스

커넥터 플러그인의 클래스입니다.

string

12.2.87. KafkaTopic 스키마 참조

Expand
속성설명

spec

주제의 사양입니다.

KafkaTopicSpec

status

주제의 상태입니다.

KafkaTopicStatus

12.2.88. KafkaTopicSpec schema reference

사용 위치: KafkaTopic

Expand
속성설명

파티션

주제의 파티션 수입니다. 주제 작성 후에는 이 값을 줄일 수 없습니다. 주제 생성 후 늘릴 수 있지만 특히 의미 체계 파티션이 있는 주제에서 발생하는 결과를 이해하는 것이 중요합니다. absent가 없는 경우 기본값은 num.partitions 의 브로커 구성입니다.

integer

replicas

항목에 있어야 하는 복제본 수입니다. absent가 없으면 default.replication.factor 의 브로커 구성이 기본적으로 설정됩니다.

integer

config

주제 구성입니다.

map

topicName

주제의 이름입니다. absent가 없으면 기본적으로 주제의 metadata.name이 설정됩니다. 주제 이름이 유효한 OpenShift 리소스 이름이 아닌 한 이 값을 설정하지 않는 것이 좋습니다.

string

12.2.89. KafkaTopicStatus 스키마 참조

사용 위치: KafkaTopic

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

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

integer

topicName

주제 이름.

string

12.2.90. KafkaUser 스키마 참조

Expand
속성설명

spec

사용자의 사양입니다.

KafkaUserSpec

status

Kafka 사용자의 상태입니다.

KafkaUserStatus

12.2.91. 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 인증에 적합한 & lt;username > 형식으로 구성됩니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 속성 값은 [tls, tls-external, scram-sha-512] 중 하나여야 합니다.

KafkaUserTlsClientAuthentication, KafkaUserTlsExternalClientAuthentication, KafkaUserScramSha512ClientAuthentication

권한 부여

이 Kafka 사용자의 권한 부여 규칙입니다. 유형은 지정된 오브젝트 내의 authorization.type 속성 값에 따라 다르며, 이는 [simple] 중 하나여야 합니다.

KafkaUserAuthorizationSimple

할당량

클라이언트에서 사용하는 브로커 리소스를 제어하기 위한 요청 할당량입니다. 네트워크 대역폭 및 요청 속도 할당량을 적용할 수 있습니다. Kafka 사용자 할당량에 대한Kafka 문서는 http://kafka.apache.org/documentation/#design_quotas 에서 확인할 수 있습니다.

KafkaUserQuotas

template

Kafka 사용자 시크릿 이 생성되는 방법을 지정하는 템플릿입니다.

KafkaUserTemplate

12.2.92. KafkaUserTlsClientAuthentication 스키마 참조

사용 위치: KafkaUserSpec

type 속성은 KafkaUserTlsClientAuthentication 유형과 KafkaUserTls ExternalClientAuthentication , KafkaUser ScramSha512ClientAuthentication 유형을 구분하는 불일치입니다. KafkaUserTlsClientAuthentication 유형의 tls 값이 있어야 합니다.

Expand
속성설명

type

tls 여야 합니다.

string

12.2.93. KafkaUserTlsExternalClientAuthentication schema reference

사용 위치: KafkaUserSpec

type 속성은 KafkaUserTlsExternalClientAuthentication 유형과 KafkaUserTlsClientAuthentication 유형인 KafkaUserScramSha512ClientAuthentication 을 구분하는 불일치입니다. KafkaUserTlsExternalClientAuthentication 유형의 tls-external 값이 있어야 합니다.

Expand
속성설명

type

tls-external 이어야 합니다.

string

12.2.94. KafkaUserScramSha512ClientAuthentication 스키마 참조

사용 위치: KafkaUserSpec

type 속성은 KafkaUserScramSha512ClientAuthentication 유형과 KafkaUserTlsClientAuthentication, KafkaUserTlsExternalClientAuthentication 의 사용을 구분하는 불일치입니다. KafkaUserScramSha512ClientAuthentication 유형의 scram-sha-512 값이 있어야 합니다.

Expand
속성설명

암호

사용자의 암호를 지정합니다. 설정되지 않은 경우 User Operator에 의해 새 암호가 생성됩니다.

암호

type

scram-sha-512 여야 합니다.

string

12.2.95. 암호 스키마 참조

사용 위치: KafkaUserScramSha512ClientAuthentication

Expand
속성설명

valueFrom

암호를 읽을 수 있는 시크릿입니다.

PasswordSource

12.2.96. PasswordSource 스키마 참조

사용 위치: 암호

Expand
속성설명

secretKeyRef

리소스 네임스페이스에서 Secret 키를 선택합니다. 자세한 내용은 core/v1 secretkeyselector의 외부 문서를 참조하십시오.

SecretKeySelector

12.2.97. KafkaUserAuthorizationSimple 스키마 참조

사용 위치: KafkaUserSpec

type 속성은 KafkaUserAuthorizationSimple 유형 사용을 나중에 추가할 수 있는 다른 하위 유형과 구분하는 불일치입니다. KafkaUserAuthorizationSimple 형식에 대한 간단한 값이 있어야 합니다.

Expand
속성설명

type

단순 해야 합니다.

string

ACL

이 사용자에게 적용해야 하는 ACL 규칙 목록입니다.

AclRule 배열

12.2.98. 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
        operation: Read
      - resource:
          type: topic
          name: my-topic
          patternType: literal
        operation: Describe
      - resource:
          type: group
          name: my-group
          patternType: prefix
        operation: Read
Copy to Clipboard Toggle word wrap

12.2.98.1. resource

resource 속성을 사용하여 규칙이 적용되는 리소스를 지정합니다.

간단한 권한 부여는 유형 속성에 지정된 네 가지 리소스 유형을 지원합니다.

  • 주제(주)
  • 소비자 그룹(그룹)
  • 클러스터 (클러스터)
  • 트랜잭션 ID(TransactionId)

Topic, Group 및 Transactional ID 리소스의 경우 name 속성에서 규칙이 적용되는 리소스의 이름을 지정할 수 있습니다.

클러스터 유형 리소스에는 이름이 없습니다.

name은 patternType 속성을 사용하여 리터럴 또는 접두사로 지정됩니다.

  • 리터럴 이름은 이름 필드에 지정된 대로 정확하게 사용됩니다.
  • 접두사 이름은 name 값을 접두사로 사용한 다음 해당 값으로 시작하는 이름이 있는 모든 리소스에 규칙을 적용합니다.

patternType리터럴 로 설정하면 이름을 * 로 설정하여 규칙이 모든 리소스에 적용됨을 나타낼 수 있습니다.

사용자가 모든 주제의 메시지를 읽을 수 있도록 하는 ACL 규칙의 예

    acls:
      - resource:
          type: topic
          name: "*"
          patternType: literal
        operation: Read
Copy to Clipboard Toggle word wrap

12.2.98.2. type

작업을 허용 또는 거부할 규칙 유형입니다 (현재 지원되지 않음).

type 필드는 선택 사항입니다. type 을 지정하지 않으면 ACL 규칙이 허용 규칙으로 처리됩니다.

12.2.98.3. 작업

허용 또는 거부할 규칙에 대한 작업을 지정합니다.

지원되는 작업은 다음과 같습니다.

  • 읽기
  • 쓰기
  • delete
  • 변경
  • describe
  • All
  • IdempotentWrite
  • ClusterAction
  • 개발
  • AlterConfigs
  • DescribeConfigs

특정 작업만 각 리소스에서 작동합니다.

리소스 및 작업의 AclAuthorizer, ACL 및 지원되는 조합에 대한 자세한 내용은 권한 부여 및 ACL을 참조하십시오.

12.2.98.4. host

host 속성을 사용하여 규칙이 허용 또는 거부되는 원격 호스트를 지정합니다.

별표(*)를 사용하여 모든 호스트의 작업을 허용하거나 거부합니다. host 필드는 선택 사항입니다. host 를 지정하지 않으면 기본적으로 * 값이 사용됩니다.

12.2.98.5. AclRule 스키마 속성

Expand
속성설명

host

ACL 규칙에 설명된 작업이 허용 또는 거부되는 호스트입니다.

string

작업

허용 또는 거부되는 작업입니다. 지원되는 작업은 Read, Write, Create, Delete, Alter, Describe, ClusterAction, AlterConfigs,DescribeConfigs, IdempotentWrite 및 All입니다.

문자열 ([Read, Write, Delete, Alter, Describe, All, IdempotentWrite, ClusterAction, Create, AlterConfigs, DescribeConfigs])

resource

지정된 ACL 규칙이 적용되는 리소스를 나타냅니다. 유형은 지정된 오브젝트 내의 resource.type 속성 값에 따라 다르며 [topic, group, cluster, transactionalId] 중 하나여야 합니다.

AclRuleTopicResource, AclRuleGroupResource, AclRuleClusterResource, AclRuleTransactionalIdResource

type

규칙의 유형입니다. 현재 지원되는 유일한 유형은 allow 입니다. 유형 allow 이 있는 ACL 규칙은 사용자가 지정된 작업을 실행할 수 있도록 허용하는 데 사용됩니다. 기본값은 allow 입니다.

문자열([허용, 거부] 중 하나)

12.2.99. AclRuleTopicResource schema reference

사용 위치: AclRule

type 속성은 AclRuleTopicResource 유형과 AclRuleGroupResource, AclRuleClusterResource, AclRuleTransactionalIdResource. AclRuleTopicResource 유형의 값 항목이 있어야 합니다.

Expand
속성설명

type

주제 여야 합니다.

string

name

ACL 규칙이 적용되는 리소스의 이름입니다. 접두사 패턴을 사용하도록 patternType 필드와 결합할 수 있습니다.

string

patternType

resource 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 리터럴접두사 입니다. 리터럴 패턴 유형을 사용하면 리소스 필드가 전체 주제 이름에 대한 정의로 사용됩니다. 접두사 패턴 유형을 사용하면 리소스 이름이 접두사로만 사용됩니다. 기본값은 리터럴 입니다.

문자열([prefix, literal] 중 하나)

12.2.100. AclRuleGroupResource schema reference

사용 위치: AclRule

type 속성은 AclRuleGroupResource 유형과 AclRuleTopicResource, AclRuleClusterResource, AclRuleTransactionalIdResource. AclRuleGroupResource 유형의 값 그룹이 있어야 합니다.

Expand
속성설명

type

그룹 이어야 합니다.

string

name

ACL 규칙이 적용되는 리소스의 이름입니다. 접두사 패턴을 사용하도록 patternType 필드와 결합할 수 있습니다.

string

patternType

resource 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 리터럴접두사 입니다. 리터럴 패턴 유형을 사용하면 리소스 필드가 전체 주제 이름에 대한 정의로 사용됩니다. 접두사 패턴 유형을 사용하면 리소스 이름이 접두사로만 사용됩니다. 기본값은 리터럴 입니다.

문자열([prefix, literal] 중 하나)

12.2.101. AclRuleClusterResource schema reference

사용 위치: AclRule

type 속성은 AclRuleClusterResource 유형 AclRuleTopicResource, AclRuleGroupResource, AclRuleTransactionalIdResource. AclRuleClusterResource 유형의 value cluster 가 있어야 합니다.

Expand
속성설명

type

클러스터 여야 합니다.

string

12.2.102. AclRuleTransactionalIdResource schema reference

사용 위치: AclRule

type 속성은 AclRuleTransactionalIdResource 유형과 AclRuleTopicResource, AclRuleGroupResource, AclRuleClusterResource. AclRuleTransactionalIdResource 유형의 transactionalId 값이 있어야 합니다.

Expand
속성설명

type

Transaction Id 여야 합니다.

string

name

ACL 규칙이 적용되는 리소스의 이름입니다. 접두사 패턴을 사용하도록 patternType 필드와 결합할 수 있습니다.

string

patternType

resource 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 리터럴접두사 입니다. 리터럴 패턴 유형을 사용하면 리소스 필드가 전체 이름의 정의로 사용됩니다. 접두사 패턴 유형을 사용하면 리소스 이름이 접두사로만 사용됩니다. 기본값은 리터럴 입니다.

문자열([prefix, literal] 중 하나)

12.2.103. KafkaUserQuotas 스키마 참조

사용 위치: KafkaUserSpec

KafkaUserQuotas 스키마 속성의 전체 목록

Kafka를 사용하면 사용자가 할당량을 설정하여 클라이언트의 리소스 사용을 제어할 수 있습니다.

12.2.103.1. 할당량

다음 유형의 할당량을 사용하도록 클라이언트를 구성할 수 있습니다.

  • 네트워크 사용량 할당량은 할당량을 공유하는 클라이언트 그룹의 바이트 비율 임계값을 지정합니다.
  • CPU 사용률 할당량은 클라이언트의 브로커 요청 창을 지정합니다. 창은 클라이언트가 요청을 하는 시간의 백분율입니다. 클라이언트는 브로커의 I/O 스레드 및 네트워크 스레드를 요청합니다.
  • 파티션 변경 할당량은 초당 클라이언트를 변경할 수 있는 파티션 변경 수를 제한합니다.

파티션 변경 할당량은 동시 주제 작업으로 Kafka 클러스터가 압도되지 않도록 합니다. 다음 유형의 사용자 요청에 대한 응답으로 파티션 변경이 발생합니다.

  • 새 주제의 파티션 생성
  • 기존 항목에 파티션 추가
  • 주제에서 파티션 삭제

파티션 변경 할당량을 구성하여 사용자 요청에 변경 사항이 허용되는 속도를 제어할 수 있습니다.

Kafka 클라이언트에 할당량을 사용하는 것은 여러 상황에서 유용할 수 있습니다. 너무 높은 속도로 요청을 보내는 잘못 구성된 Kafka 생산자를 고려하십시오. 이러한 잘못된 구성으로 인해 다른 클라이언트에 대한 서비스 거부가 발생할 수 있으므로 문제가 있는 클라이언트가 차단됩니다. 네트워크 제한 할당량을 사용하면 이러한 상황이 다른 클라이언트에 크게 영향을 미치지 않도록 할 수 있습니다.

AMQ Streams는 클라이언트 수준 할당량은 지원하지만 사용자 수준 할당량은 지원하지 않습니다.

Kafka 사용자 할당량 구성의 예

spec:
  quotas:
    producerByteRate: 1048576
    consumerByteRate: 2097152
    requestPercentage: 55
    controllerMutationRate: 10
Copy to Clipboard Toggle word wrap

Kafka 사용자 할당량에 대한 자세한 내용은 Apache Kafka 설명서 를 참조하십시오.

12.2.103.2. KafkaUserQuotas 스키마 속성

Expand
속성설명

consumerByteRate

그룹의 클라이언트가 제한되기 전에 각 클라이언트 그룹이 브로커에서 가져올 수 있는 최대 바이트의 할당량입니다. Operator별로 정의됩니다.

integer

controllerMutationRate

생성 주제 요청, 파티션 생성 요청 및 삭제 주제 요청에 대해 변경 사항이 허용되는 비율의 할당량입니다. 이 비율은 생성 또는 삭제되는 파티션 수에 따라 누적됩니다.

number

producerByteRate

그룹의 클라이언트가 제한되기 전에 각 클라이언트 그룹이 브로커에 게시할 수 있는 최대 바이트의 할당량입니다. Operator별로 정의됩니다.

integer

requestPercentage

각 클라이언트 그룹의 최대 CPU 사용률에 대한 할당량은 네트워크 및 I/O 스레드의 백분율로 표시됩니다.

integer

12.2.104. 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
  # ...
Copy to Clipboard Toggle word wrap

12.2.104.1. KafkaUserTemplate 스키마 속성

Expand
속성설명

Secret

KafkaUser 리소스의 템플릿입니다. 템플릿을 사용하면 사용자가 암호 또는 TLS 인증서가 있는 시크릿 을 생성하는 방법을 지정할 수 있습니다.

ResourceTemplate

12.2.105. KafkaUserStatus 스키마 참조

사용 위치: KafkaUser

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

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

integer

사용자 이름

사용자 이름.

string

Secret

인증 정보가 저장되는 시크릿 의 이름입니다.

string

12.2.106. KafkaMirrorMaker 스키마 참조

KafkaMirrorMaker 유형이 더 이상 사용되지 않습니다. 대신 KafkaMirrorMaker2 를 사용하십시오.

Expand
속성설명

spec

Kafka MirrorMaker의 사양입니다.

KafkaMirrorMakerSpec

status

Kafka MirrorMaker의 상태입니다.

KafkaMirrorMakerStatus

12.2.107. KafkaMirrorMakerSpec schema reference

사용 위치: KafkaMirrorMaker

KafkaMirrorMakerSpec 스키마 속성의 전체 목록

Kafka MirrorMaker를 구성합니다.

12.2.107.1. 포함

include 속성을 사용하여 소스에서 대상 Kafka Kafka 클러스터로 Kafka MirrorMaker 미러하는 주제 목록을 구성합니다.

이 속성을 사용하면 단일 주제 이름에서 복잡한 패턴까지 가장 간단한 경우의 정규식을 사용할 수 있습니다. 예를 들어 A|B 를 사용하거나 * 를 사용하여 모든 주제를 미러링할 수 있습니다. Kafka MirrorMaker에 쉼표로 구분된 여러 정규식을 전달할 수도 있습니다.

12.2.107.2. KafkaMirrorMakerConsumerSpec and KafkaMirrorMakerProducerSpec

KafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec 을 사용하여 소스(consumer) 및 대상(producer) 클러스터를 구성합니다.

Kafka MirrorMaker는 항상 두 개의 Kafka 클러스터(소스 및 대상)와 함께 작동합니다. 연결을 설정하기 위해 소스의 부트스트랩 서버와 대상 Kafka 클러스터는 HOSTNAME:PORT 쌍으로 쉼표로 구분된 목록으로 지정됩니다. 쉼표로 구분된 각 목록에는 하나 이상의 Kafka 브로커 또는 HOSTNAME:PORT 쌍으로 지정된 Kafka 브로커를 가리키는 서비스가 포함됩니다.

12.2.107.3. logging

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

  • mirrormaker.root.logger

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

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

로거 및 수준을 직접 (인라인) 지정하거나 사용자 지정(외부) 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"
  # ...
Copy to Clipboard Toggle word wrap
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: mirror-maker-log4j.properties
  # ...
Copy to Clipboard Toggle word wrap

가비지 수집기(GC)

jvmOptions 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.

12.2.107.4. KafkaMirrorMakerSpec 스키마 속성

Expand
속성설명

버전

Kafka MirrorMaker 버전입니다. 기본값은 3.2.3입니다. 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 이해하려면 설명서를 참조하십시오.

string

replicas

배포 의 Pod 수 .

integer

image

포드의 Docker 이미지입니다.

string

consumer

소스 클러스터 구성.

KafkaMirrorMakerConsumerSpec

producer

대상 클러스터 구성.

KafkaMirrorMakerProducerSpec

resources

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

ResourceRequirements

화이트리스트

whitelist 속성이 더 이상 사용되지 않으며 spec.include 를 사용하여 구성해야 합니다. 미러링을 위해 포함된 주제 목록입니다. 이 옵션을 사용하면 Java 스타일 정규식을 사용하는 모든 정규식을 사용할 수 있습니다. A|B 라는 표현식을 사용하여 A와 B라는 두 주제를 미러링할 수 있습니다. 또는 특수한 경우 정규식 * 을 사용하여 모든 항목을 미러링할 수 있습니다. 여러 정규 표현식을 쉼표로 구분하여 지정할 수도 있습니다.

string

포함

미러링을 위해 포함된 주제 목록입니다. 이 옵션을 사용하면 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] 중 하나여야 합니다.

JaegerTracing

template

Kafka MirrorMaker 리소스, 배포Pod 를 생성하는 방법을 지정하는 템플릿입니다.

KafkaMirrorMakerTemplate

livenessProbe

포드 활성 확인.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

12.2.108. KafkaMirrorMakerConsumerSpec schema reference

사용 위치: KafkaMirrorMakerSpec

KafkaMirrorMakerConsumerSpec 스키마 속성의 전체 목록

MirrorMaker 소비자를 구성합니다.

12.2.108.1. numStreams

consumer.numStreams 속성을 사용하여 소비자의 스트림 수를 구성합니다.

소비자 스레드 수를 늘리면 미러링 주제의 처리량을 늘릴 수 있습니다. 소비자 스레드는 Kafka MirrorMaker에 지정된 소비자 그룹에 속합니다. 주제 파티션은 병렬로 메시지를 사용하는 소비자 스레드 간에 할당됩니다.

12.2.108.2. offsetCommitInterval

consumer.offsetCommitInterval 속성을 사용하여 소비자에 대한 오프셋 자동 커밋 간격을 구성합니다.

Kafka MirrorMaker에서 소스 Kafka 클러스터에서 데이터를 사용한 후 오프셋이 커밋되는 정기적인 시간 간격을 지정할 수 있습니다. 시간 간격은 기본값 60,000인 밀리초 단위로 설정됩니다.

12.2.108.3. config

consumer.config 속성을 사용하여 소비자에 대한 Kafka 옵션을 구성합니다.

config 속성에는 다음 JSON 유형 중 하나에 값이 설정된 Kafka MirrorMaker 소비자 구성 옵션이 키로 포함되어 있습니다.

  • 문자열
  • 숫자
  • 부울

TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm 속성을 구성할 수도 있습니다.

예외

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

그러나 다음과 관련된 AMQ Streams에서 직접 구성 및 관리하는 옵션에 대한 예외가 있습니다.

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 소비자 그룹 식별자
  • 인터셉터

특히 다음 문자열 중 하나와 같거나 시작하는 키가 있는 모든 구성 옵션은 허용되지 않습니다.

config 속성에 forbidden 옵션이 있으면 무시되고 Cluster Operator 로그 파일에 경고 메시지가 출력됩니다. 다른 모든 옵션은 Kafka MirrorMaker로 전달됩니다.

중요

Cluster Operator는 제공된 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka MirrorMaker가 시작되지 않거나 불안정해질 수 있습니다. 이러한 경우 KafkaMirrorMaker.spec.consumer.config 오브젝트의 구성이 수정되어야 하며 Cluster Operator는 Kafka MirrorMaker의 새 구성을 롤아웃합니다.

12.2.108.4. groupId

consumer.groupId 속성을 사용하여 소비자의 소비자 그룹 식별자를 구성합니다.

Kafka MirrorMaker는 Kafka 소비자를 사용하여 메시지를 사용하며 다른 Kafka 소비자 클라이언트처럼 작동합니다. 소스 Kafka 클러스터에서 소비된 메시지는 대상 Kafka 클러스터로 미러링됩니다. 소비자가 파티션 할당을 위해 소비자 그룹의 일부여야 하므로 그룹 식별자가 필요합니다.

12.2.108.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., interceptor.classes (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)를 설정할 수 없습니다.

map

tls

MirrorMaker를 클러스터에 연결하기 위한 TLS 구성입니다.

ClientTls

12.2.109. KafkaMirrorMakerProducerSpec schema reference

사용 위치: KafkaMirrorMakerSpec

KafkaMirrorMakerProducerSpec 스키마 속성의 전체 목록

MirrorMaker 생산자를 구성합니다.

12.2.109.1. abortOnSendFailure

producer.abortOnSendFailure 속성을 사용하여 생산자에서 메시지 전송 실패를 처리하는 방법을 구성합니다.

기본적으로 Kafka MirrorMaker에서 Kafka 클러스터로 메시지를 보낼 때 오류가 발생하는 경우:

  • Kafka MirrorMaker 컨테이너가 OpenShift에서 종료됩니다.
  • 그러면 컨테이너가 다시 생성됩니다.

abortOnSendFailure 옵션이 false 로 설정되면 메시지 전송 오류가 무시됩니다.

12.2.109.2. config

producer.config 속성을 사용하여 생산자에 대한 Kafka 옵션을 구성합니다.

config 속성에는 다음 JSON 유형 중 하나에 값이 설정된 Kafka MirrorMaker 생산자 구성 옵션이 키로 포함되어 있습니다.

  • 문자열
  • 숫자
  • 부울

TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm 속성을 구성할 수도 있습니다.

예외

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

그러나 다음과 관련된 AMQ Streams에서 직접 구성 및 관리하는 옵션에 대한 예외가 있습니다.

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 인터셉터

특히 다음 문자열 중 하나와 같거나 시작하는 키가 있는 모든 구성 옵션은 허용되지 않습니다.

config 속성에 forbidden 옵션이 있으면 무시되고 Cluster Operator 로그 파일에 경고 메시지가 출력됩니다. 다른 모든 옵션은 Kafka MirrorMaker로 전달됩니다.

중요

Cluster Operator는 제공된 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka MirrorMaker가 시작되지 않거나 불안정해질 수 있습니다. 이러한 경우 KafkaMirrorMaker.spec.producer.config 오브젝트의 구성이 수정되어야 하며 Cluster Operator는 Kafka MirrorMaker의 새 구성을 롤아웃합니다.

12.2.109.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.protocols)를 설정할 수 없습니다.

map

tls

MirrorMaker를 클러스터에 연결하기 위한 TLS 구성입니다.

ClientTls

12.2.110. KafkaMirrorMakerTemplate 스키마 참조

사용 위치: KafkaMirrorMakerSpec

Expand
속성설명

Deployment

Kafka MirrorMaker 배포를 위한 템플릿 .

DeploymentTemplate

Pod

Kafka MirrorMaker 포드 의 템플릿 .

PodTemplate

podDisruptionBudget

Kafka MirrorMaker PodDisruptionBudget 용 템플릿 .

PodDisruptionBudgetTemplate

mirrorMakerContainer

Kafka MirrorMaker 컨테이너의 템플릿입니다.

ContainerTemplate

serviceAccount

Kafka MirrorMaker 서비스 계정의 템플릿입니다.

ResourceTemplate

12.2.111. KafkaMirrorMakerStatus schema reference

사용 위치: KafkaMirrorMaker

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

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

integer

labelSelector

이 리소스를 제공하는 Pod의 라벨 선택기입니다.

string

replicas

이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다.

integer

12.2.112. KafkaBridge 스키마 참조

Expand
속성설명

spec

Kafka 브리지의 사양입니다.

KafkaBridgeSpec

status

Kafka 브리지의 상태입니다.

KafkaBridgeStatus

12.2.113. KafkaBridgeSpec schema reference

사용 위치: KafkaBridge

KafkaBridgeSpec 스키마 속성의 전체 목록

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

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

  • Kafka 클러스터 부트스트랩 주소
  • 보안(암호화, 인증 및 권한 부여)
  • 소비자 구성
  • 생산자 구성
  • HTTP 구성

12.2.113.1. logging

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

  • logger.bridge
  • logger.<operation-id>

로거에서 < operation-id >를 교체할 수 있습니다. <operation-id > 로거는 특정 작업에 대한 로그 수준을 설정합니다.

  • createConsumer
  • deleteConsumer
  • subscribe
  • unsubscribe
  • 폴링
  • assign
  • commit
  • 전송
  • sendToPartition
  • seekToBeginning
  • seekToEnd
  • 검색
  • healthy
  • Ready
  • openapi

각 작업은 OpenAPI 사양에 따라 정의되며 브리지가 HTTP 클라이언트에서 요청을 수신하는 해당 API 끝점이 있습니다. 각 끝점에서 로그 수준을 변경하여 들어오고 나가는 HTTP 요청에 대한 세분화된 로깅 정보를 생성할 수 있습니다.

각 로거는 이름을 http.openapi.operation로 할당합니다. <operation-id>. 예를 들어, 전송 작업 로거에 대한 로깅 수준을 구성하려면 다음을 정의하는 것을 의미합니다.

logger.send.name = http.openapi.operation.send
logger.send.level = DEBUG
Copy to Clipboard Toggle word wrap

Kafka 브리지는 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
Copy to Clipboard Toggle word wrap

다른 모든 작업의 로그 수준은 기본적으로 INFO 로 설정됩니다.

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

로거 및 수준을 직접 (인라인) 지정하거나 사용자 지정(외부) 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:
      logger.bridge.level: "INFO"
      # enabling DEBUG just for send operation
      logger.send.name: "http.openapi.operation.send"
      logger.send.level: "DEBUG"
  # ...
Copy to Clipboard Toggle word wrap

외부 로깅

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: bridge-logj42.properties
  # ...
Copy to Clipboard Toggle word wrap

구성되지 않은 사용 가능한 로거는 수준이 OFF 로 설정되어 있습니다.

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

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

가비지 수집기(GC)

jvmOptions 속성을 사용하여 가비지 수집기 로깅을 활성화하거나 비활성화할 수도 있습니다.

12.2.113.2. KafkaBridgeSpec 스키마 속성

Expand
속성설명

replicas

배포 의 Pod 수 .

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

producer

Kafka 생산자 관련 구성.

KafkaBridgeProducerSpec

resources

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

ResourceRequirements

jvmOptions

현재 Pod에 대한 JVM 옵션은 지원되지 않습니다.

JvmOptions

logging

Kafka 브리지의 로깅 구성입니다. 유형은 지정된 오브젝트 내의 logging.type 속성 값에 따라 다르며, 이는 [inline, external] 중 하나여야 합니다.

InlineLogging, ExternalLogging

enableMetrics

Kafka 브리지의 지표를 활성화합니다. 기본값은 false입니다.

boolean

livenessProbe

포드 활성 확인.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

template

Kafka Bridge 리소스에 대한 템플릿입니다. 템플릿을 사용하면 사용자가 배포Pod 를 생성하는 방법을 지정할 수 있습니다.

KafkaBridgeTemplate

tracing

Kafka 브리지의 추적 구성 유형은 지정된 오브젝트 내의 tracing.type 속성 값에 따라 다르며 [jaeger] 중 하나여야 합니다.

JaegerTracing

12.2.114. KafkaBridgeHttpConfig schema reference

사용 위치: KafkaBridgeSpec

KafkaBridgeHttpConfig 스키마 속성의 전체 목록

Kafka 브리지의 Kafka 클러스터에 대한 HTTP 액세스를 구성합니다.

기본 HTTP 구성은 Kafka Bridge가 포트 8080에서 수신 대기하는 것입니다.

12.2.114.1. CORS

Kafka 클러스터에 대한 HTTP 액세스를 활성화할 뿐만 아니라 HTTP 속성은 CORS(Cross-Origin Resource Sharing)를 통해 Kafka 브릿지에 대한 액세스 제어를 활성화하고 정의하는 기능을 제공합니다. CORS는 브라우저에서 두 개 이상의 원본에서 선택한 리소스에 액세스할 수 있는 HTTP 메커니즘입니다. CORS를 구성하려면 허용되는 리소스 원본 및 HTTP 액세스 방법 목록을 정의합니다. 원본의 경우 URL 또는 Java 정규식을 사용할 수 있습니다.

Kafka Bridge 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"
  # ...
Copy to Clipboard Toggle word wrap

12.2.114.2. KafkaBridgeHttpConfig schema properties

Expand
속성설명

port

서버가 수신 대기하는 포트입니다.

integer

CORS

HTTP 브리지의 CORS 구성입니다.

KafkaBridgeHttpCors

12.2.115. KafkaBridgeHttpCors schema reference

사용 위치: KafkaBridgeHttpConfig

Expand
속성설명

allowedOrigins

허용되는 출처 목록입니다. Java 정규식을 사용할 수 있습니다.

문자열 배열

allowedMethods

허용된 HTTP 메서드 목록입니다.

문자열 배열

12.2.116. KafkaBridgeAdminClientSpec schema reference

사용 위치: KafkaBridgeSpec

Expand
속성설명

config

브리지에서 생성한 AdminClient 인스턴스에 사용되는 Kafka AdminClient 구성입니다.

map

12.2.117. KafkaBridgeConsumerSpec schema reference

사용 위치: KafkaBridgeSpec

KafkaBridgeConsumerSpec 스키마 속성의 전체 목록

Kafka 브리지의 소비자 옵션을 키로 구성합니다.

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

  • 문자열
  • 숫자
  • 부울

AMQ Streams에서 직접 관리하는 옵션을 제외하고 소비자의 Apache Kafka 구성 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 같거나 시작하는 키가 있는 모든 구성 옵션은 허용되지 않습니다.

  • ssl.
  • sasl.
  • 보안.
  • bootstrap.servers
  • group.id

config 속성에 금지된 옵션 중 하나가 있는 경우 무시되고 클러스터 Operator 로그 파일에 경고 메시지가 출력됩니다. 다른 모든 옵션은 Kafka로 전달됩니다.

중요

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

금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다.

Kafka 브리지 소비자 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  consumer:
    config:
      auto.offset.reset: earliest
      enable.auto.commit: true
      ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      ssl.enabled.protocols: "TLSv1.2"
      ssl.protocol: "TLSv1.2"
      ssl.endpoint.identification.algorithm: HTTPS
    # ...
Copy to Clipboard Toggle word wrap

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

12.2.118. KafkaBridgeProducerSpec schema reference

사용 위치: KafkaBridgeSpec

KafkaBridgeProducerSpec 스키마 속성의 전체 목록

Kafka 브리지의 생산자 옵션을 키로 구성합니다.

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

  • 문자열
  • 숫자
  • 부울

AMQ Streams에서 직접 관리하는 옵션을 제외하고 생산자에 대해 Apache Kafka 구성 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다. 특히 다음 문자열 중 하나와 같거나 시작하는 키가 있는 모든 구성 옵션은 허용되지 않습니다.

  • ssl.
  • sasl.
  • 보안.
  • bootstrap.servers

config 속성에 금지된 옵션 중 하나가 있는 경우 무시되고 클러스터 Operator 로그 파일에 경고 메시지가 출력됩니다. 다른 모든 옵션은 Kafka로 전달됩니다.

중요

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

금지된 옵션에는 예외가 있습니다. TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다.

Kafka Bridge 생산자 구성의 예

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  producer:
    config:
      acks: 1
      delivery.timeout.ms: 300000
      ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      ssl.enabled.protocols: "TLSv1.2"
      ssl.protocol: "TLSv1.2"
      ssl.endpoint.identification.algorithm: HTTPS
    # ...
Copy to Clipboard Toggle word wrap

12.2.118.1. KafkaBridgeProducerSpec 스키마 속성

Expand
속성설명

config

브리지에서 생성한 생산자 인스턴스에 사용되는 Kafka 생산자 구성입니다. 접두사가 ssl., bootstrap.servers, sasl., security. (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols)을 설정할 수 없습니다.

map

12.2.119. KafkaBridgeTemplate 스키마 참조

사용 위치: KafkaBridgeSpec

Expand
속성설명

Deployment

Kafka 브리지 배포를 위한 템플릿 .

DeploymentTemplate

Pod

Kafka Bridge Pod 의 템플릿입니다.

PodTemplate

apiService

Kafka Bridge API Service 용 템플릿입니다.

InternalServiceTemplate

podDisruptionBudget

Kafka Bridge PodDisruptionBudget 용 템플릿 .

PodDisruptionBudgetTemplate

bridgeContainer

Kafka 브리지 컨테이너용 템플릿입니다.

ContainerTemplate

serviceAccount

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

ResourceTemplate

12.2.120. KafkaBridgeStatus 스키마 참조

사용 위치: KafkaBridge

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

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

integer

url

외부 클라이언트 애플리케이션이 Kafka 브릿지에 액세스할 수 있는 URL입니다.

string

labelSelector

이 리소스를 제공하는 Pod의 라벨 선택기입니다.

string

replicas

이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다.

integer

12.2.121. KafkaConnector 스키마 참조

Expand
속성설명

spec

Kafka 커넥터의 사양입니다.

KafkaConnectorSpec

status

Kafka 커넥터의 상태입니다.

KafkaConnectorStatus

12.2.122. KafkaConnectorSpec 스키마 참조

사용 위치: KafkaConnector

Expand
속성설명

클래스

Kafka 커넥터의 클래스입니다.

string

tasksMax

Kafka 커넥터의 최대 작업 수입니다.

integer

config

Kafka 커넥터 구성입니다. 다음 속성을 설정할 수 없습니다: connector.class, tasks.max.

map

일시 중지

커넥터를 일시 중지해야 하는지 여부입니다. 기본값은 false입니다.

boolean

12.2.123. KafkaConnectorStatus 스키마 참조

사용 위치: KafkaConnector

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

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

integer

connectorStatus

Kafka Connect REST API에서 보고한 커넥터 상태입니다.

map

tasksMax

Kafka 커넥터의 최대 작업 수입니다.

integer

주제

Kafka 커넥터에서 사용하는 주제 목록입니다.

문자열 배열

12.2.124. KafkaMirrorMaker2 스키마 참조

Expand
속성설명

spec

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

KafkaMirrorMaker2Spec

status

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

KafkaMirrorMaker2Status

12.2.125. KafkaMirrorMaker2Spec 스키마 참조

사용 위치: KafkaMirrorMaker2

Expand
속성설명

버전

Kafka Connect 버전입니다. 기본값은 3.2.3입니다. 버전 업그레이드 또는 다운그레이드에 필요한 프로세스를 이해하려면 사용자 설명서를 참조하십시오.

string

replicas

Kafka Connect 그룹의 Pod 수입니다.

integer

image

포드의 Docker 이미지입니다.

string

connectCluster

Kafka Connect에 사용되는 클러스터 별칭입니다. 별칭은 spec.clusters 목록의 클러스터와 일치해야 합니다.

string

클러스터

미러링을 위한 Kafka 클러스터입니다.

KafkaMirrorMaker2ClusterSpec array

미러

MirrorMaker 2.0 커넥터 구성

KafkaMirrorMaker2MirrorSpec array

resources

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

ResourceRequirements

livenessProbe

포드 활성 확인.

프로브

readinessProbe

Pod 준비 상태 점검.

프로브

jvmOptions

Pod에 대한 JVM 옵션.

JvmOptions

jmxOptions

Cryostat 옵션.

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] 중 하나여야 합니다.

JaegerTracing

template

Kafka Connect 및 Kafka 미러 메이커 2 리소스의 템플릿입니다. 템플릿을 사용하면 배포,Pod서비스 생성 방법을 지정할 수 있습니다.

KafkaConnectTemplate

externalConfiguration

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

ExternalConfiguration

metricsConfig

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

JmxPrometheusExporterMetrics

12.2.126. KafkaMirrorMaker2ClusterSpec 스키마 참조

사용 위치: KafkaMirrorMaker2Spec

KafkaMirrorMaker2ClusterSpec 스키마 속성의 전체 목록

미러링을 위해 Kafka 클러스터를 구성합니다.

12.2.126.1. config

구성 속성을 사용하여 Kafka 옵션을 구성합니다.

표준 Apache Kafka 구성은 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.

TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용되는 ssl 속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm 속성을 구성할 수도 있습니다.

12.2.126.2. KafkaMirrorMaker2ClusterSpec 스키마 속성

Expand
속성설명

별칭

Kafka 클러스터를 참조하는 데 사용되는 별칭입니다.

string

bootstrapServers

Kafka 클러스터에 대한 연결을 설정하는 쉼표로 구분된 host:port 쌍 목록입니다.

string

tls

MirrorMaker 2.0 커넥터를 클러스터에 연결하기 위한 TLS 구성입니다.

ClientTls

인증

클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 authentication.type 속성 값에 따라 달라집니다. 이 속성 값은 [tls, scram-sha-256, scram-sha-512, plain, oauth] 중 하나여야 합니다.

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

config

MirrorMaker 2.0 클러스터 구성입니다. 접두사가 있는 속성은 ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.cipher.suites, ssl.cipher.suites)를 설정할 수 없습니다.

map

12.2.127. KafkaMirrorMaker2MirrorSpec 스키마 참조

사용 위치: KafkaMirrorMaker2Spec

Expand
속성설명

sourceCluster

Kafka MirrorMaker 2.0 커넥터에서 사용하는 소스 클러스터의 별칭입니다. 별칭은 spec.clusters 목록의 클러스터와 일치해야 합니다.

string

targetCluster

Kafka MirrorMaker 2.0 커넥터에서 사용하는 대상 클러스터의 별칭입니다. 별칭은 spec.clusters 목록의 클러스터와 일치해야 합니다.

string

sourceConnector

Kafka MirrorMaker 2.0 소스 커넥터의 사양입니다.

KafkaMirrorMaker2ConnectorSpec

heartbeatConnector

Kafka MirrorMaker 2.0 하트비트 커넥터의 사양입니다.

KafkaMirrorMaker2ConnectorSpec

checkpointConnector

Kafka MirrorMaker 2.0 체크포인트 커넥터의 사양입니다.

KafkaMirrorMaker2ConnectorSpec

topicsPattern

미러링할 주제와 일치하는 정규식(예: "topic1|topic2|topic3")입니다. 쉼표로 구분된 목록도 지원됩니다.

string

topicsBlacklistPattern

topicsBlacklistPattern 속성이 더 이상 사용되지 않으며 이제 .spec.mirrors.topicsExcludePattern 을 사용하여 구성해야 합니다. 미러링에서 제외할 주제와 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

topicsExcludePattern

미러링에서 제외할 주제와 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

groupsPattern

미러링할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

groupsBlacklistPattern

groupsBlacklistPattern 속성이 더 이상 사용되지 않으며 이제 .spec.mirrors.groupsExcludePattern 을 사용하여 구성해야 합니다. 미러링에서 제외할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

groupsExcludePattern

미러링에서 제외할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다.

string

12.2.128. KafkaMirrorMaker2ConnectorSpec 스키마 참조

사용 위치: KafkaMirrorMaker2MirrorSpec

Expand
속성설명

tasksMax

Kafka 커넥터의 최대 작업 수입니다.

integer

config

Kafka 커넥터 구성입니다. 다음 속성을 설정할 수 없습니다: connector.class, tasks.max.

map

일시 중지

커넥터를 일시 중지해야 하는지 여부입니다. 기본값은 false입니다.

boolean

12.2.129. KafkaMirrorMaker2Status 스키마 참조

사용 위치: KafkaMirrorMaker2

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

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

integer

url

Kafka Connect 커넥터를 관리하고 모니터링하기 위한 REST API 끝점의 URL입니다.

string

connectorPlugins

이 Kafka Connect 배포에서 사용할 수 있는 커넥터 플러그인 목록입니다.

ConnectorPlugin 배열

커넥터

Kafka Connect REST API에서 보고된 대로 MirrorMaker 2.0 커넥터 상태 목록입니다.

맵 배열

labelSelector

이 리소스를 제공하는 Pod의 라벨 선택기입니다.

string

replicas

이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다.

integer

12.2.130. KafkaRebalance 스키마 참조

Expand
속성설명

spec

Kafka 리밸런스의 사양입니다.

KafkaRebalanceSpec

status

Kafka 리밸런스의 상태입니다.

KafkaRebalanceStatus

12.2.131. KafkaRebalanceSpec schema reference

사용 위치: KafkaRebalance

Expand
속성설명

mode

모드: 재조정을 실행합니다. 지원되는 모드는 full,add-brokers,remove-brokers 입니다. 지정하지 않으면 기본적으로 전체 모드가 사용됩니다.

  • 전체 모드는 클러스터의 모든 브로커에서 재조정을 실행합니다.
  • 클러스터를 확장한 후 add-brokers 모드를 사용하여 일부 복제본을 새로 추가된 브로커로 이동할 수 있습니다.
  • 제거할 브로커에서 복제본을 이동하기 위해 클러스터를 축소하기 전에 remove-brokers 모드를 사용할 수 있습니다.

문자열([remove-brokers, full, add-brokers] 중 하나)

브로커

재조정에 사용할 확장 또는 축소하는 경우 새로 추가된 브로커 목록. 이 목록은 재조정 모드 add-brokersremoved-brokers 에서만 사용할 수 있습니다. 전체 모드에서 무시됩니다.

정수 배열

목표

리밸런스 제안을 생성하고 실행하는 데 사용할 우선 순위를 낮추는 목표 목록입니다. 지원되는 목표는 https://github.com/linkedin/cruise-control#goals 에서 확인할 수 있습니다. 빈 목표 목록이 제공되면 default.goals Cruals Control 구성 매개변수에 선언된 목표를 사용합니다.

문자열 배열

skipHardGoalCheck

Kafka CR에 지정된 하드 목표를 최적화 제안 생성에서 건너뛰도록 허용할지 여부입니다. 이 기능은 일부 하드 목표를 통해 균형 있는 솔루션을 찾을 수 없는 경우에 유용할 수 있습니다. 기본값은 false입니다.

boolean

rebalanceDisk

intra-broker 디스크 밸런싱을 활성화합니다. 이는 동일한 브로커의 디스크 공간 사용률의 균형을 유지합니다. 여러 디스크가 있는 JBOD 스토리지를 사용하는 Kafka 배포에만 적용됩니다. 활성화하면 브루너 간 분산이 비활성화됩니다. 기본값은 false입니다.

boolean

excludedTopics

일치하는 항목이 최적화 제안 계산에서 제외되는 정규식입니다. 이 표현식은 java.util.regex.Pattern 클래스에서 구문 분석합니다. 지원되는 형식에 대한 자세한 내용은 해당 클래스에 대한 설명서를 참조하십시오.

string

concurrentPartitionMovementsPerBroker

진행 중인 파티션 복제본의 상한은 각 브로커에서/아웃됩니다. 기본값은 5입니다.

integer

concurrentIntraBrokerPartitionMovements

각 브로커 내의 디스크 간 지속적인 파티션 복제본 동작의 상한입니다. 기본값은 2입니다.

integer

concurrentLeaderMovements

지속적인 파티션 리더십의 상한입니다. 기본값은 1000입니다.

integer

replicationThrottle

복제본을 이동하는 데 사용되는 대역폭의 상한(초당 바이트)입니다. 기본적으로 제한이 없습니다.

integer

replicaMovementStrategies

생성된 최적화 제안에서 복제본 이동에 대한 실행 순서를 결정하는 데 사용되는 전략 클래스 이름 목록입니다. 기본 BaseReplica CryostatmentStrategy가 사용되며, 이는 생성된 순서대로 복제 이동을 실행합니다.

문자열 배열

12.2.132. KafkaRebalanceStatus schema reference

사용 위치: KafkaRebalance

Expand
속성설명

conditions

상태 조건 목록입니다.

조건 배열

observedGeneration

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

integer

sessionId

이 KafkaRebalance 리소스와 관련된 Cruise 제어에 대한 요청의 세션 식별자입니다. Kafka Rebalance Operator는 지속적인 재조정 작업의 상태를 추적하는 데 사용됩니다.

string

optimizationResult

최적화 결과를 설명하는 JSON 오브젝트입니다.

map

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동