4.2. 스키마 속성
4.2.1. Kafka 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| spec | Kafka 및 ZooKeeper 클러스터 및 Topic Operator의 사양입니다. |
| status | Kafka 및 ZooKeeper 클러스터의 상태 및 Topic Operator. |
4.2.2. KafkaSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: Kafka
| 속성 | 설명 |
|---|---|
| kafka | Kafka 클러스터 구성. |
| zookeeper | ZooKeeper 클러스터 구성. |
| entityOperator | Entity Operator 구성. |
| clusterCa | 클러스터 인증 기관 구성. |
| clientsCa | 클라이언트 인증 기관 구성. |
| cruiseControl | Cruise Control Deployment 구성. 지정된 경우 Cruise Control 인스턴스를 배포합니다. |
| jmxTrans |
|
| kafkaExporter | Kafka 내보내기 구성. Kafka Exporter는 추가 메트릭을 제공할 수 있습니다(예: topic/partition에서 소비자 그룹 지연). |
| maintenanceTimeWindows | 유지 관리 작업(즉 인증서 갱신)의 시간 창 목록입니다. 각 시간 창은 cron 표현식에 의해 정의됩니다. |
| 문자열 배열 |
4.2.3. KafkaClusterSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
KafkaClusterSpec 스키마 속성의 전체 목록
Kafka 클러스터를 구성합니다.
4.2.3.1. 리스너 링크 복사링크가 클립보드에 복사되었습니다!
listeners 속성을 사용하여 Kafka 브로커에 대한 액세스를 제공하도록 리스너를 구성합니다.
인증 없이 일반(암호화되지 않음) 리스너 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
kafka:
# ...
listeners:
- name: plain
port: 9092
type: internal
tls: false
# ...
zookeeper:
# ...
4.2.3.2. config 링크 복사링크가 클립보드에 복사되었습니다!
config 속성을 사용하여 Kafka 브로커 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
예외
Apache Kafka 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.
- 보안(암호화, 인증 및 권한 부여)
- 리스너 구성
- 브로커 ID 구성
- 로그 데이터 디렉터리 구성
- inter-broker 통신
- zookeeper 연결
다음 접두사가 있는 속성은 설정할 수 없습니다.
-
advertised. -
작성자입니다. -
브로커. -
컨트롤러 -
cruise.control.metrics.reporter.bootstrap. -
cruise.control.metrics.topic -
host.name -
inter.broker.listener.name -
리스너. -
리스너. -
log.dir -
암호. -
port -
process.roles -
sasl. -
보안. -
servers,node.id -
ssl. -
super.user -
zookeeper.clientCnxnSocket -
zookeeper.connect -
zookeeper.set.acl -
zookeeper.ssl
config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음 예외를 포함하여 Kafka로 전달됩니다.
-
지원되는 TLS 버전 및 암호화 제품군에대한 모든
ssl구성 -
ZooKeeper 연결을 설정하는 데 허용되는 최대 시간을 설정하기 위한
zookeeper.connection.timeout.ms속성 구성 크루즈 메트릭 속성을 제어할 수 있습니다.
-
cruise.control.metrics.topic.num.partitions -
cruise.control.metrics.topic.replication.factor -
cruise.control.metrics.topic.retention.ms -
cruise.control.metrics.topic.auto.create.retries -
cruise.control.metrics.topic.auto.create.timeout.ms -
cruise.control.metrics.topic.min.insync.replicas
-
컨트롤러 속성:
-
controller.quorum.election.backoff.max.ms -
controller.quorum.election.timeout.ms -
controller.quorum.fetch.timeout.ms
-
Kafka 브로커 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
config:
num.partitions: 1
num.recovery.threads.per.data.dir: 1
default.replication.factor: 3
offsets.topic.replication.factor: 3
transaction.state.log.replication.factor: 3
transaction.state.log.min.isr: 1
log.retention.hours: 168
log.segment.bytes: 1073741824
log.retention.check.interval.ms: 300000
num.network.threads: 3
num.io.threads: 8
socket.send.buffer.bytes: 102400
socket.receive.buffer.bytes: 102400
socket.request.max.bytes: 104857600
group.initial.rebalance.delay.ms: 0
zookeeper.connection.timeout.ms: 6000
# ...
4.2.3.3. brokerRackInitImage 링크 복사링크가 클립보드에 복사되었습니다!
랙 인식이 활성화되면 Kafka 브로커 Pod는 init 컨테이너를 사용하여 OpenShift 클러스터 노드에서 라벨을 수집합니다. 이 컨테이너에 사용되는 컨테이너 이미지는 brokerRackInitImage 속성을 사용하여 구성할 수 있습니다. brokerRackInitImage 필드가 없는 경우 다음 이미지가 우선순위 순으로 사용됩니다.
-
Cluster Operator 설정의
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE환경 변수에 지정된 컨테이너 이미지입니다. -
registry.redhat.io/amq-streams/strimzi-rhel8-operator:2.4.0container image.
brokerRackInitImage 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
rack:
topologyKey: topology.kubernetes.io/zone
brokerRackInitImage: my-org/my-image:latest
# ...
컨테이너 이미지를 덮어쓰는 것은 다른 컨테이너 레지스트리를 사용해야 하는 특별한 경우에만 권장됩니다. 예를 들어 네트워크에서 AMQ Streams에서 사용하는 컨테이너 레지스트리에 대한 액세스를 허용하지 않기 때문입니다. 이 경우 AMQ Streams 이미지를 복사하거나 소스에서 빌드해야 합니다. 구성된 이미지가 AMQ Streams 이미지와 호환되지 않으면 제대로 작동하지 않을 수 있습니다.
4.2.3.4. logging 링크 복사링크가 클립보드에 복사되었습니다!
Kafka에는 다음과 같은 구성 가능한 로거가 있습니다.
-
log4j.logger.org.I0Itec.zkclient.ZkClient -
log4j.logger.org.apache.zookeeper -
log4j.logger.kafka -
log4j.logger.org.apache.kafka -
log4j.logger.kafka.request.logger -
log4j.logger.kafka.network.Processor -
log4j.logger.kafka.server.KafkaApis -
log4j.logger.kafka.network.RequestChannel$ -
log4j.logger.kafka.controller -
log4j.logger.kafka.log.LogCleaner -
log4j.logger.state.change.logger -
log4j.logger.kafka.authorizer.logger
Kafka는 Apache log4j 로거 구현을 사용합니다.
로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name 및 logging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.
인라인 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
# ...
kafka:
# ...
logging:
type: inline
loggers:
kafka.root.logger.level: INFO
log4j.logger.kafka.coordinator.transaction: TRACE
log4j.logger.kafka.log.LogCleanerManager: DEBUG
log4j.logger.kafka.request.logger: DEBUG
log4j.logger.io.strimzi.kafka.oauth: DEBUG
log4j.logger.org.openpolicyagents.kafka.OpaAuthorizer: DEBUG
# ...
로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.
외부 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
# ...
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: kafka-log4j.properties
# ...
구성되지 않은 모든 로거는 수준이 OFF 로 설정되어 있습니다.
Cluster Operator를 사용하여 Kafka를 배포한 경우 Kafka 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.
외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
4.2.3.5. KafkaClusterSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| 버전 | kafka 브로커 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다. |
| string | |
| replicas | 클러스터의 Pod 수입니다. |
| integer | |
| image |
포드의 Docker 이미지입니다. 기본값은 구성된 |
| string | |
| 리스너 | Kafka 브로커의 리스너를 구성합니다. |
| config | 리스너, broker., listener., host.name, port, inter.broker.listener.name, sasl., ssl., password., log.dir, zookeeper.connect, zookeeper.set.acl, zookeeper.set.acl, zookeeper.ssl, zookeeper.set.acl, zookeeper.ssl, zookeeper.clientCnxnnSoct, host.name, port, inter.broker.listener.name, sasl. authorizer., super.user, cruise.control.metrics.topic, cruise.control.metrics.reporter.bootstrap.servers,node.id, process.roles, controller. (예: zookeeper.connection.timeout.ms, sasl.server.receive.size,ssl.cipher.suites, SSL.protocol, ssl.enabled.protocols, ssl.secure.random.implementation,cruise.control.metrics.topic.num.partitions, cruise.control.metrics.metrics.topic.replication.factor, cruise.metrics.topic.retention.ms,cruise.control.metrics.create.create.retries, cruise.control.metrics.topic.auto.timeout.ms,cruise.control.metrics.topic.min.insync.replicas,controller.quorum.backoff.election.max.ms, controller.quorum.election.timeout.ms, controller.quorum.timeout.timeout.ms. |
| map | |
| storage |
스토리지 구성(디스크). CamelCase로 유형은 지정된 오브젝트 내의 |
| 권한 부여 |
Kafka 브로커에 대한 권한 부여 구성 유형은 지정된 오브젝트 내의 |
|
| |
| Rack |
|
| brokerRackInitImage |
|
| string | |
| livenessProbe | Pod 활성 검사입니다. |
| readinessProbe | Pod 준비 상태 확인 |
| jvmOptions | Pod에 대한 JVM 옵션. |
| jmxOptions | Kafka 브로커를 위한 Options입니다. |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
| logging |
Kafka의 로깅 구성입니다. 유형은 지정된 개체 내의 |
| template | Kafka 클러스터 리소스에 대한 템플릿입니다. 템플릿을 사용하면 OpenShift 리소스 생성 방법을 지정할 수 있습니다. |
4.2.4. GenericKafkaListener 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
GenericKafkaListener 스키마 속성의 전체 목록
OpenShift 내부 및 외부의 Kafka 브로커에 연결하도록 리스너를 구성합니다.
Kafka 리소스에서 리스너를 구성합니다.
리스너 구성을 표시하는 Kafka 리소스의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
#...
listeners:
- name: plain
port: 9092
type: internal
tls: false
- name: tls
port: 9093
type: internal
tls: true
authentication:
type: tls
- name: external1
port: 9094
type: route
tls: true
- name: external2
port: 9095
type: ingress
tls: true
authentication:
type: tls
configuration:
bootstrap:
host: bootstrap.myingress.com
brokers:
- broker: 0
host: broker-0.myingress.com
- broker: 1
host: broker-1.myingress.com
- broker: 2
host: broker-2.myingress.com
#...
4.2.4.1. 리스너 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 리소스의 listeners 속성을 사용하여 Kafka 브로커 리스너를 구성합니다. 리스너는 배열로 정의됩니다.
리스너 구성 예
listeners:
- name: plain
port: 9092
type: internal
tls: false
이름 및 포트는 Kafka 클러스터 내에서 고유해야 합니다. 이름은 소문자와 숫자로 구성된 최대 25자까지 지정할 수 있습니다. 허용되는 포트 번호는 9092이고 포트 9404 및 9999를 제외하고 이미 Prometheus 및 10.0.0.1에 사용됩니다.
각 리스너에 고유한 이름과 포트를 지정하면 여러 리스너를 구성할 수 있습니다.
4.2.4.2. type 링크 복사링크가 클립보드에 복사되었습니다!
유형은 내부, 또는 외부 리스너의 경우 경로, 로드 밸런서,노드 포트,ingress 또는 cluster-ip 로 설정됩니다. 사용자 정의 액세스 메커니즘을 빌드하는 데 사용할 수 있는 내부 리스너 유형인 cluster-ip 리스너를 구성할 수도 있습니다.
- internal
tls속성을 사용하여 암호화 여부에 관계없이 내부 리스너를 구성할 수 있습니다.내부리스너 구성 예#... spec: kafka: #... listeners: #... - name: plain port: 9092 type: internal tls: false - name: tls port: 9093 type: internal tls: true authentication: type: tls #...- Route
OpenShift
경로및 HAProxy 라우터를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.전용
경로는 모든 Kafka 브로커 Pod에 대해 생성됩니다. Kafka 부트스트랩 주소로 사용되는 추가 경로가 생성됩니다.Kafka 클라이언트는 이러한경로를 사용하여 포트 443에서 Kafka에 연결할 수 있습니다. 클라이언트는 기본 라우터 포트인 포트 443에 연결하지만 트래픽은 구성한 포트로 라우팅됩니다. 이 예에서는9094입니다.경로리스너 구성 예#... spec: kafka: #... listeners: #... - name: external1 port: 9094 type: route tls: true #...- Ingress
Kubernetes 인그레스 및 Kubernetes용
IngressNGINX 컨트롤러를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.모든 Kafka 브로커 Pod에 대해 전용
Ingress리소스가 생성됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가Ingress리소스가 생성됩니다. Kafka 클라이언트는 이러한Ingress리소스를 사용하여 포트 443에서 Kafka에 연결할 수 있습니다. 클라이언트는 기본 컨트롤러 포트인 포트 443에 연결하지만 트래픽은 다음 예에서 구성된 포트로 라우팅됩니다.GenericKafkaListenerConfigurationBootstrap및GenericKafkaListenerConfigurationBroker속성을 사용하여 부트 스트랩 및 각 브로커 서비스에서 사용하는 호스트 이름을 지정해야 합니다.수신리스너 구성 예#... spec: kafka: #... listeners: #... - name: external2 port: 9095 type: ingress tls: true authentication: type: tls configuration: bootstrap: host: bootstrap.myingress.com brokers: - broker: 0 host: broker-0.myingress.com - broker: 1 host: broker-1.myingress.com - broker: 2 host: broker-2.myingress.com #...참고Ingress를 사용하는 외부 리스너는 현재 Kubernetes용 Ingress NGINX Controller 에서만 테스트됩니다.- loadbalancer
Loadbalancer유형Service를 사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.모든 Kafka 브로커 Pod에 대해 새 로드 밸런서 서비스가 생성됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가 로드 밸런서가 생성됩니다. 로드 밸런서는 다음 예에서 지정된 포트 번호, 즉 포트
9094를 수신 대기합니다.loadBalancerSourceRanges속성을 사용하여 소스 범위를 구성하여 지정된 IP 주소에 대한 액세스를 제한할 수 있습니다.로드
밸런서리스너 구성 예#... spec: kafka: #... listeners: - name: external3 port: 9094 type: loadbalancer tls: true configuration: loadBalancerSourceRanges: - 10.0.0.0/8 - 88.208.76.87/32 #...- nodeport
NodePort유형서비스를사용하여 Kafka를 노출하도록 외부 리스너를 구성합니다.Kafka 클라이언트는 OpenShift 노드에 직접 연결됩니다. Kafka 부트스트랩 주소로 사용하기 위해 추가
NodePort유형이 생성됩니다.Kafka 브로커 Pod에 대해 공개된 주소를 구성할 때 AMQ Streams는 지정된 Pod가 실행 중인 노드의 주소를 사용합니다.
preferredNodePortAddressType속성을 사용하여 노드 주소로 확인한 첫 번째 주소 유형을 구성할 수 있습니다.노드 포트리스너 구성 예#... spec: kafka: #... listeners: #... - name: external4 port: 9095 type: nodeport tls: false configuration: preferredNodePortAddressType: InternalDNS #...참고노드 포트를 사용하여 Kafka 클러스터를 노출할 때 TLS 호스트 이름 확인은 현재 지원되지 않습니다.
- cluster-ip
브로커별
ClusterIP유형Service를 사용하여 Kafka를 노출하도록 내부 리스너를 구성합니다.리스너는 헤드리스 서비스와 해당 DNS 이름을 사용하여 Kafka 브로커로 트래픽을 라우팅하지 않습니다. 헤드리스 서비스를 사용할 때 이러한 유형의 리스너를 사용하여 Kafka 클러스터를 노출할 수 있습니다. 특정 Ingress 컨트롤러 또는 OpenShift 게이트웨이 API를 사용하는 사용자 정의 액세스 메커니즘과 함께 사용할 수 있습니다.
각 Kafka 브로커 Pod에 대해 새
ClusterIP서비스가 생성됩니다. 이 서비스에는broker별 포트 번호를 사용하여 Kafka 부트스트랩 주소로 사용할ClusterIP주소가 할당됩니다. 예를 들어 TCP 포트 구성을 사용하여 Nginx Ingress 컨트롤러를 통해 Kafka 클러스터를 노출하도록 리스너를 구성할 수 있습니다.cluster-ip리스너 구성의 예#... spec: kafka: #... listeners: - name: external-cluster-ip type: cluster-ip tls: false port: 9096 #...
4.2.4.3. port 링크 복사링크가 클립보드에 복사되었습니다!
포트 번호는 Kafka 클러스터에서 사용되는 포트이며, 클라이언트에서 액세스하는 데 사용되는 포트와 동일하지 않을 수 있습니다.
-
LoadBalancer리스너는내부및클러스터-ip리스너와 같이 지정된 포트 번호를 사용합니다. -
Ingress및경로리스너는 액세스에 포트 443을 사용합니다. -
NodePort리스너는 OpenShift에서 할당한 포트 번호를 사용합니다.
클라이언트 연결의 경우 리스너의 부트스트랩 서비스에 주소 및 포트를 사용합니다. Kafka 리소스의 상태에서 이를 검색할 수 있습니다.
클라이언트 연결에 사용되는 주소 및 포트 검색 명령 예
oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'
구독자 간 통신(9090 및 9091) 및 메트릭(9404)에는 리스너를 별도로 사용하도록 구성할 수 없습니다.
4.2.4.4. tls 링크 복사링크가 클립보드에 복사되었습니다!
TLS 속성은 필수입니다.
기본적으로 TLS 암호화는 활성화되어 있지 않습니다. 활성화하려면 tls 속성을 true 로 설정합니다.
경로 및 수신 유형 리스너의 경우 TLS 암호화를 활성화해야 합니다.
4.2.4.5. 인증 링크 복사링크가 클립보드에 복사되었습니다!
리스너에 대한 인증은 다음과 같이 지정할 수 있습니다.
-
mTLS (
tls) -
SCRAM-SHA-512 (
스크램 sha-512) -
토큰 기반 OAuth 2.0 (
oauthoauth) -
사용자 정의 (
사용자 정의)
4.2.4.6. networkPolicyPeers 링크 복사링크가 클립보드에 복사되었습니다!
networkPolicyPeers 를 사용하여 네트워크 수준에서 리스너에 대한 액세스를 제한하는 네트워크 정책을 구성합니다. 다음 예제에서는 일반 및 tls 리스너에 대한 networkPolicyPeers 구성을 보여줍니다.
다음 예제에서는 다음을 수행합니다.
-
라벨
app: kafka-sasl-consumer및app: kafka-sasl-producer와 일치하는 애플리케이션 Pod만일반리스너에 연결할 수 있습니다. 애플리케이션 Pod는 Kafka 브로커와 동일한 네임스페이스에서 실행 중이어야 합니다. -
myproject 및
와 일치하는 네임스페이스에서 실행 중인 애플리케이션 Pod만project: myproject2tls리스너에 연결할 수 있습니다.
networkPolicyPeers 속성의 구문은 NetworkPolicy 리소스의 from 속성과 동일합니다.
Exanmple 네트워크 정책 구성
listeners:
#...
- name: plain
port: 9092
type: internal
tls: true
authentication:
type: scram-sha-512
networkPolicyPeers:
- podSelector:
matchLabels:
app: kafka-sasl-consumer
- podSelector:
matchLabels:
app: kafka-sasl-producer
- name: tls
port: 9093
type: internal
tls: true
authentication:
type: tls
networkPolicyPeers:
- namespaceSelector:
matchLabels:
project: myproject
- namespaceSelector:
matchLabels:
project: myproject2
# ...
4.2.4.7. GenericKafkaListener 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| name | 리스너의 이름입니다. 이름은 리스너와 관련 OpenShift 오브젝트를 식별하는 데 사용됩니다. 이름은 Kafka 클러스터 내에서 고유해야 합니다. 이름은 소문자와 숫자로 구성되며 최대 11자까지 사용할 수 있습니다. |
| string | |
| port | Kafka 내부의 리스너에서 사용하는 포트 번호입니다. 포트 번호는 지정된 Kafka 클러스터 내에서 고유해야 합니다. 허용되는 포트 번호는 9092이고 포트 9404 및 9999를 제외하고 이미 Prometheus 및 10.0.0.1에 사용됩니다. 리스너 유형에 따라 포트 번호가 Kafka 클라이언트를 연결하는 포트 번호와 동일하지 않을 수 있습니다. |
| integer | |
| type |
리스너의 유형입니다. 현재 지원되는 유형은
|
| 문자열 ( [ingress, internal, route, loadbalancer, cluster-ip, nodeport] 중 하나) | |
| tls | 리스너에서 TLS 암호화를 활성화합니다. 이는 필수 자산입니다. |
| boolean | |
| 인증 |
이 리스너에 대한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
|
| |
| 구성 | 추가 리스너 구성입니다. |
| networkPolicyPeers | 이 리스너에 연결할 수 있어야 하는 피어 목록입니다. 이 목록의 피어는 논리 OR 작업을 사용하여 결합됩니다. 이 필드가 비어 있거나 누락되면 이 리스너에 모든 연결이 허용됩니다. 이 필드가 있고 항목이 하나 이상 포함된 경우 리스너는 이 목록의 하나 이상의 항목과 일치하는 트래픽만 허용합니다. 자세한 내용은 networking.k8s.io/v1 networkpolicypeer 에 대한 외부 설명서 를 참조하십시오. |
4.2.5. KafkaListenerAuthenticationTls 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
type 속성은 KafkaListenerAuthenticationTls 유형을 KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth, KafkaListenerAuthenticationCustom 와 구분하는 판별자입니다. KafkaListenerAuthenticationTls 유형의 tls 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string |
4.2.6. KafkaListenerAuthenticationScramSha512 schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
type 속성은 KafkaListenerAuthenticationScramSha512 유형과 KafkaListenerAuthenticationTls, KafkaListenerAuthenticationOAuth, KafkaListenerAuthenticationCustom 을 구분하는 판별자입니다. KafkaListenerAuthenticationScramSha512 유형의 scram-sha-512 가 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string |
4.2.7. KafkaListenerAuthenticationOAuth 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
type 속성은 KafkaListenerAuthenticationOAuth 유형 사용을 KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationCustom 와 구분하는 판별자입니다. KafkaListenerAuthenticationOAuth 유형의 oauth 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| accessTokenIsJwt |
액세스 토큰이 JWT로 처리될지 여부를 구성합니다. 권한 부여 서버가 불투명 토큰을 반환하는 경우 |
| boolean | |
| checkAccessTokenType |
액세스 토큰 유형 확인 수행 여부를 구성합니다. 권한 부여 서버에 JWT 토큰에 'typ' 클레임이 포함되지 않은 경우 |
| boolean | |
| CheckAudience |
대상 검사를 활성화하거나 비활성화합니다. 대상 검사에서 토큰 수신자를 식별합니다. 대상 확인이 활성화된 경우 OAuth 클라이언트 ID도 |
| boolean | |
| checkIssuer |
발급자 검사를 활성화하거나 비활성화합니다. 기본적으로 issuer는 |
| boolean | |
| clientAudience |
권한 부여 서버의 토큰 엔드포인트에 요청할 때 사용할 대상입니다. broker 간 인증에 사용되며 |
| string | |
| clientId | Kafka 브로커가 권한 부여 서버에 대해 인증하고 introspect 엔드포인트 URI를 사용하는 OAuth 클라이언트 ID입니다. |
| string | |
| clientScope |
권한 부여 서버의 토큰 엔드포인트에 요청할 때 사용할 범위입니다. broker 간 인증에 사용되며 |
| string | |
| clientSecret | Kafka 브로커가 권한 부여 서버에 대해 인증하고 내부 엔드포인트 URI를 사용하는 데 사용할 수 있는 OAuth 클라이언트 시크릿이 포함된 OpenShift Secret에 대한 링크입니다. |
| connectTimeoutSeconds | 권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다. |
| integer | |
| customClaimCheck | JWT 토큰 또는 추가 토큰 검증을 위해 인트로스펙션 끝점의 응답에 적용할 JSONPath 필터 쿼리입니다. 기본적으로 설정되지 않습니다. |
| string | |
| disableTlsHostnameVerification |
TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 |
| boolean | |
| enableECDSA |
|
| boolean | |
| enableMetrics |
OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 |
| boolean | |
| enableOauthBearer |
SASL_OAUTHB topicER를 통해 OAuth 인증을 활성화하거나 비활성화합니다. 기본값은 |
| boolean | |
| enablePlain |
SASL_PLAIN을 통해 OAuth 인증을 활성화하거나 비활성화합니다. 이 메커니즘을 사용하는 경우 재인증 지원이 제공되지 않습니다. 기본값은 |
| boolean | |
| failFast |
시작 중에 잠재적으로 복구 가능한 런타임 오류로 인해 Kafka 브로커 프로세스의 종료를 활성화하거나 비활성화합니다. 기본값은 |
| boolean | |
| fallbackUserNameClaim |
|
| string | |
| fallbackUserNamePrefix |
사용자 ID를 구성하는 데 |
| string | |
| groupsClaim | 인증 중에 사용자의 그룹을 추출하는 데 사용되는 JSONPath 쿼리입니다. 추출된 그룹은 사용자 정의 작성자가 사용할 수 있습니다. 기본적으로 추출된 그룹이 없습니다. |
| string | |
| groupsClaimDelimiter | 그룹을 구문 분석하는 데 사용되는 구분 기호는 JSON 배열이 아닌 단일 String 값으로 추출됩니다. 기본값은 ','(comma)입니다. |
| string | |
| httpRetries | 초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다. |
| integer | |
| httpRetryPauseMs | 실패한 HTTP 요청을 재시도하기 전에 일시 정지를 수행합니다. 설정되지 않은 경우 기본값은 일시 중지되지 않고 즉시 요청을 반복하는 것입니다. |
| integer | |
| introspectionEndpointUri | JWT가 아닌 불투명한 토큰의 유효성을 확인하는 데 사용할 수 있는 토큰 인트로스펙션 끝점의 URI입니다. |
| string | |
| jwksEndpointUri | 로컬 JWT 검증에 사용할 수 있는 JWKS 인증서 끝점의 URI입니다. |
| string | |
| jwksExpirySeconds |
JWKS 인증서가 유효한 것으로 간주되는 빈도를 설정합니다. 만료 간격은 최소 60초 길이여야 하며 |
| integer | |
| jwksIgnoreKeyUse |
JWKS 끝점 응답에서 |
| boolean | |
| jwksMinRefreshPauseSeconds | 연속으로 두 번 새로 고침 사이의 최소 일시 중지입니다. 알 수 없는 서명 키가 발생하면 새로 고침이 즉시 예약되지만 항상 최소 일시 중지를 기다립니다. 기본값은 1초입니다. |
| integer | |
| jwksRefreshSeconds |
JWKS 인증서 새로 고침 빈도를 설정합니다. 새로 고침 간격은 최소 60초 짧으면 |
| integer | |
| maxSecondsWithoutReauthentication |
인증된 세션은 다시 인증하지 않고 유효한 상태로 유지되는 최대 시간(초)입니다. 이렇게 하면 Apache Kafka가 다시 인증될 수 있으며 액세스 토큰이 만료되면 세션이 만료됩니다. 액세스 토큰이 최대 시간 이전에 만료되거나 최대 시간이 경과하면 클라이언트가 다시 인증해야 하며 그렇지 않으면 서버가 연결을 삭제합니다. 기본적으로 설정되지 않음 - 액세스 토큰이 만료되면 인증된 세션이 만료되지 않습니다. 이 옵션은 SASL_OAUTHBearer 인증 메커니즘에만 적용됩니다( |
| integer | |
| readTimeoutSeconds | 권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다. |
| integer | |
| tlsTrustedCertificates | OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다. |
| tokenEndpointUri |
클라이언트가 |
| string | |
| type |
|
| string | |
| userInfoEndpointUri | Introspection Endpoint에서 사용자 ID에 사용할 수 있는 정보를 반환하지 않을 때 사용자 ID를 가져오는 데 사용할 수 있는 사용자 정보 끝점의 URI입니다. |
| string | |
| userNameClaim |
사용자 ID를 추출하는 데 사용할 JWT 인증 토큰, Introspection Endpoint 응답 또는 User Info Endpoint 응답에서 클레임의 이름입니다. 기본값은 |
| string | |
| validIssuerUri | 인증에 사용되는 토큰 발행자의 URI입니다. |
| string | |
| validTokenType |
Introspection Endpoint에서 반환하는 |
| string |
4.2.8. GenericSecretSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
KafkaClientAuthenticationOAuth, KafkaListenerAuthenticationCustom, KafkaListenerAuthenticationOAuth에 사용됨
| 속성 | 설명 |
|---|---|
| key | 시크릿 값이 OpenShift 시크릿에 저장되는 키입니다. |
| string | |
| secretName | 시크릿 값이 포함된 OpenShift 시크릿의 이름입니다. |
| string |
4.2.9. CertSecretSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: ClientTls, KafkaAuthorizationKeycloak, KafkaAuthorizationOpa, KafkaClientAuthenticationOAuth, KafkaListenerAuthenticationOAuth
| 속성 | 설명 |
|---|---|
| certificate | 시크릿에 있는 파일 인증서의 이름입니다. |
| string | |
| secretName | 인증서가 포함된 Secret의 이름입니다. |
| string |
4.2.10. KafkaListenerAuthenticationCustom 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
KafkaListenerAuthenticationCustom 스키마 속성의 전체 목록
사용자 지정 인증을 구성하려면 type 속성을 사용자 지정 으로 설정합니다.
사용자 지정 인증을 사용하면 모든 유형의 kafka 지원 인증을 사용할 수 있습니다.
사용자 정의 OAuth 인증 구성 예
spec:
kafka:
config:
principal.builder.class: SimplePrincipal.class
listeners:
- name: oauth-bespoke
port: 9093
type: internal
tls: true
authentication:
type: custom
sasl: true
listenerConfig:
oauthbearer.sasl.client.callback.handler.class: client.class
oauthbearer.sasl.server.callback.handler.class: server.class
oauthbearer.sasl.login.callback.handler.class: login.class
oauthbearer.connections.max.reauth.ms: 999999999
sasl.enabled.mechanisms: oauthbearer
oauthbearer.sasl.jaas.config: |
org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required ;
secrets:
- name: example
sasl 및 tls 값을 사용하여 리스너에 매핑할 프로토콜을 결정하는 프로토콜 맵이 생성됩니다.
-
SASL = True, TLS = True
SASL_SSL -
SASL = False, TLS = True
SSL -
SASL = True, TLS = False
SASL_PLAINTEXT -
SASL = False, TLS = False
PLAINTEXT
4.2.10.1. listenerConfig 링크 복사링크가 클립보드에 복사되었습니다!
listenerConfig 를 사용하여 지정된 리스너 구성에는 listener .name. <listener_name>-<port >가 붙습니다. 예를 들어 sasl.enabled.mechanisms 는 listener. name. <listener_name>-<port > .sasl.enabled.mechanisms 가 됩니다.
4.2.10.2. secrets 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 브로커 노드의 시크릿은 /opt/kafka/custom-authn-secrets/custom-listener- <listener_name>-<port> / <secret_name >에 마운트됩니다.
예를 들어 예제 구성의 마운트된 시크릿(예: )은 /opt/kafka/custom-authn-secrets/custom-listener-oauth-bespoke-9093/example 에 있습니다.
4.2.10.3. 주요 빌더 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터 구성에서 사용자 정의 주체 빌더를 설정할 수 있습니다. 그러나 주요 빌더에는 다음 요구 사항이 적용됩니다.
- 지정된 주요 빌더 클래스가 이미지에 있어야 합니다. 자신을 만들기 전에, 이미 존재하는 지 확인하십시오. 필수 클래스로 AMQ Streams 이미지를 다시 빌드해야 합니다.
-
다른 리스너에서
oauth유형 인증을 사용하지 않습니다. OAuth 리스너가 Kafka 구성에 자체 원칙 빌더를 추가하기 때문입니다. - 지정된 주요 빌더는 AMQ Streams와 호환됩니다.
AMQ Streams에서 이 인증서를 사용하여 Kafka 클러스터를 관리하므로 사용자 정의 주체 빌더는 인증을 위해 피어 인증서를 지원해야 합니다.
Kafka의 기본 주요 빌더 클래스는 피어 인증서 이름을 기반으로 보안 주체 빌드를 지원합니다. 사용자 정의 주체 빌더는 SSL 피어 인증서의 이름을 사용하여 유형 사용자의 주체를 제공해야 합니다.
다음 예는 AMQ Streams의 OAuth 요구 사항을 충족하는 사용자 정의 주요 빌더를 보여줍니다.
사용자 정의 OAuth 구성을 위한 주요 빌더 예
public final class CustomKafkaPrincipalBuilder implements KafkaPrincipalBuilder {
public KafkaPrincipalBuilder() {}
@Override
public KafkaPrincipal build(AuthenticationContext context) {
if (context instanceof SslAuthenticationContext) {
SSLSession sslSession = ((SslAuthenticationContext) context).session();
try {
return new KafkaPrincipal(
KafkaPrincipal.USER_TYPE, sslSession.getPeerPrincipal().getName());
} catch (SSLPeerUnverifiedException e) {
throw new IllegalArgumentException("Cannot use an unverified peer for authentication", e);
}
}
// Create your own KafkaPrincipal here
...
}
}
4.2.10.4. KafkaListenerAuthenticationCustom 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type 속성은 KafkaListenerAuthenticationTls , , KafkaListenerAuthentication ScramSha512KafkaListenerAuthenticationOAuth 와 KafkaListenerAuthenticationTls 사용을 구분하는 판별자입니다. KafkaListenerAuthenticationCustom 유형의 값 custom 이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| listenerConfig | 특정 리스너에 사용할 구성입니다. 모든 값에는 listener.name. <listener_name>이 접두사로 지정됩니다. |
| map | |
| SASL | 이 리스너에서 SASL을 활성화하거나 비활성화합니다. |
| boolean | |
| secrets | /opt/kafka/custom-authn-secrets/custom-listener- <listener_name>-<port> / <secret_name >에 마운트할 시크릿입니다. |
| type |
|
| string |
4.2.11. GenericKafkaListenerConfiguration 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: GenericKafkaListener
GenericKafkaListenerConfiguration 스키마 속성의 전체 목록
Kafka 리스너 구성.
4.2.11.1. brokerCertChainAndKey 링크 복사링크가 클립보드에 복사되었습니다!
brokerCertRoleBindingAndKey 속성은 TLS 암호화가 활성화된 리스너에서만 사용됩니다. 속성을 사용하여 자체 Kafka 리스너 인증서를 제공할 수 있습니다.
TLS 암호화가 활성화된 로드 밸런서 외부 리스너 구성 예
listeners:
#...
- name: external
port: 9094
type: loadbalancer
tls: true
authentication:
type: tls
configuration:
brokerCertChainAndKey:
secretName: my-secret
certificate: my-listener-certificate.crt
key: my-listener-key.key
# ...
4.2.11.2. externalTrafficPolicy 링크 복사링크가 클립보드에 복사되었습니다!
externalTrafficPolicy 속성은 로드 밸런서 및 nodeport 리스너와 함께 사용됩니다. OpenShift 외부에서 Kafka를 노출할 때 로컬 또는 클러스터를 선택할 수 있습니다. local 은 다른 노드로 홉을 방지하고 클라이언트 IP를 유지하지만 클러스터는 둘 다 하지 않습니다. 기본값은 Cluster 입니다.
4.2.11.3. loadBalancerSourceRanges 링크 복사링크가 클립보드에 복사되었습니다!
loadBalancerSourceRanges 속성은 로드 밸런서 리스너 에서만 사용됩니다. OpenShift 외부에서 Kafka를 노출할 때 레이블 및 주석 외에도 소스 범위를 사용하여 서비스 생성 방법을 사용자 지정할 수 있습니다.
로드 밸런서 리스너에 구성된 소스 범위의 예
listeners:
#...
- name: external
port: 9094
type: loadbalancer
tls: false
configuration:
externalTrafficPolicy: Local
loadBalancerSourceRanges:
- 10.0.0.0/8
- 88.208.76.87/32
# ...
# ...
4.2.11.4. 클래스 링크 복사링크가 클립보드에 복사되었습니다!
class 속성은 수신 리스너와 함께만 사용됩니다. class 속성을 사용하여 Ingress 클래스 를 구성할 수 있습니다.
Ingress 클래스 nginx-internal를 사용하여 유형 Ingress의 외부 리스너 예
listeners:
#...
- name: external
port: 9094
type: ingress
tls: true
configuration:
class: nginx-internal
# ...
# ...
4.2.11.5. preferredNodePortAddressType 링크 복사링크가 클립보드에 복사되었습니다!
preferredNodePortAddressType 속성은 nodeport 리스너에서만 사용됩니다.
리스너 구성에서 preferredNodePortAddressType 속성을 사용하여 노드 주소로 확인한 첫 번째 주소 유형을 지정합니다. 이 속성은 예를 들어 배포에 DNS가 지원되지 않거나 내부 DNS 또는 IP 주소를 통해 내부적으로 브로커를 노출하려는 경우 유용합니다. 이 유형의 주소가 발견되면 사용됩니다. 기본 주소 유형을 찾을 수 없는 경우 AMQ Streams는 표준 우선 순위의 유형을 진행합니다.
- ExternalDNS
- ExternalIP
- 호스트 이름
- InternalDNS
- InternalIP
기본 노드 포트 주소 유형으로 구성된 외부 리스너 예
listeners:
#...
- name: external
port: 9094
type: nodeport
tls: false
configuration:
preferredNodePortAddressType: InternalDNS
# ...
# ...
4.2.11.6. useServiceDnsDomain 링크 복사링크가 클립보드에 복사되었습니다!
useServiceDnsDomain 속성은 내부 및 클러스터-ip 리스너에서만 사용됩니다. 클러스터 서비스 접미사(일반적으로 .cluster.local)를 포함하는 정규화된 DNS 이름이 사용되는지 여부를 정의합니다. useServiceDnsDomain 이 false 로 설정된 경우 공개된 주소는 서비스 접미사 없이 생성됩니다(예: my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc ). useServiceDnsDomain 이 true 로 설정된 경우 공개된 주소는 서비스 접미사(예: my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc.cluster.local )로 생성됩니다. 기본값은 false 입니다.
Service DNS 도메인을 사용하도록 구성된 내부 리스너 예
listeners:
#...
- name: plain
port: 9092
type: internal
tls: false
configuration:
useServiceDnsDomain: true
# ...
# ...
OpenShift 클러스터에서 .cluster.local 과 다른 서비스 접미사를 사용하는 경우 Cluster Operator 구성의 KUBERNETES_SERVICE_DNS_DOMAIN 환경 변수를 사용하여 접미사를 구성할 수 있습니다.
4.2.11.7. GenericKafkaListenerConfiguration 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| brokerCertChainAndKey |
이 리스너 |
| externalTrafficPolicy |
서비스가 외부 트래픽을 노드 로컬 또는 클러스터 전체 엔드포인트로 라우팅하는지를 지정합니다. |
| 문자열([로컬, 클러스터] 중 하나) | |
| loadBalancerSourceRanges |
클라이언트가 로드 밸런서 유형 리스너에 연결할 수 있는 CIDR 범위 목록(예: |
| 문자열 배열 | |
| 부트스트랩 | 부트스트랩 구성. |
| brokers | broker별 구성. |
| ipFamilyPolicy |
서비스에서 사용하는 IP 제품군 정책을 지정합니다. 사용 가능한 옵션은 |
| 문자열([RequireDualStack, SingleStack, PreferDualStack] 중 하나) | |
| ipFamilies |
서비스에서 사용하는 IP Families를 지정합니다. 사용 가능한 옵션은 |
| 문자열([IPv6, IPv4]) 배열 중 하나 이상 | |
| createBootstrapService |
부트스트랩 서비스를 생성할지 여부입니다. 부트스트랩 서비스는 기본적으로 생성됩니다(다른 방법으로 지정되지 않은 경우). 이 필드는 |
| boolean | |
| 클래스 |
사용할 컨트롤러를 정의하는 |
| string | |
| 종료자 |
이 리스너에 대해 생성된 |
| 문자열 배열 | |
| maxConnectionCreationRate | 언제든지 이 리스너에서 허용되는 최대 연결 생성 속도입니다. 제한에 도달하면 새 연결이 제한됩니다. |
| integer | |
| maxConnections | 언제든지 브로커에서 이 리스너를 허용하는 최대 연결 수입니다. 제한에 도달하면 새 연결이 차단됩니다. |
| integer | |
| preferredNodePortAddressType |
노드 주소로 사용할 주소 유형을 정의합니다. 사용 가능한 유형은
이 필드는 우선 확인되는 기본 주소 유형을 선택하는 데 사용됩니다. 이 주소 유형에 대한 주소를 찾을 수 없는 경우 다른 유형은 기본 순서로 확인됩니다. 이 필드는 |
| 문자열 ([ExternalDNS, ExternalIP, Hostname, InternalIP, InternalDNS] 중 하나) | |
| useServiceDnsDomain |
OpenShift 서비스 DNS 도메인을 사용할지 여부를 설정합니다. |
| boolean |
4.2.12. CertAndKeySecretSource schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: GenericKafkaListenerConfiguration, KafkaClientAuthenticationTls
| 속성 | 설명 |
|---|---|
| certificate | 시크릿에 있는 파일 인증서의 이름입니다. |
| string | |
| key | 시크릿의 개인 키 이름입니다. |
| string | |
| secretName | 인증서가 포함된 Secret의 이름입니다. |
| string |
4.2.13. GenericKafkaListenerConfigurationBootstrap schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: GenericKafkaListenerConfiguration
GenericKafkaListenerConfigurationBootstrap 스키마 속성의 전체 목록
nodePort,host,loadBalancerIP 및 주석 속성과 동등한 브로커 서비스는 GenericKafkaListenerConfigurationBroker 스키마 에서 구성됩니다.
4.2.13.1. alternativeNames 링크 복사링크가 클립보드에 복사되었습니다!
부트스트랩 서비스의 대체 이름을 지정할 수 있습니다. 이름은 브로커 인증서에 추가되며 TLS 호스트 이름 확인에 사용할 수 있습니다. alternativeNames 속성은 모든 유형의 리스너에 적용됩니다.
추가 부트스트랩 주소로 구성된 외부 경로 리스너 예
listeners:
#...
- name: external
port: 9094
type: route
tls: true
authentication:
type: tls
configuration:
bootstrap:
alternativeNames:
- example.hostname1
- example.hostname2
# ...
4.2.13.2. host 링크 복사링크가 클립보드에 복사되었습니다!
host 속성은 경로 및 수신 리스너와 함께 사용하여 부트스트랩 및 브로커별 서비스에서 사용하는 호스트 이름을 지정합니다.
Ingress 컨트롤러에서 호스트 속성 값을 자동으로 할당하지 않으므로 Ingress 리스너 구성에 host 속성 값이 필수입니다. 호스트 이름이 Ingress 엔드 포인트로 해석되는지 확인합니다. AMQ Streams는 요청된 호스트를 사용할 수 있고 Ingress 엔드포인트로 올바르게 라우팅되는지 검증하지 않습니다.
수신 리스너의 호스트 구성 예
listeners:
#...
- name: external
port: 9094
type: ingress
tls: true
authentication:
type: tls
configuration:
bootstrap:
host: bootstrap.myingress.com
brokers:
- broker: 0
host: broker-0.myingress.com
- broker: 1
host: broker-1.myingress.com
- broker: 2
host: broker-2.myingress.com
# ...
기본적으로 경로 리스너 호스트는 OpenShift에서 자동으로 할당됩니다. 그러나 호스트를 지정하여 할당된 경로 호스트를 덮어쓸 수 있습니다.
AMQ Streams는 요청된 호스트를 사용할 수 있는 검증을 수행하지 않습니다. 자유롭게 사용할 수 있고 사용할 수 있는지 확인해야 합니다.
경로 리스너의 호스트 구성 예
# ...
listeners:
#...
- name: external
port: 9094
type: route
tls: true
authentication:
type: tls
configuration:
bootstrap:
host: bootstrap.myrouter.com
brokers:
- broker: 0
host: broker-0.myrouter.com
- broker: 1
host: broker-1.myrouter.com
- broker: 2
host: broker-2.myrouter.com
# ...
4.2.13.3. nodePort 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 부트스트랩 및 브로커 서비스에 사용되는 포트 번호는 OpenShift에서 자동으로 할당합니다. 요청된 포트 번호를 지정하여 nodeport 리스너에 할당된 노드 포트를 덮어쓸 수 있습니다.
AMQ Streams는 요청된 포트에서 검증을 수행하지 않습니다. 사용 가능한지 확인해야 합니다.You must ensure that they are free and available for use.
노드 포트 덮어쓰기로 구성된 외부 리스너 예
# ...
listeners:
#...
- name: external
port: 9094
type: nodeport
tls: true
authentication:
type: tls
configuration:
bootstrap:
nodePort: 32100
brokers:
- broker: 0
nodePort: 32000
- broker: 1
nodePort: 32001
- broker: 2
nodePort: 32002
# ...
4.2.13.4. loadBalancerIP 링크 복사링크가 클립보드에 복사되었습니다!
loadBalancerIP 속성을 사용하여 로드 밸런서를 생성할 때 특정 IP 주소를 요청합니다. 특정 IP 주소가 있는 로드 밸런서를 사용해야 하는 경우 이 속성을 사용합니다. 클라우드 공급자가 기능을 지원하지 않는 경우 loadBalancerIP 필드가 무시됩니다.
특정 로드 밸런서 IP 주소 요청을 사용하는 로드 밸런서 유형의 외부 리스너 예
# ...
listeners:
#...
- name: external
port: 9094
type: loadbalancer
tls: true
authentication:
type: tls
configuration:
bootstrap:
loadBalancerIP: 172.29.3.10
brokers:
- broker: 0
loadBalancerIP: 172.29.3.1
- broker: 1
loadBalancerIP: 172.29.3.2
- broker: 2
loadBalancerIP: 172.29.3.3
# ...
4.2.13.5. annotations 링크 복사링크가 클립보드에 복사되었습니다!
annotations 속성을 사용하여 리스너와 관련된 OpenShift 리소스에 주석을 추가합니다. 예를 들어 이러한 주석을 사용하여 외부 DNS와 같은 DNS 툴링을 조정할 수 있으며, 로드 밸런서 서비스에 DNS 이름을 자동으로 할당할 수 있습니다.
주석을 사용하여 유형 로드 밸런서의 외부 리스너 예
# ...
listeners:
#...
- name: external
port: 9094
type: loadbalancer
tls: true
authentication:
type: tls
configuration:
bootstrap:
annotations:
external-dns.alpha.kubernetes.io/hostname: kafka-bootstrap.mydomain.com.
external-dns.alpha.kubernetes.io/ttl: "60"
brokers:
- broker: 0
annotations:
external-dns.alpha.kubernetes.io/hostname: kafka-broker-0.mydomain.com.
external-dns.alpha.kubernetes.io/ttl: "60"
- broker: 1
annotations:
external-dns.alpha.kubernetes.io/hostname: kafka-broker-1.mydomain.com.
external-dns.alpha.kubernetes.io/ttl: "60"
- broker: 2
annotations:
external-dns.alpha.kubernetes.io/hostname: kafka-broker-2.mydomain.com.
external-dns.alpha.kubernetes.io/ttl: "60"
# ...
4.2.13.6. GenericKafkaListenerConfigurationBootstrap 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| alternativeNames | 부트스트랩 서비스의 추가 대체 이름입니다. 대체 이름은 TLS 인증서의 주체 대체 이름 목록에 추가됩니다. |
| 문자열 배열 | |
| host |
부트스트랩 호스트입니다. 이 필드는 Ingress 리소스 또는 Route 리소스에서 사용하여 원하는 호스트 이름을 지정합니다. 이 필드는 |
| string | |
| nodePort |
부트스트랩 서비스의 노드 포트입니다. 이 필드는 |
| integer | |
| loadBalancerIP |
이 필드에 지정된 IP 주소로 로드 밸런서가 요청됩니다. 이 기능은 로드 밸런서가 생성될 때 기본 클라우드 공급자가 |
| string | |
| annotations |
|
| map | |
| labels |
|
| map |
4.2.14. GenericKafkaListenerConfigurationBroker 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: GenericKafkaListenerConfiguration
GenericKafkaListenerConfigurationBroker 스키마 속성의 전체 목록
부트 스트랩 서비스 덮어쓰기를 구성하는 GenericKafkaListenerConfigurationBootstrap 스키마 의 nodePort,host,loadBalancerIP 및 주석 속성에 대한 예제 구성을 볼 수 있습니다.
브로커에 대한 공지된 주소
기본적으로 AMQ Streams는 Kafka 클러스터가 클라이언트에 알리는 호스트 이름과 포트를 자동으로 확인합니다. AMQ Streams가 실행 중인 인프라에서 Kafka에 액세스할 수 있는 올바른 호스트 이름 또는 포트를 제공하지 않을 수 있기 때문에 모든 상황에서 충분하지 않습니다.
브로커 ID를 지정하고 리스너의 구성 속성에서 공개된 호스트 이름과 포트를 사용자 지정할 수 있습니다. 그런 다음 AMQ Streams는 Kafka 브로커에서 공개된 주소를 자동으로 구성하고 브로커 인증서에 추가하여 TLS 호스트 이름 확인에 사용할 수 있습니다. 공개된 호스트 및 포트를 재정의하는 것은 모든 유형의 리스너에 사용할 수 있습니다.
공개된 주소에 대한 덮어쓰기로 구성된 외부 경로 리스너의 예
listeners:
#...
- name: external
port: 9094
type: route
tls: true
authentication:
type: tls
configuration:
brokers:
- broker: 0
advertisedHost: example.hostname.0
advertisedPort: 12340
- broker: 1
advertisedHost: example.hostname.1
advertisedPort: 12341
- broker: 2
advertisedHost: example.hostname.2
advertisedPort: 12342
# ...
4.2.14.1. GenericKafkaListenerConfigurationBroker 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| broker | kafka 브로커(broker 식별자)의 ID입니다. 브로커 ID는 0에서 시작하여 브로커 복제본 수에 해당합니다. |
| integer | |
| advertisedHost |
brokers |
| string | |
| advertisedPort |
brokers |
| integer | |
| host |
브로커 호스트. 이 필드는 Ingress 리소스 또는 Route 리소스에서 사용하여 원하는 호스트 이름을 지정합니다. 이 필드는 |
| string | |
| nodePort |
broker별 서비스의 노드 포트입니다. 이 필드는 |
| integer | |
| loadBalancerIP |
이 필드에 지정된 IP 주소로 로드 밸런서가 요청됩니다. 이 기능은 로드 밸런서가 생성될 때 기본 클라우드 공급자가 |
| string | |
| annotations |
|
| map | |
| labels |
|
| map |
4.2.15. EphemeralStorage 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JbodStorage, KafkaClusterSpec, ZookeeperClusterSpec
type 속성은 EphemeralStorage 유형을 PersistentClaimStorage 와 구분하는 구분자입니다. EphemeralStorage 유형의 임시 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| id | 스토리지 식별 번호. 'jbod' 유형의 스토리지에 정의된 스토리지 볼륨에만 필요합니다. |
| integer | |
| sizeLimit | type=ephemeral인 경우 이 EmptyDir 볼륨에 필요한 총 로컬 스토리지(예: 1Gi)를 정의합니다. |
| string | |
| type |
|
| string |
4.2.16. PersistentClaimStorage 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JbodStorage, KafkaClusterSpec, ZookeeperClusterSpec
type 속성은 PersistentClaimStorage 유형과 EphemeralStorage 의 사용을 구별하는 판별자입니다. PersistentClaimStorage 유형에 대한 persistent-claim 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| 크기 | type=persistent-claim인 경우 영구 볼륨 클레임의 크기(예: 1Gi)를 정의합니다. type=persistent-claim 시 필수 항목입니다. |
| string | |
| 선택기 | 사용할 특정 영구 볼륨을 지정합니다. 이러한 볼륨을 선택하기 위한 레이블을 나타내는 키:값 쌍이 포함되어 있습니다. |
| map | |
| deleteClaim | 클러스터가 배포 취소될 때 영구 볼륨 클레임을 삭제해야 하는지 여부를 지정합니다. |
| boolean | |
| 클래스 | 동적 볼륨 할당에 사용할 스토리지 클래스입니다. |
| string | |
| id | 스토리지 식별 번호. 'jbod' 유형의 스토리지에 정의된 스토리지 볼륨에만 필요합니다. |
| integer | |
| 덮어쓰기 |
개별 브로커에 대한 재정의 |
4.2.17. PersistentClaimStorageOverride schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 위치: PersistentClaimStorage
| 속성 | 설명 |
|---|---|
| 클래스 | 이 브로커의 동적 볼륨 할당에 사용할 스토리지 클래스입니다. |
| string | |
| broker | kafka 브로커(broker 식별자)의 ID입니다. |
| integer |
4.2.18. JbodStorage 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
type 속성은 discriminator로, JbodStorage 유형 사용을 EphemeralStorage, PersistentClaimStorage 와 구별합니다. JbodStorage 유형에 대한 값 jbod 가 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| volumes | JBOD 디스크 어레이를 나타내는 스토리지 오브젝트로 볼륨 목록입니다. |
4.2.19. KafkaAuthorizationSimple 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
KafkaAuthorizationSimple 스키마 속성의 전체 목록
AMQ Streams의 간단한 인증에서는 Apache Kafka와 함께 제공되는 기본 ACL(액세스 제어 목록) 인증 플러그인인 AclAuthorizer 플러그인을 사용합니다. ACL을 사용하면 세분화된 수준에서 리소스에 액세스할 수 있는 사용자를 정의할 수 있습니다.
간단한 권한 부여를 사용하도록 Kafka 사용자 정의 리소스를 구성합니다. 권한 부여 섹션의 type 속성을 simple 값으로 설정하고 슈퍼 사용자 목록을 구성합니다.
액세스 규칙은 ACLRule 스키마 참조에 설명된 대로 KafkaUser 에 대해 구성됩니다.
4.2.19.1. superUsers 링크 복사링크가 클립보드에 복사되었습니다!
ACL 규칙을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.
간단한 권한 부여 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
namespace: myproject
spec:
kafka:
# ...
authorization:
type: simple
superUsers:
- CN=client_1
- user_2
- CN=client_3
# ...
Kafka.spec.kafka 의 config 속성의 super.user 구성 옵션은 무시됩니다. 대신 권한 부여 속성에 수퍼 사용자를 지정합니다. 자세한 내용은 Kafka 브로커 구성을 참조하십시오.
4.2.19.2. KafkaAuthorizationSimple 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type 속성은 KafkaAuthorizationSimple 유형과 KafkaAuthorizationOpa, KafkaAuthorizationKeycloak, KafkaAuthorizationCustom 등 다양한 유형의 사용을 구분하는 판별자입니다. KafkaAuthorizationSimple 유형에 대해 간단한 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| 슈퍼 유저 | 슈퍼 사용자 목록. 무제한 액세스 권한을 얻을 수 있는 사용자 보안 주체 목록을 포함해야 합니다. |
| 문자열 배열 |
4.2.20. KafkaAuthorizationOpa 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
KafkaAuthorizationOpa 스키마 속성의 전체 목록
Open Policy Agent 권한을 사용하려면 권한 부여 섹션의 type 속성을 opa 값으로 설정하고 필요에 따라 OPA 속성을 구성합니다. AMQ Streams는 작성자로 Kafka 권한 부여를 위한 Open Policy Agent 플러그인을 사용합니다. 입력 데이터 및 정책 예제 형식에 대한 자세한 내용은 Open Policy Agent plugin for Kafka authorization 를 참조하십시오.
4.2.20.1. url 링크 복사링크가 클립보드에 복사되었습니다!
Open Policy Agent 서버에 연결하는 데 사용되는 URL입니다. URL에는 작성자가 쿼리하는 정책을 포함해야 합니다. 필수 항목입니다.
4.2.20.2. allowOnError 링크 복사링크가 클립보드에 복사되었습니다!
작성자가 Open Policy Agent(예: 일시적으로 사용할 수 없는 경우)를 쿼리하지 못하는 경우 Kafka 클라이언트를 기본적으로 허용하거나 거부할지 여부를 정의합니다. 기본값은 false - 모든 작업이 거부됩니다.
4.2.20.3. initialCacheCapacity 링크 복사링크가 클립보드에 복사되었습니다!
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 초기 용량입니다. 기본값은 5000 입니다.
4.2.20.4. maximumCacheSize 링크 복사링크가 클립보드에 복사되었습니다!
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 최대 용량입니다. 기본값은 50000 입니다.
4.2.20.5. expireAfterMs 링크 복사링크가 클립보드에 복사되었습니다!
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 로컬 캐시에 보관된 레코드의 만료입니다. Open Policy Agent 서버에서 캐시된 권한 부여 결정을 다시 로드하는 빈도를 정의합니다. 밀리초 단위입니다. 기본값은 28 0000 밀리초(1시간)입니다.
4.2.20.6. tlsTrustedCertificates 링크 복사링크가 클립보드에 복사되었습니다!
OPA 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다.
4.2.20.7. superUsers 링크 복사링크가 클립보드에 복사되었습니다!
개방형 정책 에이전트 정책을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.
Open Policy Agent authorizer 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
namespace: myproject
spec:
kafka:
# ...
authorization:
type: opa
url: http://opa:8181/v1/data/kafka/allow
allowOnError: false
initialCacheCapacity: 1000
maximumCacheSize: 10000
expireAfterMs: 60000
superUsers:
- CN=fred
- sam
- CN=edward
# ...
4.2.20.8. KafkaAuthorizationOpa 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type 속성은 KafkaAuthorizationOpa 유형을 KafkaAuthorizationSimple, KafkaAuthorizationKeycloak, KafkaAuthorizationCustom. KafkaAuthorizationOpa 유형의 opa 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| url | Open Policy Agent 서버에 연결하는 데 사용되는 URL입니다. URL에는 작성자가 쿼리하는 정책을 포함해야 합니다. 이 옵션은 필수입니다. |
| string | |
| allowOnError |
작성자가 Open Policy Agent(예: 일시적으로 사용할 수 없는 경우)를 쿼리하지 못하는 경우 Kafka 클라이언트를 기본적으로 허용하거나 거부할지 여부를 정의합니다. 기본값은 |
| boolean | |
| initialCacheCapacity |
인증자가 사용하는 로컬 캐시의 초기 용량으로 인해 Open Policy Agent가 모든 요청 기본값이 |
| integer | |
| maximumCacheSize |
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 권한을 부여자가 사용하는 로컬 캐시의 최대 용량입니다. 기본값은 |
| integer | |
| expireAfterMs |
모든 요청에 대해 Open Policy Agent를 쿼리하지 않도록 로컬 캐시에 보관된 레코드의 만료입니다. Open Policy Agent 서버에서 캐시된 권한 부여 결정을 다시 로드하는 빈도를 정의합니다. 밀리초 단위입니다. 기본값은 |
| integer | |
| tlsTrustedCertificates | OPA 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다. |
| 슈퍼 유저 | 슈퍼 사용자 목록, 특히 무제한 액세스 권한이 있는 사용자 보안 목록입니다. |
| 문자열 배열 | |
| enableMetrics |
Open Policy Agent 작성자 플러그인이 메트릭을 제공해야 하는지 여부를 정의합니다. 기본값은 |
| boolean |
4.2.21. KafkaAuthorizationKeycloak 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
type 속성은 KafkaAuthorizationKeycloak 유형과 KafkaAuthorizationSimple, KafkaAuthorizationOpa, KafkaAuthorizationCustom. KafkaAuthorizationKeycloak 유형의 값 keycloak 이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| clientId | Kafka 클라이언트가 OAuth 서버에 대해 인증하고 토큰 끝점 URI를 사용하는 OAuth 클라이언트 ID입니다. |
| string | |
| tokenEndpointUri | 권한 부여 서버 토큰 끝점 URI입니다. |
| string | |
| tlsTrustedCertificates | OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다. |
| disableTlsHostnameVerification |
TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 |
| boolean | |
| delegateToKafkaAcls |
Red Hat Single Sign-On Authorization Services 정책에서 DENIED인 경우 권한 부여 결정을 '단순' 승인자에게 위임해야 하는지 여부입니다. 기본값은 |
| boolean | |
| grantsRefreshPeriodSeconds | 두 번 연속 부여 사이의 시간은 새로 고침을 몇 초 내에 실행합니다. 기본값은 60입니다. |
| integer | |
| grantsRefreshPoolSize | 활성 세션에 대한 부여를 새로 고치는 데 사용할 스레드 수입니다. 스레드가 많을수록 병렬 처리가 증가하므로 작업이 더 빨리 완료됩니다. 그러나 더 많은 스레드를 사용하면 권한 부여 서버에 더 많은 로드가 배치됩니다. 기본값은 5입니다. |
| integer | |
| 슈퍼 유저 | 슈퍼 사용자 목록. 무제한 액세스 권한을 얻을 수 있는 사용자 보안 주체 목록을 포함해야 합니다. |
| 문자열 배열 | |
| connectTimeoutSeconds | 권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다. |
| integer | |
| readTimeoutSeconds | 권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다. |
| integer | |
| httpRetries | 초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다. |
| integer | |
| enableMetrics |
OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 |
| boolean |
4.2.22. KafkaAuthorizationCustom 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
KafkaAuthorizationCustom 스키마 속성의 전체 목록
AMQ Streams에서 사용자 정의 인증을 사용하려면 ACL(액세스 제어 목록)을 정의하도록 자체 Authorizer 플러그인을 구성할 수 있습니다.
ACL을 사용하면 세분화된 수준에서 리소스에 액세스할 수 있는 사용자를 정의할 수 있습니다.
사용자 정의 권한을 사용하도록 Kafka 사용자 정의 리소스를 구성합니다. 권한 부여 섹션의 type 속성을 사용자 지정 값으로 설정하고 다음 속성을 설정합니다.
사용자 정의 작성자는 org.apache.kafka.server.authorizer.Authorizer 인터페이스를 구현하고 super.users 구성 속성을 사용하여 super.users 구성을 지원해야 합니다.
4.2.22.1. authorizerClass 링크 복사링크가 클립보드에 복사되었습니다!
(필수) 사용자 지정 ACL을 지원하기 위해 org.apache.kafka.server.authorizer.Authorizer 인터페이스를 구현하는 Java 클래스입니다.
4.2.22.2. superUsers 링크 복사링크가 클립보드에 복사되었습니다!
ACL 규칙을 쿼리하지 않고 항상 허용되도록 사용자 보안 주체 목록을 슈퍼 사용자로 취급합니다.
Kafka.spec.kafka.config 를 사용하여 사용자 정의 작성자를 초기화하기 위한 구성을 추가할 수 있습니다.
Kafka.spec아래의 사용자 정의 권한 부여 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
namespace: myproject
spec:
kafka:
# ...
authorization:
type: custom
authorizerClass: io.mycompany.CustomAuthorizer
superUsers:
- CN=client_1
- user_2
- CN=client_3
# ...
config:
authorization.custom.property1=value1
authorization.custom.property2=value2
# ...
Kafka 사용자 정의 리소스 구성 외에도 사용자 정의 작성자 클래스를 포함하는 JAR 파일은 Kafka 브로커의 classpath에서 사용할 수 있어야 합니다.
AMQ Streams Maven 빌드 프로세스는 docker-images/kafka/kafka- thirdparty-libs 디렉터리 아래의 pom.xml 파일에 종속 항목으로 추가하여 생성된 Kafka 브로커 컨테이너 이미지에 사용자 정의 타사 라이브러리를 추가하는 메커니즘을 제공합니다. 디렉터리에는 다른 Kafka 버전의 다른 폴더가 포함되어 있습니다. 적절한 폴더를 선택합니다. pom.xml 파일을 수정하기 전에 Maven 리포지토리에서 타사 라이브러리를 사용할 수 있어야 하며 Maven 리포지토리에 AMQ Streams 빌드 프로세스에서 액세스할 수 있어야 합니다.
Kafka.spec.kafka 의 config 속성의 super.user 구성 옵션은 무시됩니다. 대신 권한 부여 속성에 수퍼 사용자를 지정합니다. 자세한 내용은 Kafka 브로커 구성을 참조하십시오.
사용자 정의 권한 부여는 oauth 인증을 사용하고 groupsClaim 구성 특성을 구성할 때 인증 중에 JWT 토큰에서 추출한 그룹 멤버십 정보를 사용할 수 있습니다. 그룹은 다음과 같이 authorize() 호출 중에 OAuthKafkaPrincipal 오브젝트에서 사용할 수 있습니다.
public List<AuthorizationResult> authorize(AuthorizableRequestContext requestContext, List<Action> actions) {
KafkaPrincipal principal = requestContext.principal();
if (principal instanceof OAuthKafkaPrincipal) {
OAuthKafkaPrincipal p = (OAuthKafkaPrincipal) principal;
for (String group: p.getGroups()) {
System.out.println("Group: " + group);
}
}
}
4.2.22.3. KafkaAuthorizationCustom 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type 속성은 KafkaAuthorizationCustom 유형 사용을 KafkaAuthorizationSimple, KafkaAuthorizationOpa, KafkaAuthorizationKeycloak 과 구분하는 판별자입니다. KafkaAuthorizationCustom 유형의 값 custom 이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| authorizerClass | 권한 부여 구현 클래스 - classpath에서 사용할 수 있어야 합니다. |
| string | |
| 슈퍼 유저 | 무제한 액세스 권한이 있는 사용자 주체인 슈퍼 사용자 목록입니다. |
| 문자열 배열 | |
| supportsAdminApi |
사용자 정의 인증자가 Kafka Admin API를 사용하여 ACL을 관리하기 위한 API를 지원하는지 여부를 나타냅니다. 기본값은 |
| boolean |
4.2.23. Rack 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
used in: KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec
rack 옵션은 랙 인식을 구성합니다. rack 은 데이터 센터의 가용성 영역, 데이터 센터 또는 실제 랙을 나타낼 수 있습니다. 랙 은 topologyKey 를 통해 구성됩니다. TopologyKey 는 해당 값에 토폴로지 이름이 포함된 OpenShift 노드에서 레이블을 식별합니다. 이러한 레이블의 예로는 OpenShift 노드가 실행되는 가용성 영역의 이름이 포함된 topology.kubernetes.io/zone (또는 이전 OpenShift 버전의 failure-domain.beta.kubernetes.io/zone )이 있습니다. 실행되는 랙을 인식하도록 Kafka 클러스터를 구성하고, 다른 랙 에 파티션 복제본을 분배하거나 가장 가까운 복제본에서 메시지를 사용하는 등의 추가 기능을 활성화할 수 있습니다.
OpenShift 노드 라벨에 대한 자세한 내용은 oscap -Known Labels, Annotations, Taints를 참조하십시오. 노드가 배포된 영역 또는 랙을 나타내는 노드 레이블에 대한 OpenShift 관리자를 참조하십시오.
4.2.23.1. 랙에 파티션 복제본 분배 링크 복사링크가 클립보드에 복사되었습니다!
랙 인식이 구성되면 AMQ Streams는 각 Kafka 브로커에 대한 broker.rack 구성을 설정합니다. broker.rack 구성은 각 브로커에 랙 ID를 할당합니다. broker.rack 이 설정되면 Kafka 브로커는 가능한 한 많은 랙에 파티션 복제본을 분배합니다. 복제본이 여러 개의 랙에 분산되면 여러 복제본이 동시에 실패할 가능성이 동일한 랙에 있을 때보다 낮습니다. 복제본을 분산하면 복원력이 향상되고 가용성과 안정성에 중요합니다. Kafka에서 랙 인식을 활성화하려면 아래 예제와 같이 Kafka 사용자 정의 리소스의 .spec.kafka 섹션에 rack 옵션을 추가합니다.
Kafka의 rack 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
rack:
topologyKey: topology.kubernetes.io/zone
# ...
브로커가 실행되는 랙 은 경우에 따라 Pod가 삭제되거나 다시 시작될 때 변경될 수 있습니다. 결과적으로 다른 랙에서 실행되는 복제본이 동일한 랙을 공유할 수 있습니다. Cruise Control 및 KafkaRebalance 리소스를 RackAwareGoal 과 함께 사용하여 복제본이 다른 랙에 분산되도록 합니다.
Kafka 사용자 정의 리소스에서 랙 인식이 활성화되면 AMQ Streams는 OpenShift preferredDuringSchedulingIgnoredDuringExecution 선호도 규칙을 자동으로 추가하여 Kafka 브로커를 다른 랙에 배포합니다. 그러나 기본 규칙은 브로커가 분산되도록 보장하지 않습니다. 정확한 OpenShift 및 Kafka 구성에 따라 노드가 가능한 한 많은 랙에 올바르게 분배되도록 ZooKeeper 및 Kafka 둘 다에 대한 topologySpreadConstraints 를 구성해야합니다. 자세한 내용은 2.8절. “Pod 예약 구성” 에서 참조하십시오.
4.2.23.2. 가장 가까운 복제본에서 메시지 사용 링크 복사링크가 클립보드에 복사되었습니다!
Rack 인식은 소비자가 가장 가까운 복제본에서 데이터를 가져오는 데 사용할 수도 있습니다. Kafka 클러스터가 여러 데이터센터에 걸쳐 있을 때 네트워크 부하를 줄이고 퍼블릭 클라우드에서 Kafka를 실행할 때 비용을 줄일 수도 있습니다. 그러나 이 경우 대기 시간이 증가할 수 있습니다.
가장 가까운 복제본에서 사용할 수 있으려면 rack 인식 기능을 Kafka 클러스터에서 구성해야 하며 RackAwareReplicaSelector 를 활성화해야 합니다. 복제본 선택기 플러그인은 클라이언트가 가장 가까운 복제본에서 사용할 수 있도록 하는 논리를 제공합니다. 기본 구현에서는 LeaderSelector 를 사용하여 항상 클라이언트의 리더 복제본을 선택합니다. 기본 구현에서 전환하려면 replica.selector.class 에 RackAwareReplicaSelector 를 지정합니다.
복제본 인식 선택기가 활성화된 rack 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
rack:
topologyKey: topology.kubernetes.io/zone
config:
# ...
replica.selector.class: org.apache.kafka.common.replica.RackAwareReplicaSelector
# ...
Kafka 브로커 구성 외에도 소비자에 client.rack 옵션을 지정해야 합니다. client.rack 옵션은 소비자가 실행 중인 랙 ID 를 지정해야 합니다. RackAwareReplicaSelector 는 broker.rack 및 client.rack ID와 일치하는 broker.rack ID를 연결하여 가장 가까운 복제본을 찾아서 소비합니다. 동일한 랙에 여러 개의 복제본이 있는 경우 RackAwareReplicaSelector 는 항상 최신 복제본을 선택합니다. 랙 ID를 지정하지 않거나 동일한 랙 ID가 있는 복제본을 찾을 수 없는 경우 리더 복제본으로 대체됩니다.
그림 4.1. 동일한 가용성 영역의 복제본에서 사용하는 클라이언트 표시 예
커넥터가 가장 가까운 복제본의 메시지를 사용하도록 Kafka Connect, MirrorMaker 2 및 Kafka Bridge를 구성할 수도 있습니다. KafkaConnect,KafkaMirrorMaker2 및 KafkaBridge 사용자 정의 리소스에서 랙 인식 기능을 활성화합니다. 이 구성은 유사성 규칙을 설정하지 않지만 선호도 또는 topologySpreadConstraints 를 구성할 수도 있습니다. 자세한 내용은 2.8절. “Pod 예약 구성” 에서 참조하십시오.
AMQ Streams를 사용하여 Kafka Connect를 배포할 때 KafkaConnect 사용자 정의 리소스의 rack 섹션을 사용하여 client.rack 옵션을 자동으로 구성할 수 있습니다.
Kafka Connect의 rack 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
# ...
spec:
# ...
rack:
topologyKey: topology.kubernetes.io/zone
# ...
AMQ Streams를 사용하여 MirrorMaker 2를 배포할 때 KafkaMirrorMaker2 사용자 정의 리소스의 rack 섹션을 사용하여 client.rack 옵션을 자동으로 구성할 수 있습니다.
MirrorMaker 2의 rack 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
# ...
spec:
# ...
rack:
topologyKey: topology.kubernetes.io/zone
# ...
AMQ Streams를 사용하여 Kafka Bridge를 배포할 때 KafkaBridge 사용자 정의 리소스의 rack 섹션을 사용하여 client.rack 옵션을 자동으로 구성할 수 있습니다.
Kafka 브리지의 rack 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
# ...
spec:
# ...
rack:
topologyKey: topology.kubernetes.io/zone
# ...
4.2.23.3. Rack 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| topologyKey |
OpenShift 클러스터 노드에 할당된 라벨과 일치하는 키입니다. 레이블 값은 broker의 |
| string |
4.2.24. 프로브 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaExporterSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, TlsSidecar, ZookeeperClusterSpec
| 속성 | 설명 |
|---|---|
| failureThreshold | 성공한 후 프로브가 실패한 것으로 간주하기 위한 최소 연속 실패 횟수입니다. 기본값은 3입니다. 최소 값은 1입니다. |
| integer | |
| initialDelaySeconds | 먼저 상태를 확인하기 전에 초기 지연을 확인합니다. 기본값은 15초입니다. 최소 값은 0입니다. |
| integer | |
| periodSeconds | 프로브를 수행하는 빈도(초)입니다. 기본값은 10초입니다. 최소 값은 1입니다. |
| integer | |
| successThreshold | 실패 후 프로브가 성공한 것으로 간주되는 최소 연속 성공 사례입니다. 기본값은 1입니다. 활성 상태의 경우 1이어야 합니다. 최소 값은 1입니다. |
| integer | |
| timeoutSeconds | 각 시도된 상태 점검에 대한 타임아웃입니다. 기본값은 5초입니다. 최소 값은 1입니다. |
| integer |
4.2.25. JvmOptions 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, ZookeeperClusterSpec
| 속성 | 설명 |
|---|---|
| -XX | JVM에 -XX 옵션의 맵입니다. |
| map | |
| -Xms | -Xms 옵션을 JVM에 적용합니다. |
| string | |
| -Xmx | -Xmx 옵션을 JVM으로 설정합니다. |
| string | |
| gcLoggingEnabled | 가비지 컬렉션 로깅을 사용하도록 설정할지 여부를 지정합니다. 기본값은 false입니다. |
| boolean | |
| javaSystemProperties |
|
4.2.26. SystemProperty 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JvmOptions
| 속성 | 설명 |
|---|---|
| name | 시스템 속성 이름입니다. |
| string | |
| value | 시스템 속성 값입니다. |
| string |
4.2.27. KafkaJmxOptions 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
used in: KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, ZookeeperClusterSpec
CloudEvent 연결 옵션을 구성합니다.
포트 9999에 연결하여 Kafka 브로커, ZooKeeper 노드, Kafka Connect 및 MirrorMaker 2에서 metrics를 가져옵니다. jmxOptions 속성을 사용하여 암호로 보호되거나 보호되지 않은 10.0.0.1 포트를 구성합니다. 암호 보호를 사용하면 권한이 없는 Pod가 포트에 액세스할 수 없습니다.
그런 다음 구성 요소에 대한 메트릭을 가져올 수 있습니다.
예를 들어 각 Kafka 브로커에 대해 클라이언트에서 초당 바이트당 사용 데이터를 얻거나 브로커 네트워크의 요청 속도를 얻을 수 있습니다.
10.0.0.1 포트에 대한 보안을 활성화하려면 인증 필드의 type 매개 변수를 password 로 설정합니다.
Kafka 브로커 및 ZooKeeper 노드에 대한 암호 보호 CloudEvent 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
jmxOptions:
authentication:
type: "password"
# ...
zookeeper:
# ...
jmxOptions:
authentication:
type: "password"
#...
그런 다음 Pod를 클러스터에 배포하고 처리할 브로커를 지정하여 헤드리스 서비스를 사용하여 CloudEvent 메트릭을 가져올 수 있습니다.
예를 들어 브로커 0 에서 CloudEvent 메트릭을 가져오려면 다음을 지정합니다.
"CLUSTER-NAME-kafka-0.CLUSTER-NAME-kafka-brokers"
CLUSTER-NAME-kafka-0 은 브로커 Pod의 이름이며 CLUSTER-NAME-kafka-brokers 는 브로커 Pod의 IP를 반환하는 헤드리스 서비스의 이름입니다.
ScanSetting 포트가 보안되면 포드 배포의 CloudEvent 시크릿에서 해당 포트를 참조하여 사용자 이름과 암호를 가져올 수 있습니다.
보호되지 않은 CloudEvent 포트의 경우 빈 object {} 을 사용하여 헤드리스 서비스에서 10.0.0.1 포트를 엽니다. Pod를 배포하고 보호 포트와 동일한 방식으로 메트릭을 확보하지만, 이 경우 모든 Pod는 CloudEvent 포트에서 읽을 수 있습니다.
Kafka 브로커 및 ZooKeeper 노드에 대한 오픈 포트 10.0.0.1 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
jmxOptions: {}
# ...
zookeeper:
# ...
jmxOptions: {}
# ...
4.2.27.1. KafkaJmxOptions 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| 인증 |
10.0.0.1 포트에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
4.2.28. KafkaJmxAuthenticationPassword schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaJmxOptions
type 속성은 KafkaJmxAuthenticationPassword 유형의 사용을 나중에 추가할 수 있는 다른 하위 유형과 구별하는 구분자입니다. KafkaJmxAuthenticationPassword 유형의 값 암호 가 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string |
4.2.29. JmxPrometheusExporterMetrics schema reference 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, ZookeeperClusterSpec
type 속성은 나중에 추가할 수 있는 다른 하위 유형과 JmxPrometheusExporterMetrics 사용을 구분하는 판별자입니다. JmxPrometheusExporter 유형의 .
jmxPrometheusExporter 값이 있어야 합니다
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| valueFrom | Prometheus>-< Exporter 구성이 저장된 ConfigMap 항목입니다. 이 구성의 구조에 대한 자세한 내용은 Prometheus Exporter 를 참조하십시오. |
4.2.30. ExternalConfigurationReference 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ExternalLogging, JmxPrometheusExporterMetrics
| 속성 | 설명 |
|---|---|
| configMapKeyRef | 구성이 포함된 ConfigMap의 키에 대한 참조입니다. 자세한 내용은 core/v1 configmapkeyselector의 외부 설명서를 참조하십시오. |
4.2.31. 인라인Logging 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, ZookeeperClusterSpec
type 속성은 InlineLogging 유형과 ExternalLogging 유형을 구분하는 구분자입니다. InlineLogging 유형의 값 인라인 이어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| 로거 | 로거 이름에서 로거 수준에 이르기까지 맵입니다. |
| map |
4.2.32. ExternalLogging 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, ZookeeperClusterSpec
type 속성은 외부Logging 유형 사용을 구분하는 구분자 입니다. ExternalLogging 유형의 외부 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| valueFrom |
로깅 구성이 저장된 |
4.2.33. KafkaClusterTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterSpec
| 속성 | 설명 |
|---|---|
| statefulset |
|
| Pod |
Kafka |
| bootstrapService |
Kafka 부트스트랩 |
| brokersService |
Kafka 브로커 |
| externalBootstrapService |
Kafka 외부 부트스트랩 |
| perPodService |
OpenShift 외부에서 액세스하는 데 사용되는 포드당 Kafka |
| externalBootstrapRoute |
Kafka 외부 부트스트랩 |
| perPodRoute |
OpenShift 외부에서 액세스 |
| externalBootstrapIngress |
Kafka 외부 부트스트랩 |
| perPodIngress |
OpenShift 외부에서 액세스하는 데 사용되는 포드당 Kafka |
| persistentVolumeClaim |
모든 Kafka |
| podDisruptionBudget |
Kafka |
| kafkaContainer | Kafka 브로커 컨테이너용 템플릿입니다. |
| initContainer | Kafka init 컨테이너용 템플릿입니다. |
| clusterCaCert | Kafka 클러스터 인증서 공개 키가 있는 시크릿용 템플릿입니다. |
| serviceAccount | Kafka 서비스 계정에 대한 템플릿입니다. |
| jmxSecret | Kafka 클러스터의 보안에 대한 템플릿입니다. |
| clusterRoleBinding | Kafka ClusterRoleBinding용 템플릿입니다. |
| podSet |
Kafka |
4.2.34. StatefulSetTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaClusterTemplate, ZookeeperClusterTemplate
| 속성 | 설명 |
|---|---|
| metadata | 리소스에 적용되는 메타데이터입니다. |
| podManagementPolicy |
이 StatefulSet에 사용할 podManagementPolicy. 유효한 값은 |
| 문자열 ([OrderedReady, Parallel] 중 하나) |
4.2.35. MetadataTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
BuildConfigTemplate, DeploymentTemplate, InternalServiceTemplate, PodDisruptionBudgetTemplate, PodTemplate, ResourceTemplate, StatefulSetTemplate
MetadataTemplate 스키마 속성의 전체 목록
레이블 및 주석 은 리소스를 식별하고 구성하는 데 사용되며 metadata 속성에서 구성됩니다.
예를 들면 다음과 같습니다.
# ...
template:
pod:
metadata:
labels:
label1: value1
label2: value2
annotations:
annotation1: value1
annotation2: value2
# ...
labels 및 annotations 필드에는 예약된 문자열 strimzi.io 가 포함되지 않은 레이블 또는 주석이 포함될 수 있습니다. strimzi.io 가 포함된 레이블 및 주석은 AMQ Streams에서 내부적으로 사용되며 구성할 수 없습니다.
4.2.35.1. MetadataTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| labels | OpenShift 리소스에 추가된 라벨입니다. |
| map | |
| annotations | OpenShift 리소스에 추가된 주석입니다. |
| map |
4.2.36. PodTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, ZookeeperClusterTemplate
Kafka Pod에 대한 템플릿을 구성합니다.
PodTemplate 구성의 예
# ...
template:
pod:
metadata:
labels:
label1: value1
annotations:
anno1: value1
imagePullSecrets:
- name: my-docker-credentials
securityContext:
runAsUser: 1000001
fsGroup: 0
terminationGracePeriodSeconds: 120
# ...
4.2.36.1. hostAliases 링크 복사링크가 클립보드에 복사되었습니다!
hostAliases 속성을 사용하여 포드의 /etc/hosts 파일에 삽입되는 호스트 및 IP 주소 목록을 지정합니다.
이 구성은 클러스터 외부의 연결도 사용자가 요청한 경우 Kafka Connect 또는 MirrorMaker에 유용합니다.
hostAliases 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
#...
spec:
# ...
template:
pod:
hostAliases:
- ip: "192.168.1.86"
hostnames:
- "my-host-1"
- "my-host-2"
#...
4.2.36.2. PodTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| metadata | 리소스에 적용되는 메타데이터입니다. |
| imagePullSecrets |
이 포드에서 사용하는 이미지를 가져오는 데 사용할 동일한 네임스페이스의 보안에 대한 참조 목록입니다. Cluster Operator의 |
| securityContext | Pod 수준 보안 속성 및 공통 컨테이너 설정을 구성합니다. 자세한 내용은 core/v1 podsecuritycontext 에 대한 외부 설명서 를 참조하십시오. |
| terminationGracePeriodSeconds | 유예 기간은 Pod에서 실행되는 프로세스가 종료 신호를 보낸 후 시간(초)이며 프로세스가 강제 종료 신호로 중지되는 시간입니다. 이 값을 프로세스에 예상 정리 시간보다 길게 설정합니다. value는 음수가 아닌 정수여야 합니다. 0 값은 즉시 삭제를 나타냅니다. Kafka 브로커가 종료되기 전에 다른 브로커로 작업을 전송할 수 있도록 매우 큰 Kafka 클러스터의 유예 기간을 늘려야 할 수 있습니다. 기본값은 30초입니다. |
| integer | |
| 유사성 | Pod의 유사성 규칙입니다. 자세한 내용은 core/v1 유사성에 대한 외부 설명서를 참조하십시오. |
| 허용 오차 | Pod의 허용 오차입니다. 자세한 내용은 core/v1 허용 오차에 대한 외부 설명서 를 참조하십시오. |
| 허용 오차 배열 | |
| priorityClassName | Pod에 우선순위를 할당하는 데 사용되는 우선순위 클래스의 이름입니다. 우선순위 클래스에 대한 자세한 내용은 Pod 우선 순위 및 선점을 참조하십시오. |
| string | |
| schedulerName |
이 |
| string | |
| hostAliases | Pod의 HostAliases입니다. hostAliases는 지정된 경우 Pod의 호스트 파일에 삽입할 호스트 및 IP의 선택적 목록입니다. 자세한 내용은 core/v1 hostalias에 대한 외부 설명서 를 참조하십시오. |
| HostAlias 배열 | |
| tmpDirSizeLimit |
임시 EmptyDir 볼륨( |
| string | |
| enableServiceLinks | 서비스에 대한 정보를 Pod의 환경 변수에 삽입해야 하는지 여부를 나타냅니다. |
| boolean | |
| topologySpreadConstraints | Pod의 토폴로지 분배 제약 조건입니다. 자세한 내용은 core/v1 topologyspreadconstraint에 대한 외부 설명서 를 참조하십시오. |
| TopologySpreadConstraint array |
4.2.37. InternalServiceTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용: CruiseControlTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, ZookeeperClusterTemplate
| 속성 | 설명 |
|---|---|
| metadata | 리소스에 적용되는 메타데이터입니다. |
| ipFamilyPolicy |
서비스에서 사용하는 IP 제품군 정책을 지정합니다. 사용 가능한 옵션은 |
| 문자열([RequireDualStack, SingleStack, PreferDualStack] 중 하나) | |
| ipFamilies |
서비스에서 사용하는 IP Families를 지정합니다. 사용 가능한 옵션은 |
| 문자열([IPv6, IPv4]) 배열 중 하나 이상 |
4.2.38. resourcetemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, KafkaUserTemplate, ZookeeperClusterTemplate
| 속성 | 설명 |
|---|---|
| metadata | 리소스에 적용되는 메타데이터입니다. |
4.2.39. PodDisruptionBudgetTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaMirrorMakerTemplate, ZookeeperClusterTemplate
PodDisruptionBudgetTemplate 스키마 속성의 전체 목록
PDB( PodDisruptionBudget )는 계획된 유지 관리 또는 업그레이드 중에 사용할 수 있어야 하는 최소 Pod 수를 지정하여 고가용성을 보장하는 OpenShift 리소스입니다. AMQ Streams는 모든 새로운 StrimziPodSet 또는 Deployment 에 대해 PDB를 생성합니다. 기본적으로 PDB를 사용하면 언제든지 하나의 Pod만 사용할 수 없습니다. maxUnavailable 속성의 기본값을 변경하여 허용된 사용 불가능한 Pod 수를 늘릴 수 있습니다.
StrimziPodSet 사용자 정의 리소스는 maxUnavailable 값을 직접 사용할 수 없는 사용자 정의 컨트롤러를 사용하여 Pod를 관리합니다. 대신 다음 예에 설명된 대로 PDB 리소스를 생성할 때 maxUnavailable 값이 자동으로 minAvailable 값으로 변환됩니다.
-
Kafka리소스에 세 개의 브로커 Pod가 있고maxUnavailable속성이1로 설정된 경우minAvailable설정은2이며 하나의 Pod를 사용할 수 없습니다. -
세 개의 브로커 Pod가 있고
maxUnavailable속성이0(0)으로 설정된 경우minAvailable설정이3입니다. 3개의 브로커 Pod를 모두 사용할 수 있어야 하며 Pod가 0이 아닐 수 없습니다.
PodDisruptionBudget 템플릿 구성의 예
# ...
template:
podDisruptionBudget:
metadata:
labels:
key1: label1
key2: label2
annotations:
key1: label1
key2: label2
maxUnavailable: 1
# ...
4.2.39.1. PodDisruptionBudgetTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| metadata |
|
| maxUnavailable |
자동 Pod 제거를 허용하는 사용할 수 없는 최대 Pod 수입니다. 제거 후 |
| integer |
4.2.40. ContainerTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, ZookeeperClusterTemplate
ContainerTemplate 스키마 속성의 전체 목록
컨테이너에 대한 사용자 정의 보안 컨텍스트 및 환경 변수를 설정할 수 있습니다.
환경 변수는 env 속성 아래에 name 및 value 필드가 있는 오브젝트 목록으로 정의됩니다. 다음 예제에서는 Kafka 브로커 컨테이너에 설정된 두 가지 사용자 지정 환경 변수와 사용자 정의 보안 컨텍스트를 보여줍니다.
# ...
template:
kafkaContainer:
env:
- name: EXAMPLE_ENV_1
value: example.env.one
- name: EXAMPLE_ENV_2
value: example.env.two
securityContext:
runAsUser: 2000
# ...
KAFKA_ 접두사가 붙은 환경 변수는 AMQ Streams의 내부이며 피해야 합니다. AMQ Streams에서 이미 사용 중인 사용자 정의 환경 변수를 설정하면 무시되고 경고가 로그에 기록됩니다.
4.2.40.1. ContainerTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| env | 컨테이너에 적용해야 하는 환경 변수. |
|
| |
| securityContext | 컨테이너의 보안 컨텍스트입니다. 자세한 내용은 core/v1 securitycontext에 대한 외부 설명서 를 참조하십시오. |
4.2.41. ContainerEnvVar schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 위치: ContainerTemplate
| 속성 | 설명 |
|---|---|
| name | 환경 변수 키입니다. |
| string | |
| value | 환경 변수 값입니다. |
| string |
4.2.42. ZookeeperClusterSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
ZookeeperClusterSpec 스키마 속성의 전체 목록
ZooKeeper 클러스터를 구성합니다.
4.2.42.1. config 링크 복사링크가 클립보드에 복사되었습니다!
config 속성을 사용하여 ZooKeeper 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
예외
ZooKeeper 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.
- 보안(암호화, 인증 및 권한 부여)
- 리스너 구성
- 데이터 디렉터리 구성
- zookeeper 클러스터 구성
다음 접두사가 있는 속성은 설정할 수 없습니다.
-
4lw.commands.whitelist -
authProvider -
clientPort -
dataDir -
dataLogDir -
quorum.auth -
reconfigEnabled -
requireClientAuthScheme -
secureClientPort -
서버. -
snapshot.trust.empty -
standaloneEnabled -
serverCnxnFactory -
ssl. -
sslQuorum
config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음과 같은 예외를 포함하여 ZooKeeper로 전달됩니다.
-
지원되는 TLS 버전 및 암호화 제품군에대한 모든
ssl구성
ZooKeeper 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
kafka:
# ...
zookeeper:
# ...
config:
autopurge.snapRetainCount: 3
autopurge.purgeInterval: 2
# ...
4.2.42.2. logging 링크 복사링크가 클립보드에 복사되었습니다!
zookeeper에는 구성 가능한 로거가 있습니다.
-
zookeeper.root.logger
zookeeper는 Apache log4j 로거 구현을 사용합니다.
로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name 및 logging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.
인라인 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
# ...
zookeeper:
# ...
logging:
type: inline
loggers:
zookeeper.root.logger: INFO
log4j.logger.org.apache.zookeeper.server.FinalRequestProcessor: TRACE
log4j.logger.org.apache.zookeeper.server.ZooKeeperServer: DEBUG
# ...
로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.
외부 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
# ...
zookeeper:
# ...
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: zookeeper-log4j.properties
# ...
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
4.2.42.3. ZookeeperClusterSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| replicas | 클러스터의 Pod 수입니다. |
| integer | |
| image | 포드의 Docker 이미지입니다. |
| string | |
| storage |
스토리지 구성(디스크). CamelCase로 유형은 지정된 오브젝트 내의 |
| config | ZooKeeper 브로커 구성입니다. 다음 접두사가 있는 속성은 설정할 수 없습니다., dataDir, dataLogDir, clientPort, authProvider, authProvider, quorum.auth, requireClientAuthScheme, snapshot.trust.empty, standaloneEnabled, reconfigEnabled, 4lw.commands.whitelist, secureClientPort, ssl., serverCnxnFactory, sslQuorum(ssl.protocol, ssl.quorum.protocol, ssl.enabledProtocols, ssl.quorum.enabledProtocols, ssl.ciphersuites, ssl.quorum.ciphersuites, ssl.hostnameVerification 제외) SSL.quorum.hostnameVerification). |
| map | |
| livenessProbe | Pod 활성 검사입니다. |
| readinessProbe | Pod 준비 상태 확인 |
| jvmOptions | Pod에 대한 JVM 옵션. |
| jmxOptions | Zookeeper 노드를 위한 Options입니다. |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
| logging |
ZooKeeper에 대한 로깅 구성입니다. 유형은 지정된 개체 내의 |
| template | ZooKeeper 클러스터 리소스에 대한 템플릿입니다. 템플릿을 사용하면 OpenShift 리소스 생성 방법을 지정할 수 있습니다. |
4.2.43. ZookeeperClusterTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ZookeeperClusterSpec
| 속성 | 설명 |
|---|---|
| statefulset |
|
| Pod |
ZooKeeper |
| clientService |
ZooKeeper 클라이언트 |
| nodesService |
ZooKeeper 노드 |
| persistentVolumeClaim |
모든 ZooKeeper |
| podDisruptionBudget |
ZooKeeper |
| zookeeperContainer | ZooKeeper 컨테이너용 템플릿입니다. |
| serviceAccount | ZooKeeper 서비스 계정용 템플릿입니다. |
| jmxSecret | Zookeeper 클러스터의 시크릿에 대한 템플릿입니다. |
| podSet |
ZooKeeper |
4.2.44. EntityOperatorSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
| 속성 | 설명 |
|---|---|
| topicOperator | 주제 Operator 구성. |
| userOperator | User Operator 구성. |
| tlsSidecar | TLS 사이드카 구성입니다. |
| template |
엔터티 Operator 리소스에 대한 템플릿입니다. 템플릿을 사용하면 |
4.2.45. EntityTopicOperatorSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: entityOperatorSpec
EntityTopicOperatorSpec 스키마 속성의 전체 목록
주제 Operator를 구성합니다.
4.2.45.1. logging 링크 복사링크가 클립보드에 복사되었습니다!
Topic Operator에는 구성 가능한 로거가 있습니다.
-
rootLogger.level
Topic Operator는 Apache log4j2 로거 구현을 사용합니다.
Kafka 리소스 Kafka 리소스의 entityOperator.topicOperator 필드에 logging 속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j2.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name 및 logging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.
인라인 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
zookeeper:
# ...
entityOperator:
# ...
topicOperator:
watchedNamespace: my-topic-namespace
reconciliationIntervalSeconds: 60
logging:
type: inline
loggers:
rootLogger.level: INFO
logger.top.name: io.strimzi.operator.topic
logger.top.level: DEBUG
logger.toc.name: io.strimzi.operator.topic.TopicOperator
logger.toc.level: TRACE
logger.clients.level: DEBUG
# ...
Operator의 문제를 조사할 때 일반적으로 더 자세한 로그를 얻기 위해 rootLogger 를 DEBUG 로 변경하는 것으로 충분합니다. 그러나 로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.
외부 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
zookeeper:
# ...
entityOperator:
# ...
topicOperator:
watchedNamespace: my-topic-namespace
reconciliationIntervalSeconds: 60
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: topic-operator-log4j2.properties
# ...
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
4.2.45.2. EntityTopicOperatorSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| watchedNamespace | Topic Operator가 조사해야 하는 네임스페이스입니다. |
| string | |
| image | Topic Operator에 사용할 이미지입니다. |
| string | |
| reconciliationIntervalSeconds | 정기적인 조정 간격입니다. |
| integer | |
| zookeeperSessionTimeoutSeconds | ZooKeeper 세션에 대한 시간 초과입니다. |
| integer | |
| startupProbe | Pod 시작 확인. |
| livenessProbe | Pod 활성 검사입니다. |
| readinessProbe | Pod 준비 상태 확인 |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| topicMetadataMaxAttempts | 주제 메타데이터를 가져오는 시도 횟수입니다. |
| integer | |
| logging |
로깅 구성. 유형은 지정된 개체 내의 |
| jvmOptions | Pod에 대한 JVM 옵션. |
4.2.46. EntityUserOperatorSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: entityOperatorSpec
EntityUserOperatorSpec 스키마 속성의 전체 목록
사용자 Operator를 구성합니다.
4.2.46.1. logging 링크 복사링크가 클립보드에 복사되었습니다!
User Operator에 구성 가능한 로거가 있습니다.
-
rootLogger.level
User Operator는 Apache log4j2 로거 구현을 사용합니다.
Kafka 리소스의 entityOperator.userOperator 필드에 logging 속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j2.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name 및 logging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오. 인라인 로깅은 rootLogger.level 을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.
인라인 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
zookeeper:
# ...
entityOperator:
# ...
userOperator:
watchedNamespace: my-topic-namespace
reconciliationIntervalSeconds: 60
logging:
type: inline
loggers:
rootLogger.level: INFO
logger.uop.name: io.strimzi.operator.user
logger.uop.level: DEBUG
logger.abstractcache.name: io.strimzi.operator.user.operator.cache.AbstractCache
logger.abstractcache.level: TRACE
logger.jetty.level: DEBUG
# ...
Operator의 문제를 조사할 때 일반적으로 더 자세한 로그를 얻기 위해 rootLogger 를 DEBUG 로 변경하는 것으로 충분합니다. 그러나 로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.
외부 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
# ...
zookeeper:
# ...
entityOperator:
# ...
userOperator:
watchedNamespace: my-topic-namespace
reconciliationIntervalSeconds: 60
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: user-operator-log4j2.properties
# ...
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
4.2.46.2. EntityUserOperatorSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| watchedNamespace | User Operator가 조사해야 하는 네임스페이스입니다. |
| string | |
| image | User Operator에 사용할 이미지입니다. |
| string | |
| reconciliationIntervalSeconds | 정기적인 조정 간격입니다. |
| integer | |
| zookeeperSessionTimeoutSeconds |
|
| integer | |
| secretPrefix | Secret 이름으로 사용할 KafkaUser 이름에 추가할 접두사입니다. |
| string | |
| livenessProbe | Pod 활성 검사입니다. |
| readinessProbe | Pod 준비 상태 확인 |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| logging |
로깅 구성. 유형은 지정된 개체 내의 |
| jvmOptions | Pod에 대한 JVM 옵션. |
4.2.47. TlsSidecar 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: CruiseControlSpec, EntityOperatorSpec
Pod에서 실행되는 컨테이너이지만 지원 목적을 제공하는 TLS 사이드카를 구성합니다. AMQ Streams에서 TLS 사이드카는 TLS를 사용하여 구성 요소와 ZooKeeper 간의 통신을 암호화하고 해독합니다.
TLS 사이드카는 Entity Operator에서 사용됩니다.
TLS 사이드카는 Kafka.spec.entityOperator 의 tlsSidecar 속성을 사용하여 구성됩니다.
TLS 사이드카는 다음과 같은 추가 옵션을 지원합니다.
-
image -
resources -
logLevel -
readinessProbe -
livenessProbe
resources 속성은 TLS 사이드카에 할당된 메모리 및 CPU 리소스를 지정합니다.
image 속성은 사용할 컨테이너 이미지를 구성합니다.
readinessProbe 및 livenessProbe 속성은 TLS 사이드카에 대한 상태 점검 프로브를 구성합니다.
logLevel 속성은 로깅 수준을 지정합니다. 다음과 같은 로깅 수준이 지원됩니다.
- emerg
- 경고
- Crit
- err
- 경고
- notice
- info
- debug
기본값은 notice 입니다.
TLS 사이드카 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
# ...
entityOperator:
# ...
tlsSidecar:
resources:
requests:
cpu: 200m
memory: 64Mi
limits:
cpu: 500m
memory: 128Mi
# ...
4.2.47.1. TlsSidecar 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| image | 컨테이너의 Docker 이미지입니다. |
| string | |
| livenessProbe | Pod 활성 검사입니다. |
| logLevel |
TLS 사이드카의 로그 수준입니다. 기본값은 |
| 문자열 ([emerg, debug, crit, err, alert, notice, info] 중 하나) | |
| readinessProbe | Pod 준비 상태 확인 |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
4.2.48. EntityOperatorTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: entityOperatorSpec
| 속성 | 설명 |
|---|---|
| Deployment |
엔터티 Operator 배포를 위한 템플릿 |
| Pod |
엔터티 Operator |
| topicOperatorContainer | Entity Topic Operator 컨테이너의 템플릿입니다. |
| userOperatorContainer | Entity User Operator 컨테이너용 템플릿입니다. |
| tlsSidecarContainer | Entity Operator TLS 사이드카 컨테이너용 템플릿입니다. |
| serviceAccount | Entity Operator 서비스 계정에 대한 템플릿입니다. |
| entityOperatorRole | Entity Operator 역할에 대한 템플릿입니다. |
| topicOperatorRoleBinding | Entity Topic Operator RoleBinding에 대한 템플릿입니다. |
| userOperatorRoleBinding | Entity Topic Operator RoleBinding에 대한 템플릿입니다. |
4.2.49. DeploymentTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate
DeploymentTemplate 스키마 속성의 전체 목록
deploymentStrategy 를 사용하여 배포 구성이 변경될 때 이전 Pod를 새 Pod로 교체하는 데 사용되는 전략을 지정합니다.
다음 값 중 하나를 사용합니다.
-
RollingUpdate: Pod가 다운타임이 0으로 재시작됩니다. -
recreate: 새 Pod가 생성되기 전에 Pod가 종료됩니다.
Recreate 배포 전략을 사용하면 예비 리소스가 필요하지 않은 이점이 있지만 단점은 애플리케이션 다운 타임입니다.
배포 전략을 Recreate 로 설정하는 예.
# ...
template:
deployment:
deploymentStrategy: Recreate
# ...
이 구성 변경으로 인해 롤링 업데이트가 발생하지 않습니다.
4.2.49.1. DeploymentTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| metadata | 리소스에 적용되는 메타데이터입니다. |
| deploymentStrategy |
배포 구성 변경에 대한 Pod 교체 전략입니다. 유효한 값은 |
| 문자열([RollingUpdate, Recreate] 중 하나) |
4.2.50. certificateAuthority 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
클러스터 내에서 TLS 인증서가 사용되는 방법에 대한 구성입니다. 이는 클러스터 내의 내부 통신과 Kafka.spec.kafka.listeners.tls 를 통한 클라이언트 액세스에 사용되는 인증서에 모두 사용되는 인증서에 적용됩니다.
| 속성 | 설명 |
|---|---|
| generateCertificateAuthority | true인 경우 인증 기관 인증서가 자동으로 생성됩니다. 그렇지 않으면 사용자가 CA 인증서를 Secret에 제공해야 합니다. 기본값은 true입니다. |
| boolean | |
| generateSecretOwnerReference |
|
| boolean | |
| validityDays | 생성된 인증서의 수는 다음에 대해 유효해야 합니다. 기본값은 365입니다. |
| integer | |
| renewalDays |
인증서 갱신 기간의 일 수입니다. 이는 갱신 작업을 수행할 수 있는 인증서가 만료되기 전의 날입니다. |
| integer | |
| certificateExpirationPolicy |
|
| 문자열 ([replace-key, renew-certificate] 중 하나) |
4.2.51. CruiseControlSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
CruiseControlSpec 스키마 속성의 전체 목록
Cruise Control 클러스터를 구성합니다.
구성 옵션은 다음과 관련이 있습니다.
- 목표 구성
- 리소스 배포 목표에 대한 용량 제한
4.2.51.1. config 링크 복사링크가 클립보드에 복사되었습니다!
config 속성을 사용하여 Cruise Control 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
예외
Cruise Control 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.
- 보안(암호화, 인증 및 권한 부여)
- Kafka 클러스터에 대한 연결
- 클라이언트 ID 구성
- zookeeper 연결
- 웹 서버 구성
- 자체 복구
다음 접두사가 있는 속성은 설정할 수 없습니다.
-
bootstrap.servers -
capacity.config.file -
client.id -
failed.brokers.zk.path -
kafka.broker.failure.detection.enable -
metric.reporter.sampler.bootstrap.servers -
네트워크. -
request.reason.required -
보안. -
self.healing. -
ssl. -
topic.config.provider.class -
two.step. -
webserver.accesslog. -
webserver.api.urlprefix -
webserver.http. -
webserver.session.path -
zookeeper입니다.
config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음과 같은 예외를 포함하여 Cruise Control로 전달됩니다.
-
지원되는 TLS 버전 및 암호화 제품군에대한 모든
ssl구성 -
CORS(Cross-Origin Resource Sharing)를 사용하도록
webserver속성 구성
Cruise Control 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
# ...
cruiseControl:
# ...
config:
# Note that `default.goals` (superset) must also include all `hard.goals` (subset)
default.goals: >
com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal,
com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal
hard.goals: >
com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal
cpu.balance.threshold: 1.1
metadata.max.age.ms: 300000
send.buffer.bytes: 131072
webserver.http.cors.enabled: true
webserver.http.cors.origin: "*"
webserver.http.cors.exposeheaders: "User-Task-ID,Content-Type"
# ...
4.2.51.2. CORS(Cross-Origin Resource Sharing) 링크 복사링크가 클립보드에 복사되었습니다!
CORS(Cross-Origin Resource Sharing)는 REST API에 대한 액세스를 제어하기 위한 HTTP 메커니즘입니다. 제한 사항은 액세스 방법 또는 클라이언트 애플리케이션의 시작 URL에 있을 수 있습니다. 구성의 webserver.http.cors.enabled 속성을 사용하여 Cruise Control에서 CORS를 활성화할 수 있습니다. 활성화된 경우 CORS는 AMQ Streams와 다른 원래 URL이 있는 애플리케이션에서 Cruise Control REST API에 대한 읽기 액세스를 허용합니다. 이를 통해 애플리케이션은 지정된 원본의 애플리케이션에서 GET 요청을 사용하여 Cruise Control API를 통해 Kafka 클러스터에 대한 정보를 가져올 수 있습니다. 예를 들어 애플리케이션은 현재 클러스터 로드 또는 최신 최적화 제안에 대한 정보를 가져올 수 있습니다. POST 요청은 허용되지 않습니다.
Cruise Control과 함께 CORS를 사용하는 방법에 대한 자세한 내용은 Cruise Control CloudEvent의 REST API를 참조하십시오.
Cruise Control에 대한 CORS 활성화
Kafka.spec.cruiseControl.config 에서 CORS를 활성화하고 구성합니다.
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
# ...
cruiseControl:
# ...
config:
webserver.http.cors.enabled: true
webserver.http.cors.origin: "*"
webserver.http.cors.exposeheaders: "User-Task-ID,Content-Type"
# ...
4.2.51.3. Cruise Control REST API 보안 링크 복사링크가 클립보드에 복사되었습니다!
Cruise Control REST API는 HTTP Basic 인증 및 SSL로 보호되어 Kafka 브로커 해제와 같은 잠재적으로 안전하지 않은 Cruise Control 작업으로부터 클러스터를 보호합니다. AMQ Streams의 Cruise Control은 이러한 설정을 활성화된 경우에만 사용하는 것이 좋습니다.
그러나 다음 Cruise Control 구성을 지정하여 이러한 설정을 비활성화할 수 있습니다.
-
기본 제공 HTTP 기본 인증을 비활성화하려면
webserver.security.enable을false로 설정합니다. -
기본 제공 SSL을 비활성화하려면
webserver.ssl.enable을false로 설정합니다.
API 권한 부여, 인증 및 SSL을 비활성화하는 Cruise Control 구성
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
# ...
cruiseControl:
config:
webserver.security.enable: false
webserver.ssl.enable: false
# ...
4.2.51.4. brokerCapacity 링크 복사링크가 클립보드에 복사되었습니다!
Cruise Control은 용량 제한을 사용하여 리소스 용량 제한에 대한 최적화 목표를 손상시킵니다. 이러한 유형의 목표는 다음과 같습니다.
-
DiskCapacityGoal- 디스크 사용률 용량 -
CpuCapacityGoal- CPU 사용률 용량 -
NetworkInboundCapacityGoal- 네트워크 인바운드 사용 용량 -
NetworkOutboundCapacityGoal- 네트워크 아웃바운드 사용률 용량
Kafka.spec.cruiseControl 의 brokerCapacity 속성에서 Kafka 브로커 리소스에 대한 용량 제한을 지정합니다. 기본적으로 활성화되어 있으며 기본값을 변경할 수 있습니다. 다음 브로커 리소스에 대해 용량 제한을 설정할 수 있습니다.
-
cpu- 밀리코어 또는 CPU 코어의 CPU 리소스(기본값: 1) -
inboundNetwork- 초당 바이트 단위의 인바운드 네트워크 처리량(기본값: 10000KiB/s) -
outboundNetwork- 초당 바이트 단위의 아웃 바운드 네트워크 처리량(기본값: 10000KiB/s)
네트워크 처리량의 경우 표준 OpenShift 바이트 단위(K, M, G)와 함께 정수 값을 사용하거나 초당 Ki, Mi, Gi(Ki, Mi, Gi)에 해당하는 2바이트의 2바이트(위력)를 사용합니다.
디스크 및 CPU 용량 제한은 AMQ Streams에 의해 자동으로 생성되므로 설정할 필요가 없습니다. CPU 목표를 사용할 때 정확한 리밸런스 제안을 보장하기 위해 Kafka.spec.kafka.resources 의 CPU 제한과 동일한 CPU 요청을 설정할 수 있습니다. 이렇게 하면 모든 CPU 리소스가 미리 예약되며 항상 사용할 수 있습니다. 이 구성을 통해 Cruise Control은 CPU 목표에 따라 리밸런스 제안을 준비할 때 CPU 사용률을 적절하게 평가할 수 있습니다. Kafka.spec.kafka.resources 의 CPU 제한과 동일한 CPU 요청을 설정할 수 없는 경우 동일한 정확도에 대해 CPU 용량을 수동으로 설정할 수 있습니다.
2바이트 단위를 사용한 Cruise Control brokerCapacity 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
# ...
cruiseControl:
# ...
brokerCapacity:
cpu: "2"
inboundNetwork: 10000KiB/s
outboundNetwork: 10000KiB/s
# ...
4.2.51.5. 용량 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
브로커는 이기종 네트워크 또는 CPU 리소스가 있는 노드에서 실행될 수 있습니다. 이 경우 각 브로커에 대해 네트워크 용량 및 CPU 제한을 설정하는 덮어쓰기 를 지정합니다. 이 덮어쓰기를 사용하면 브로커 간에 정확한 균형을 조정할 수 있습니다. 다음 브로커 리소스에 대해 덮어쓰기 용량 제한을 설정할 수 있습니다.
-
cpu- 밀리코어 또는 CPU 코어의 CPU 리소스(기본값: 1) -
inboundNetwork- 초당 바이트 단위의 인바운드 네트워크 처리량(기본값: 10000KiB/s) -
outboundNetwork- 초당 바이트 단위의 아웃 바운드 네트워크 처리량(기본값: 10000KiB/s)
Cruise Control 용량의 예는 2바이트 단위를 사용하여 구성을 재정의합니다.
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
# ...
cruiseControl:
# ...
brokerCapacity:
cpu: "1"
inboundNetwork: 10000KiB/s
outboundNetwork: 10000KiB/s
overrides:
- brokers: [0]
cpu: "2.755"
inboundNetwork: 20000KiB/s
outboundNetwork: 20000KiB/s
- brokers: [1, 2]
cpu: 3000m
inboundNetwork: 30000KiB/s
outboundNetwork: 30000KiB/s
자세한 내용은 BrokerCapacity 스키마 참조 를 참조하십시오.
4.2.51.6. logging 링크 복사링크가 클립보드에 복사되었습니다!
크루즈 컨트롤에는 자체 구성 가능한 로거가 있습니다.
-
rootLogger.level
cruise Control은 Apache log4j2 로거 구현을 사용합니다.
로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name 및 logging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.
인라인 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
# ...
spec:
cruiseControl:
# ...
logging:
type: inline
loggers:
rootLogger.level: INFO
logger.exec.name: com.linkedin.kafka.cruisecontrol.executor.Executor
logger.exec.level: TRACE
logger.go.name: com.linkedin.kafka.cruisecontrol.analyzer.GoalOptimizer
logger.go.level: DEBUG
# ...
Cruise Control 관련 문제를 조사할 때 일반적으로 더 자세한 로그를 얻기 위해 rootLogger 를 DEBUG 로 변경하는 것으로 충분합니다. 그러나 로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.
외부 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
# ...
spec:
cruiseControl:
# ...
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: cruise-control-log4j.properties
# ...
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
4.2.51.7. CruiseControlSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| image | 포드의 Docker 이미지입니다. |
| string | |
| tlsSidecar |
|
| resources | Cruise Control 컨테이너를 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| livenessProbe | Cruise Control 컨테이너에 대한 Pod 활성 검사입니다. |
| readinessProbe | Cruise Control 컨테이너에 대한 Pod 준비 상태 검사 |
| jvmOptions | Cruise Control 컨테이너에 대한 JVM 옵션. |
| logging |
Cruise Control을 위한 로깅 구성(Log4j 2). 유형은 지정된 개체 내의 |
| template |
Cruise Control 리소스, |
| brokerCapacity |
Cruise Control |
| config | 크루즈 제어 구성. 전체 구성 옵션 목록은 https://github.com/linkedin/cruise-control/wiki/Configurations 에서 참조하십시오. 접두사가 있는 속성은 bootstrap.servers, client.id, zookeeper., network., network., security., failed.brokers.zk.path,webserver.http., webserver.urlprefix, webserver.path, webserver.accesslog., request.reason.required, request.reason.required, request.reason.required, metric.reporter.sampler.bootstrap.servers, capacity.config.file, self.config.file, self.healing., kafka.broker.failure.detection.enable, topic.config.provider.class (예: ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols, webserver.http.cors.enabled, webserver.http.cors.origin, webserver.http.cors.exposeheaders, webserver.security.enable, webserver.ssl.enable). |
| map | |
| metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
4.2.52. CruiseControlTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: CruiseControlSpec
| 속성 | 설명 |
|---|---|
| Deployment |
크루즈 제어 배포를 위한 템플릿 |
| Pod |
Cruise Control |
| apiService |
Cruise Control API |
| podDisruptionBudget |
Cruise Control |
| cruiseControlContainer | Cruise Control 컨테이너용 템플릿입니다. |
| tlsSidecarContainer |
|
| serviceAccount | Cruise Control 서비스 계정에 대한 템플릿입니다. |
4.2.53. BrokerCapacity 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: CruiseControlSpec
| 속성 | 설명 |
|---|---|
| disk |
|
| string | |
| cpuUtilization |
|
| integer | |
| cpu | 코어 또는 밀리코어의 CPU 리소스에 대한 브로커 용량입니다. 예를 들어 1, 1.500, 1500m입니다. 유효한 CPU 리소스 단위에 대한 자세한 내용은 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu 에서 참조하십시오. |
| string | |
| inboundNetwork | 초당 인바운드 네트워크 처리량을 위한 브로커 용량(바이트)입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s |
| string | |
| outboundNetwork | 초당 바이트 단위의 아웃바운드 네트워크 처리량을 위한 브로커 용량입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s |
| string | |
| 덮어쓰기 |
개별 브로커에 대한 재정의 |
4.2.54. BrokerCapacityOverride 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: BrokerCapacity
| 속성 | 설명 |
|---|---|
| brokers | Kafka 브로커 목록(broker 식별자). |
| 정수 배열 | |
| cpu | 코어 또는 밀리코어의 CPU 리소스에 대한 브로커 용량입니다. 예를 들어 1, 1.500, 1500m입니다. 유효한 CPU 리소스 단위에 대한 자세한 내용은 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu 에서 참조하십시오. |
| string | |
| inboundNetwork | 초당 인바운드 네트워크 처리량을 위한 브로커 용량(바이트)입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s |
| string | |
| outboundNetwork | 초당 바이트 단위의 아웃바운드 네트워크 처리량을 위한 브로커 용량입니다. 표준 OpenShift 바이트 단위(K, M, G) 또는 2바이트(두 개의 전원)(초당 Ki, Mi, Gi)와 함께 정수 값을 사용합니다. 예: 10000KiB/s |
| string |
4.2.55. JmxTransSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
JmxTransSpec 유형이 더 이상 사용되지 않습니다.
사용 대상: KafkaSpec
| 속성 | 설명 |
|---|---|
| image | JmxTrans에 사용할 이미지입니다. |
| string | |
| outputDefinitions |
나중에 참조할 출력 호스트를 정의합니다. 이러한 속성에 대한 자세한 내용은 |
| logLevel | JmxTrans 배포의 로깅 수준을 설정합니다. 자세한 내용은 JmxTrans Logging Level 을 참조하십시오. |
| string | |
| kafkaQueries |
Kafka 브로커로 보내 각 브로커에서 읽을 데이터를 정의하는 쿼리입니다. 이러한 속성에 대한 자세한 내용은 |
|
| |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| template | JmxTrans 리소스에 대한 템플릿입니다. |
4.2.56. JmxTransOutputDefinitionTemplate schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JmxTransSpec
| 속성 | 설명 |
|---|---|
| outputType | 내보낼 데이터의 형식을 설정하기 위한 템플릿입니다. 자세한 내용은 JmxTrans OutputWriters 를 참조하십시오. |
| string | |
| host | 데이터를 내보낼 원격 호스트의 DNS/hostname입니다. |
| string | |
| port | 데이터를 푸시하는 원격 호스트의 포트입니다. |
| integer | |
| flushDelayInSeconds | 새 데이터 세트를 푸시하기 전에 JmxTrans가 대기하는 시간(초)입니다. |
| integer | |
| typeNames | 와일드카드 쿼리에 대한 응답으로 데이터를 필터링하기 위한 템플릿입니다. 자세한 내용은 JmxTrans 쿼리를 참조하십시오. |
| 문자열 배열 | |
| name | 출력 정의의 이름을 설정하기 위한 템플릿입니다. 이는 쿼리 결과를 전송해야 하는 위치를 식별하는 데 사용됩니다. |
| string |
4.2.57. JmxTransQueryTemplate schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JmxTransSpec
| 속성 | 설명 |
|---|---|
| targetMBean | 특정가 아닌 와일드카드를 사용하는 경우 여러 data에서 데이터가 수집됩니다. 그러지 않으면 해당 지정된 태그에서 데이터가 수집됩니다. |
| string | |
| 속성 | 대상의 특성을 포함해야 하는 속성을 결정합니다. |
| 문자열 배열 | |
| 출력 | spec.kafka.jmxTrans.outputDefinitions에 지정된 출력 정의 이름 목록 및 여기서 푸시된 위치 및 데이터 포멧을 정의합니다. |
| 문자열 배열 |
4.2.58. JmxTransTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: JmxTransSpec
| 속성 | 설명 |
|---|---|
| Deployment |
JmxTrans |
| Pod |
JmxTrans |
| 컨테이너 | JmxTrans 컨테이너용 템플릿. |
| serviceAccount | JmxTrans 서비스 계정에 대한 템플릿입니다. |
4.2.59. KafkaExporterSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaSpec
| 속성 | 설명 |
|---|---|
| image | 포드의 Docker 이미지입니다. |
| string | |
| groupRegex |
수집할 소비자 그룹을 지정하는 정규식입니다. 기본값은 |
| string | |
| topicRegex |
수집할 주제를 지정하는 정규식입니다. 기본값은 |
| string | |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| logging |
지정된 심각도 또는 위의 메시지만 기록합니다. 유효한 수준: [ |
| string | |
| enableSaramaLogging | Kafka Exporter에서 사용하는 Go 클라이언트 라이브러리인 Sarama 로깅을 활성화합니다. |
| boolean | |
| template | 배포 템플릿 및 포드 사용자 지정. |
| livenessProbe | Pod 활동성 점검입니다. |
| readinessProbe | Pod 준비 상태 점검. |
4.2.60. KafkaExporterTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaExporterSpec
| 속성 | 설명 |
|---|---|
| Deployment |
Kafka 내보내기 배포를 위한 템플릿 |
| Pod |
Kafka 내보내기 |
| service |
|
| 컨테이너 | Kafka 내보내기 컨테이너용 템플릿입니다. |
| serviceAccount | Kafka Exporter 서비스 계정에 대한 템플릿입니다. |
4.2.61. KafkaStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: Kafka
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| 리스너 | 내부 및 외부 리스너 주소입니다. |
| clusterId | Kafka 클러스터 ID. |
| string |
4.2.62. 조건 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaBridgeStatus, KafkaConnectorStatus, KafkaConnectStatus, KafkaMirrorMaker2Status, KafkaMirrorMakerStatus, KafkaRebalanceStatus, KafkaStatus, KafkaTopicStatus, KafkaUserStatus
| 속성 | 설명 |
|---|---|
| type | 리소스의 다른 조건을 구분하는 데 사용되는 조건의 고유 식별자입니다. |
| string | |
| status | 조건의 상태, 즉 True, False 또는 Unknown입니다. |
| string | |
| lastTransitionTime | 형식의 조건이 하나의 상태에서 다른 상태로 변경 된 마지막 시간입니다. 필요한 형식은 UTC 시간대의 'yyy-MM-ddTHH:mm:ssZ'입니다. |
| string | |
| reason | 조건의 마지막 전환 이유( CamelCase의 단일 단어). |
| string | |
| message | 조건의 마지막 전환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. |
| string |
4.2.63. ListenerStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaStatus
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| name | 리스너의 이름입니다. |
| string | |
| 주소 | 이 리스너의 주소 목록입니다. |
| bootstrapServers |
이 리스너를 사용하여 Kafka 클러스터에 연결하기 위한 쉼표로 구분된 |
| string | |
| certificates |
지정된 리스너에 연결할 때 서버의 ID를 확인하는 데 사용할 수 있는 TLS 인증서 목록입니다. |
| 문자열 배열 |
4.2.64. ListenerAddress 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ListenerStatus
| 속성 | 설명 |
|---|---|
| host | Kafka 부트스트랩 서비스의 DNS 이름 또는 IP 주소입니다. |
| string | |
| port | Kafka 부트스트랩 서비스의 포트입니다. |
| integer |
4.2.65. KafkaConnect 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| spec | Kafka Connect 클러스터의 사양입니다. |
| status | Kafka Connect 클러스터의 상태입니다. |
4.2.66. KafkaConnectSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnect
KafkaConnectSpec 스키마 속성의 전체 목록
Kafka Connect 클러스터를 구성합니다.
4.2.66.1. config 링크 복사링크가 클립보드에 복사되었습니다!
config 속성을 사용하여 Kafka Connect 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
일부 옵션에는 기본값이 있습니다.
-
기본값
connect-cluster를 사용하여group.id -
default 값이
connect-cluster-offsets인offset.storage.topic -
기본값
connect-cluster-configs가 있는config.storage.topic -
status.storage.topicwith default 값이connect-cluster-status -
key.converterwith default valueorg.apache.kafka.connect.json.JsonConverter -
value.converterwith default valueorg.apache.kafka.connect.json.JsonConverter
이러한 옵션은 KafkaConnect.spec.config 속성에 없는 경우 자동으로 구성됩니다.
예외
Apache Kafka 설명서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 리스너 및 REST 인터페이스 구성
- 플러그인 경로 구성
다음 접두사가 있는 속성은 설정할 수 없습니다.
-
bootstrap.servers -
consumer.interceptor.classes -
리스너. -
plugin.path -
producer.interceptor.classes -
rest. -
sasl. -
보안. -
ssl.
config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 대한 다음 예외를 포함하여 Kafka Connect로 전달됩니다.
-
지원되는 TLS 버전 및 암호화 제품군에대한 모든
ssl구성
Kafka Connect 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect
spec:
# ...
config:
group.id: my-connect-cluster
offset.storage.topic: my-connect-cluster-offsets
config.storage.topic: my-connect-cluster-configs
status.storage.topic: my-connect-cluster-status
key.converter: org.apache.kafka.connect.json.JsonConverter
value.converter: org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable: true
value.converter.schemas.enable: true
config.storage.replication.factor: 3
offset.storage.replication.factor: 3
status.storage.replication.factor: 3
# ...
Cluster Operator는 제공된 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Connect 클러스터가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 Kafka Connect 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.
4.2.66.2. logging 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Connect에는 자체 구성 가능한 로거가 있습니다.
-
connect.root.logger.level -
log4j.logger.org.reflections
추가 로거는 실행 중인 Kafka Connect 플러그인에 따라 추가됩니다.
curl 요청을 사용하여 Kafka 브로커 Pod에서 실행되는 Kafka Connect 로거의 전체 목록을 가져옵니다.
curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/
Kafka Connect는 Apache log4j 로거 구현을 사용합니다.
로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name 및 logging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.
인라인 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
# ...
logging:
type: inline
loggers:
connect.root.logger.level: INFO
log4j.logger.org.apache.kafka.connect.runtime.WorkerSourceTask: TRACE
log4j.logger.org.apache.kafka.connect.runtime.WorkerSinkTask: DEBUG
# ...
로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.
외부 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
# ...
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: connect-logging.log4j
# ...
구성되지 않은 모든 로거는 수준이 OFF 로 설정되어 있습니다.
Cluster Operator를 사용하여 Kafka Connect를 배포한 경우 Kafka Connect 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.
외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
4.2.66.3. KafkaConnectSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| 버전 | Kafka Connect 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다. |
| string | |
| replicas |
Kafka Connect 그룹의 Pod 수입니다. 기본값은 |
| integer | |
| image | 포드의 Docker 이미지입니다. |
| string | |
| bootstrapServers | 연결할 부트스트랩 서버입니다. 이 값은 < hostname > :_<port>_ 쌍의 쉼표로 구분된 목록으로 지정해야 합니다. |
| string | |
| tls | TLS 구성입니다. |
| 인증 |
Kafka Connect에 대한 인증 구성 유형은 지정된 오브젝트 내의 |
|
| |
| config | Kafka Connect 구성입니다. 접두사가 있는 속성은 ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes(예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.cipher.protocol, ssl.protocols.protocols). |
| map | |
| resources | CPU 및 메모리 리소스 및 요청된 초기 리소스에 대한 최대 제한입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| livenessProbe | Pod 활성 검사입니다. |
| readinessProbe | Pod 준비 상태 확인 |
| jvmOptions | Pod에 대한 JVM 옵션. |
| jmxOptions | ScanSetting 옵션. |
| logging |
Kafka Connect의 로깅 구성입니다. 유형은 지정된 개체 내의 |
| clientRackInitImage |
|
| string | |
| Rack |
|
| tracing |
Kafka Connect에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 |
| template |
Kafka Connect 및 Kafka MirrorECDHE 2 리소스에 대한 템플릿입니다. 템플릿을 사용하면 |
| externalConfiguration | Secrets 또는 ConfigMaps의 데이터를 Kafka Connect Pod로 전달하여 커넥터를 구성하는 데 사용합니다. |
| BUILD | Connect 컨테이너 이미지를 빌드하는 방법을 구성합니다. 선택 사항: |
| metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
4.2.67. clientTLS 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec
KafkaConnect, KafkaBridge, KafkaMirror, KafkaMirrorMaker2를 클러스터에 연결하기 위해 TLS 신뢰할 수 있는 인증서를 구성합니다.
4.2.67.1. trustedCertificates 링크 복사링크가 클립보드에 복사되었습니다!
trustedCertificates 속성을 사용하여 보안 목록을 제공합니다.
4.2.67.2. clientTLS 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| trustedCertificates | TLS 연결에 대한 신뢰할 수 있는 인증서입니다. |
4.2.68. KafkaClientAuthenticationTls schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationTls 스키마 속성의 전체 목록
mTLS 인증을 구성하려면 type 속성을 tls. mTLS에서 TLS 인증서를 사용하여 인증합니다.
4.2.68.1. certificateAndKey 링크 복사링크가 클립보드에 복사되었습니다!
인증서는 certificateAndKey 속성에 지정되며 항상 OpenShift 시크릿에서 로드됩니다. 시크릿의 인증서는 public 및 private의 두 가지 키 아래에 X509 형식으로 저장해야 합니다.
User Operator에서 생성한 보안을 사용하거나 인증에 사용되는 키로 자체 TLS 인증서 파일을 생성한 다음 파일에서 Secret 을 생성할 수 있습니다.
oc create secret generic MY-SECRET \
--from-file=MY-PUBLIC-TLS-CERTIFICATE-FILE.crt \
--from-file=MY-PRIVATE.key
mTLS 인증은 TLS 연결에서만 사용할 수 있습니다.
mTLS 구성의 예
authentication:
type: tls
certificateAndKey:
secretName: my-secret
certificate: my-public-tls-certificate-file.crt
key: private.key
4.2.68.2. KafkaClientAuthenticationTls 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type 속성은 KafkaClientAuthenticationScramSha256, , KafkaClientAuthentication ScramSha512KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth 와의 사용을 구분하는 구분자입니다. KafkaClientAuthenticationTls 유형의 tls 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| certificateAndKey |
인증서 및 개인 키 쌍을 보유한 보안에 대한 참조입니다. |
| type |
|
| string |
4.2.69. KafkaClientAuthenticationScramSha256 schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationScramSha256 스키마 속성의 전체 목록
SASL 기반 SCRAM-SHA-256 인증을 구성하려면 type 속성을 scram-sha-256 으로 설정합니다. SCRAM-SHA-256 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.
4.2.69.1. 사용자 이름 링크 복사링크가 클립보드에 복사되었습니다!
사용자 이름 속성에 사용자 이름을 지정합니다.
4.2.69.2. passwordSecret 링크 복사링크가 클립보드에 복사되었습니다!
passwordSecret 속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.
User Operator가 생성한 시크릿을 사용할 수 있습니다.
필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용할 수 있습니다.
echo -n PASSWORD > MY-PASSWORD.txt
그런 다음 텍스트 파일에서 보안을 생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Kafka Connect에 대한 SCRAM-SHA-256 클라이언트 인증의 예
apiVersion: v1
kind: Secret
metadata:
name: my-connect-secret-name
type: Opaque
data:
my-connect-password-field: LFTIyFRFlMmU2N2Tm
secretName 속성에는 Secret 의 이름이 포함되어 있으며, password 속성에는 암호가 시크릿 내에 저장되는 키 이름이 포함됩니다.
암호 속성에 실제 암호 를 지정하지 마십시오.
Kafka Connect에 대한 SASL 기반 SCRAM-SHA-256 클라이언트 인증 구성의 예
authentication:
type: scram-sha-256
username: my-connect-username
passwordSecret:
secretName: my-connect-secret-name
password: my-connect-password-field
4.2.69.3. KafkaClientAuthenticationScramSha256 schema properties 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| passwordSecret |
암호가 있는 |
| type |
|
| string | |
| 사용자 이름 | 인증에 사용되는 사용자 이름입니다. |
| string |
4.2.70. PasswordSecretSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
KafkaClientAuthenticationOAuth, KafkaClientAuthenticationPlain, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512
| 속성 | 설명 |
|---|---|
| 암호 | 암호가 저장된 시크릿의 키 이름입니다. |
| string | |
| secretName | 암호가 포함된 시크릿의 이름입니다. |
| string |
4.2.71. KafkaClientAuthenticationScramSha512 schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationScramSha512 스키마 속성의 전체 목록
SASL 기반 SCRAM-SHA-512 인증을 구성하려면 type 속성을 scram-sha-512 로 설정합니다. SCRAM-SHA-512 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.
4.2.71.1. 사용자 이름 링크 복사링크가 클립보드에 복사되었습니다!
사용자 이름 속성에 사용자 이름을 지정합니다.
4.2.71.2. passwordSecret 링크 복사링크가 클립보드에 복사되었습니다!
passwordSecret 속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.
User Operator가 생성한 시크릿을 사용할 수 있습니다.
필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용할 수 있습니다.
echo -n PASSWORD > MY-PASSWORD.txt
그런 다음 텍스트 파일에서 보안을 생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Kafka Connect에 대한 SCRAM-SHA-512 클라이언트 인증의 예
apiVersion: v1
kind: Secret
metadata:
name: my-connect-secret-name
type: Opaque
data:
my-connect-password-field: LFTIyFRFlMmU2N2Tm
secretName 속성에는 Secret 의 이름이 포함되어 있으며, password 속성에는 암호가 시크릿 내에 저장되는 키 이름이 포함됩니다.
암호 속성에 실제 암호 를 지정하지 마십시오.
Kafka Connect에 대한 SASL 기반 SCRAM-SHA-512 클라이언트 인증 구성의 예
authentication:
type: scram-sha-512
username: my-connect-username
passwordSecret:
secretName: my-connect-secret-name
password: my-connect-password-field
4.2.71.3. KafkaClientAuthenticationScramSha512 schema properties 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| passwordSecret |
암호가 있는 |
| type |
|
| string | |
| 사용자 이름 | 인증에 사용되는 사용자 이름입니다. |
| string |
4.2.72. KafkaClientAuthenticationPlain schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationPlain 스키마 속성의 전체 목록
SASL 기반 PLAIN 인증을 구성하려면 type 속성을 plain 로 설정합니다. SASL PLAIN 인증 메커니즘에는 사용자 이름과 암호가 필요합니다.
SASL PLAIN 메커니즘은 네트워크에서 사용자 이름과 암호를 일반 텍스트로 전송합니다. TLS 암호화가 활성화된 경우에만 SASL PLAIN 인증을 사용하십시오.
4.2.72.1. 사용자 이름 링크 복사링크가 클립보드에 복사되었습니다!
사용자 이름 속성에 사용자 이름을 지정합니다.
4.2.72.2. passwordSecret 링크 복사링크가 클립보드에 복사되었습니다!
passwordSecret 속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.
User Operator가 생성한 시크릿을 사용할 수 있습니다.
필요한 경우 암호가 포함된 텍스트 파일을 일반 텍스트로 생성하여 인증에 사용합니다.
echo -n PASSWORD > MY-PASSWORD.txt
그런 다음 텍스트 파일에서 보안을 생성하여 암호에 고유한 필드 이름(키)을 설정할 수 있습니다.
oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt
Kafka Connect에 대한 PLAIN 클라이언트 인증의 예
apiVersion: v1
kind: Secret
metadata:
name: my-connect-secret-name
type: Opaque
data:
my-password-field-name: LFTIyFRFlMmU2N2Tm
secretName 속성에는 Secret 의 이름이 포함되어 있으며 password 속성에는 암호가 시크릿 내에 저장된 키 이름이 포함됩니다.
암호 속성에 실제 암호 를 지정하지 마십시오.
SASL 기반 PLAIN 클라이언트 인증 구성의 예
authentication:
type: plain
username: my-connect-username
passwordSecret:
secretName: my-connect-secret-name
password: my-password-field-name
4.2.72.3. KafkaClientAuthenticationPlain schema properties 링크 복사링크가 클립보드에 복사되었습니다!
type 속성은 KafkaClientAuthenticationPlain 유형과 KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthentication Sha512 , KafkaClientAuthentication OAuth 사용을 구분하는 판별자입니다. KafkaClientAuthenticationPlain 유형의 값이 plain 이어야 합니다.
| 속성 | 설명 |
|---|---|
| passwordSecret |
암호가 있는 |
| type |
|
| string | |
| 사용자 이름 | 인증에 사용되는 사용자 이름입니다. |
| string |
4.2.73. KafkaClientAuthenticationOAuth schema reference 링크 복사링크가 클립보드에 복사되었습니다!
KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2ClusterSpec, KafkaMirrorMakerConsumerSpec, KafkaMirrorMakerMakerProducerSpec
KafkaClientAuthenticationOAuth 스키마 속성의 전체 목록
OAuth 클라이언트 인증을 구성하려면 type 속성을 oauth 로 설정합니다.
OAuth 인증은 다음 옵션 중 하나를 사용하여 구성할 수 있습니다.
- 클라이언트 ID 및 시크릿
- 클라이언트 ID 및 새로 고침 토큰
- 액세스 토큰
- 사용자 이름 및 암호
- TLS
클라이언트 ID 및 시크릿
인증에 사용되는 클라이언트 ID 및 클라이언트 시크릿과 함께 tokenEndpointUri 속성에서 권한 부여 서버의 주소를 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고 클라이언트 ID 및 시크릿을 사용하여 인증하며 Kafka 브로커로 인증하는 데 사용할 액세스 토큰을 가져옵니다. clientSecret 속성에서 클라이언트 시크릿이 포함된 보안에 대한 링크를 지정합니다.
클라이언트 ID 및 클라이언트 보안을 사용한 OAuth 클라이언트 인증 예
authentication:
type: oauth
tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
clientId: my-client-id
clientSecret:
secretName: my-client-oauth-secret
key: client-secret
필요한 경우 선택적으로 범위 및 대상 을 지정할 수 있습니다.
클라이언트 ID 및 새로 고침 토큰
OAuth 클라이언트 ID 및 새로 고침 토큰과 함께 tokenEndpointUri 속성에서 OAuth 서버의 주소를 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고, 클라이언트 ID 및 새로 고침 토큰을 사용하여 인증하고, Kafka 브로커와 함께 인증하는 데 사용할 액세스 토큰을 가져옵니다. refreshToken 속성에서 새로 고침 토큰이 포함된 보안에 대한 링크를 지정합니다.
클라이언트 ID 및 새로 고침 토큰을 사용한 OAuth 클라이언트 인증의 예
authentication:
type: oauth
tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
clientId: my-client-id
refreshToken:
secretName: my-refresh-token-secret
key: refresh-token
액세스 토큰
Kafka 브로커를 사용하여 인증에 사용되는 액세스 토큰을 직접 구성할 수 있습니다. 이 경우 tokenEndpointUri 를 지정하지 않습니다. accessToken 속성에서 액세스 토큰이 포함된 보안에 대한 링크를 지정합니다.
액세스 토큰만 사용하는 OAuth 클라이언트 인증 예
authentication:
type: oauth
accessToken:
secretName: my-access-token-secret
key: access-token
사용자 이름 및 암호
OAuth 사용자 이름 및 암호 구성은 OAuth 리소스 소유자 암호 부여 메커니즘을 사용합니다. 이 메커니즘은 더 이상 사용되지 않으며 클라이언트 자격 증명(ID 및 시크릿)을 사용할 수 없는 환경에서만 통합을 사용하도록 지원됩니다. 액세스 관리 시스템에서 다른 접근 방식을 지원하지 않거나 사용자 계정이 인증에 필요한 경우 사용자 계정을 사용해야 할 수 있습니다.
일반적인 방법은 클라이언트 애플리케이션을 나타내는 권한 부여 서버에 특수 사용자 계정을 생성하는 것입니다. 그런 다음 무작위로 생성된 긴 암호와 매우 제한된 권한 집합을 계정에 제공합니다. 예를 들어 계정은 Kafka 클러스터에만 연결할 수 있지만 다른 서비스를 사용하거나 사용자 인터페이스에 로그인할 수 없습니다.
새로 고침 토큰 메커니즘을 먼저 사용하는 것이 좋습니다.
토큰EndpointUri 속성에서 권한 부여 서버의 주소를 클라이언트 ID, 사용자 이름 및 인증에 사용되는 암호와 함께 구성할 수 있습니다. OAuth 클라이언트는 OAuth 서버에 연결하고, 사용자 이름, 암호, 클라이언트 ID 및 선택적으로 Kafka 브로커로 인증하는 데 사용할 액세스 토큰을 가져오는 클라이언트 시크릿을 사용하여 인증합니다.
passwordSecret 속성에서 암호가 포함된 보안에 대한 링크를 지정합니다.
일반적으로 공용 OAuth 클라이언트를 사용하여 clientId 를 구성해야 합니다. 기밀 OAuth 클라이언트를 사용하는 경우 clientSecret 을 구성해야 합니다.
사용자 이름을 사용한 OAuth 클라이언트 인증 예 및 공개 클라이언트와 암호
authentication:
type: oauth
tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
username: my-username
passwordSecret:
secretName: my-password-secret-name
password: my-password-field-name
clientId: my-public-client-id
사용자 이름과 함께 기밀 클라이언트가 있는 암호를 사용한 OAuth 클라이언트 인증의 예
authentication:
type: oauth
tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
username: my-username
passwordSecret:
secretName: my-password-secret-name
password: my-password-field-name
clientId: my-confidential-client-id
clientSecret:
secretName: my-confidential-client-oauth-secret
key: client-secret
필요한 경우 선택적으로 범위 및 대상 을 지정할 수 있습니다.
TLS
HTTPS 프로토콜을 사용하여 OAuth 서버에 액세스하는 경우 이 인증서에서 사용하는 TLS 인증서가 신뢰할 수 있는 인증 기관에서 서명하고 해당 호스트 이름이 인증서에 나열되는 경우 추가 구성이 필요하지 않습니다.
OAuth 서버가 자체 서명된 인증서를 사용하거나 신뢰할 수 없는 인증 기관에서 서명한 인증서를 사용하는 경우 사용자 정의 리소스에서 신뢰할 수 있는 인증서 목록을 구성할 수 있습니다. tlsTrustedCertificates 속성에는 인증서가 저장되는 키 이름이 있는 시크릿 목록이 포함되어 있습니다. 인증서는 X509 형식으로 저장해야 합니다.
제공되는 TLS 인증서의 예
authentication:
type: oauth
tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
clientId: my-client-id
refreshToken:
secretName: my-refresh-token-secret
key: refresh-token
tlsTrustedCertificates:
- secretName: oauth-server-ca
certificate: tls.crt
OAuth 클라이언트는 기본적으로 OAuth 서버의 호스트 이름이 인증서 제목 또는 대체 DNS 이름 중 하나와 일치하는지 확인합니다. 필요하지 않은 경우 호스트 이름 확인을 비활성화할 수 있습니다.
비활성화된 TLS 호스트 이름 확인의 예
authentication:
type: oauth
tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
clientId: my-client-id
refreshToken:
secretName: my-refresh-token-secret
key: refresh-token
disableTlsHostnameVerification: true
4.2.73.1. KafkaClientAuthenticationOAuth 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
type 속성은 KafkaClientAuthenticationOAuth 유형 사용을 KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthentication Sha512 , KafkaClientAuthentication Plain 과 구별하는 판별자입니다. KafkaClientAuthenticationOAuth 유형에 대한 oauth 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| accessToken | 권한 부여 서버에서 가져온 액세스 토큰이 포함된 OpenShift 보안에 대한 링크입니다. |
| accessTokenIsJwt |
액세스 토큰을 JWT로 처리할지 여부를 구성합니다. 권한 부여 서버가 불투명 토큰을 반환하는 경우 |
| boolean | |
| 대상 |
권한 부여 서버에 대해 인증할 때 사용할 OAuth 대상입니다. 일부 권한 부여 서버에는 대상을 명시적으로 설정해야 합니다. 가능한 값은 권한 부여 서버 구성 방법에 따라 다릅니다. 기본적으로 토큰 끝점 요청을 수행할 때 |
| string | |
| clientId | Kafka 클라이언트가 OAuth 서버에 대해 인증하고 토큰 끝점 URI를 사용하는 OAuth 클라이언트 ID입니다. |
| string | |
| clientSecret | Kafka 클라이언트가 OAuth 서버에 인증하고 토큰 끝점 URI를 사용하는 데 사용할 수 있는 OAuth 클라이언트 시크릿이 포함된 OpenShift 보안에 대한 링크입니다. |
| connectTimeoutSeconds | 권한 부여 서버에 연결할 때 연결 제한 시간(초)입니다. 설정하지 않으면 유효 연결 제한 시간은 60초입니다. |
| integer | |
| disableTlsHostnameVerification |
TLS 호스트 이름 확인을 활성화하거나 비활성화합니다. 기본값은 |
| boolean | |
| enableMetrics |
OAuth 지표를 활성화하거나 비활성화합니다. 기본값은 |
| boolean | |
| httpRetries | 초기 HTTP 요청이 실패하는 경우 시도할 수 있는 최대 재시도 횟수입니다. 설정되지 않은 경우 기본값은 재시도를 시도하지 않는 것입니다. |
| integer | |
| httpRetryPauseMs | 실패한 HTTP 요청을 재시도하기 전에 일시 정지를 수행합니다. 설정되지 않은 경우 기본값은 일시 중지되지 않고 즉시 요청을 반복하는 것입니다. |
| integer | |
| maxTokenExpirySeconds | 액세스 토큰의 라이브 시간을 지정된 초 수로 설정하거나 제한합니다. 권한 부여 서버에서 불투명 토큰을 반환하는 경우 설정해야 합니다. |
| integer | |
| passwordSecret |
암호가 있는 |
| readTimeoutSeconds | 권한 부여 서버에 연결할 때 읽기 제한 시간(초)입니다. 설정하지 않으면 유효 읽기 제한 시간은 60초입니다. |
| integer | |
| refreshToken | 권한 부여 서버에서 액세스 토큰을 가져오는 데 사용할 수 있는 새로 고침 토큰이 포함된 OpenShift 보안에 대한 링크입니다. |
| scope |
권한 부여 서버에 대해 인증할 때 사용할 OAuth 범위입니다. 일부 권한 부여 서버를 설정해야 합니다. 가능한 값은 권한 부여 서버 구성 방법에 따라 달라집니다. 기본적으로 토큰 끝점 요청을 수행할 때 |
| string | |
| tlsTrustedCertificates | OAuth 서버에 대한 TLS 연결에 필요한 신뢰할 수 있는 인증서입니다. |
| tokenEndpointUri | 권한 부여 서버 토큰 끝점 URI입니다. |
| string | |
| type |
|
| string | |
| 사용자 이름 | 인증에 사용되는 사용자 이름입니다. |
| string |
4.2.74. Jaegertracing 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
JaegerTracing 유형이 더 이상 사용되지 않습니다.
used in: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec
type 속성은 JaegerTracing 유형 사용을 OpenTelemetryTracing 과 구별하는 판별자입니다. JaegerTracing 유형의 jaeger 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string |
4.2.75. OpenTelemetryTracing 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
used in: KafkaBridgeSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec
type 속성은 OpenTelemetryTracing 유형 사용을 구분하는 구분자 입니다. OpenTelemetry 유형의 .
opentelemetry 값이 있어야 합니다
| 속성 | 설명 |
|---|---|
| type |
|
| string |
4.2.76. KafkaConnectTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaConnectSpec, KafkaMirrorMaker2Spec
| 속성 | 설명 |
|---|---|
| Deployment |
Kafka Connect |
| podSet |
Kafka Connect |
| Pod |
Kafka Connect |
| apiService |
Kafka Connect API |
| headlessService |
Kafka Connect 헤드리스 |
| connectContainer | Kafka Connect 컨테이너용 템플릿입니다. |
| initContainer | Kafka init 컨테이너용 템플릿입니다. |
| podDisruptionBudget |
Kafka Connect |
| serviceAccount | Kafka Connect 서비스 계정에 대한 템플릿입니다. |
| clusterRoleBinding | Kafka Connect ClusterRoleBinding용 템플릿입니다. |
| buildPod |
Kafka Connect 빌드 |
| buildContainer | Kafka Connect Build 컨테이너용 템플릿입니다. 빌드 컨테이너는 OpenShift에서만 사용됩니다. |
| buildConfig | 새 컨테이너 이미지를 빌드하는 데 사용되는 Kafka Connect BuildConfig용 템플릿입니다. BuildConfig는 OpenShift에서만 사용됩니다. |
| buildServiceAccount | Kafka Connect Build 서비스 계정용 템플릿. |
| jmxSecret | Kafka Connect 클러스터 10.0.0.1 인증의 보안에 대한 템플릿입니다. |
4.2.77. BuildConfigTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnectTemplate
| 속성 | 설명 |
|---|---|
| metadata |
|
| pullSecret | 기본 이미지를 가져오는 데 필요한 인증 정보가 있는 컨테이너 레지스트리 시크릿입니다. |
| string |
4.2.78. ExternalConfiguration 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaConnectSpec, KafkaMirrorMaker2Spec
ExternalConfiguration 스키마 속성의 전체 목록
Kafka Connect 커넥터의 구성 옵션을 정의하는 외부 스토리지 속성을 구성합니다.
ConfigMaps 또는 Secrets를 Kafka Connect Pod에 환경 변수 또는 볼륨으로 마운트할 수 있습니다. 볼륨 및 환경 변수는 KafkaConnect.spec 또는 KafkaMirrorMaker2.spec 의 externalConfiguration 속성에서 구성됩니다.
적용되면 커넥터를 개발할 때 환경 변수와 볼륨을 사용할 수 있습니다.
자세한 내용은 외부 소스에서 구성 값 로드 를 참조하십시오.
4.2.78.1. ExternalConfiguration 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| env | Kafka Connect Pod에서 환경 변수로 Secret 또는 ConfigMap의 데이터를 사용할 수 있도록 합니다. |
| volumes | Kafka Connect Pod에서 볼륨으로 데이터를 사용할 수 있도록 Secret 또는 ConfigMap의 데이터를 제공합니다. |
4.2.79. ExternalConfigurationEnv 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ExternalConfiguration
| 속성 | 설명 |
|---|---|
| name |
Kafka Connect pod에 전달할 환경 변수의 이름입니다. 환경 변수의 이름은 |
| string | |
| valueFrom | Kafka Connect pod에 전달될 환경 변수의 값입니다. Secret 또는 ConfigMap 필드에 대한 참조로 전달할 수 있습니다. 필드는 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. |
4.2.80. ExternalConfigurationEnvVarSource schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 위치: ExternalConfigurationEnv
| 속성 | 설명 |
|---|---|
| configMapKeyRef | ConfigMap의 키에 대한 참조입니다. 자세한 내용은 core/v1 configmapkeyselector의 외부 설명서를 참조하십시오. |
| secretKeyRef | 시크릿의 키에 대한 참조입니다. 자세한 내용은 core/v1 secretkeyselector의 외부 설명서를 참조하십시오. |
4.2.81. ExternalConfigurationVolumeSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: ExternalConfiguration
| 속성 | 설명 |
|---|---|
| configMap | ConfigMap의 키에 대한 참조입니다. 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. 자세한 내용은 core/v1 configmapvolumesource에 대한 외부 설명서 를 참조하십시오. |
| name | Kafka Connect Pod에 추가할 볼륨의 이름입니다. |
| string | |
| secret | 시크릿의 키에 대한 참조입니다. 정확히 하나의 Secret 또는 ConfigMap을 지정해야 합니다. 자세한 내용은 core/v1 secretvolumesource에 대한 외부 설명서 를 참조하십시오. |
4.2.82. 빌드 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnectSpec
Kafka Connect 배포에 대한 추가 커넥터를 구성합니다.
4.2.82.1. output 링크 복사링크가 클립보드에 복사되었습니다!
추가 커넥터 플러그인을 사용하여 새 컨테이너 이미지를 빌드하려면 AMQ Streams에서 이미지를 푸시, 저장 및 가져올 수 있는 컨테이너 레지스트리가 필요합니다. AMQ Streams는 자체 컨테이너 레지스트리를 실행하지 않으므로 레지스트리를 제공해야 합니다. AMQ Streams는 프라이빗 컨테이너 레지스트리 및 Quay 또는 Docker Hub 와 같은 공개 레지스트리를 지원합니다. 컨테이너 레지스트리는 KafkaConnect 사용자 정의 리소스의 .spec.build.output 섹션에서 구성됩니다. 필요한 출력 구성은 docker 및 imagestream 의 두 가지 유형을 지원합니다.
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
image: my-registry.io/my-org/my-connect-cluster:latest
pushSecret: my-registry-credentials
#...
OpenShift ImageStream 사용
Docker 대신 OpenShift ImageStream을 사용하여 새 컨테이너 이미지를 저장할 수 있습니다. Kafka Connect를 배포하기 전에 ImageStream을 수동으로 생성해야 합니다. ImageStream을 사용하려면 유형을 이미지 스트림 으로 설정하고, image 속성을 사용하여 ImageStream의 이름과 사용된 태그를 지정합니다. 예를 들면 my-connect-image-stream:latest 입니다.
출력 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
type: imagestream
image: my-connect-build:latest
#...
4.2.82.2. plugins 링크 복사링크가 클립보드에 복사되었습니다!
커넥터 플러그인은 특정 유형의 외부 시스템에 연결하는 데 필요한 구현을 정의하는 파일 집합입니다. 컨테이너 이미지에 필요한 커넥터 플러그인은 KafkaConnect 사용자 정의 리소스의 .spec.build.plugins 속성을 사용하여 구성해야 합니다. 각 커넥터 플러그인에는 Kafka Connect 배포 내에서 고유한 이름이 있어야 합니다. 또한 플러그인 아티팩트가 나열되어야 합니다. 이러한 아티팩트는 AMQ Streams에서 다운로드하고 새 컨테이너 이미지에 추가되며 Kafka Connect 배포에서 사용됩니다. 커넥터 플러그인 아티팩트는 (de)serializers와 같은 추가 구성 요소도 포함할 수 있습니다. 각 커넥터 플러그인은 별도의 디렉터리로 다운로드되어 다른 커넥터와 해당 종속성이 적절하게 샌드 박스됩니다. 각 플러그인은 하나 이상의 아티팩트 로 구성해야 합니다.
두 개의 커넥터 플러그인 을 사용하는 플러그인 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
#...
plugins:
- name: debezium-postgres-connector
artifacts:
- type: tgz
url: https://repo1.maven.org/maven2/io/debezium/debezium-connector-postgres/2.1.3.Final/debezium-connector-postgres-2.1.3.Final-plugin.tar.gz
sha512sum: c4ddc97846de561755dc0b021a62aba656098829c70eb3ade3b817ce06d852ca12ae50c0281cc791a5a131cb7fc21fb15f4b8ee76c6cae5dd07f9c11cb7c6e79
- name: camel-telegram
artifacts:
- type: tgz
url: https://repo.maven.apache.org/maven2/org/apache/camel/kafkaconnector/camel-telegram-kafka-connector/0.11.5/camel-telegram-kafka-connector-0.11.5-package.tar.gz
sha512sum: d6d9f45e0d1dbfcc9f6d1c7ca2046168c764389c78bc4b867dab32d24f710bb74ccf2a007d7d7a8af2dfca09d9a52ccbc2831fc715c195a3634cca055185bd91
#...
- 1
- (필수) 커넥터 플러그인 및 아티팩트 목록.
AMQ Streams는 다음 유형의 아티팩트를 지원합니다.
- 직접 다운로드 및 사용되는 JAR 파일
- TGZ 아카이브, 다운로드 및 압축 해제
- ZIP 아카이브, 다운로드 및 압축 해제
- Maven 오케스트레이션을 사용하는 Maven 아티팩트
- 기타 아티팩트는 직접 다운로드하여 사용합니다.
AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고, 자동화된 빌드 및 Kafka Connect 배포에서 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다.
JAR 아티팩트 사용
JAR 아티팩트는 컨테이너 이미지에 다운로드하여 추가된 JAR 파일을 나타냅니다. JAR 아티팩트를 사용하려면 유형 속성을 ScanSetting 로 설정하고 url 속성을 사용하여 다운로드 위치를 지정합니다.
또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 AMQ Streams는 새 컨테이너 이미지를 빌드하는 동안 아티팩트의 체크섬을 확인합니다.
JAR 아티팩트 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
#...
plugins:
- name: my-plugin
artifacts:
- type: jar
url: https://my-domain.tld/my-jar.jar
sha512sum: 589...ab4
- type: jar
url: https://my-domain.tld/my-jar2.jar
#...
TGZ 아티팩트 사용
TGZ 아티팩트는 Gzip 압축을 사용하여 압축한 TAR 아카이브를 다운로드하는 데 사용됩니다. TGZ 아티팩트는 여러 다른 파일을 구성하는 경우에도 전체 Kafka Connect 커넥터를 포함할 수 있습니다. TGZ 아티팩트는 새 컨테이너 이미지를 빌드하는 동안 AMQ Streams에서 자동으로 다운로드 및 압축을 해제합니다. TGZ 아티팩트를 사용하려면 type 속성을 tgz 로 설정하고 url 속성을 사용하여 다운로드 위치를 지정합니다.
또한 아티팩트의 SHA-512 체크섬을 지정할 수 있습니다. 지정된 경우 AMQ Streams는 압축을 풀고 새 컨테이너 이미지를 빌드하기 전에 체크섬을 확인합니다.
TGZ 아티팩트 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
name: my-connect-cluster
spec:
#...
build:
output:
#...
plugins:
- name: my-plugin
artifacts:
- type: tgz
url: https://my-domain.tld/my-connector-archive.tgz
sha512sum: 158...jg10
#...
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
repository: https://mvnrepository.com
group: org.apache.camel.kafkaconnector
artifact: camel-kafka-connector
version: 0.11.0
#...
기타 아티팩트 사용
기타 아티팩트는 컨테이너 이미지에 다운로드하여 추가된 모든 종류의 파일을 나타냅니다. 결과 컨테이너 이미지에 아티팩트의 특정 이름을 사용하려면 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
url: https://my-domain.tld/my-other-file.ext
sha512sum: 589...ab4
fileName: name-the-file.ext
#...
4.2.82.3. 빌드 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| 출력 출력 |
새로 빌드된 이미지를 저장할 위치를 설정합니다. 필수 항목입니다. 유형은 지정된 오브젝트 내의 |
| resources | 빌드를 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| plugins | Kafka Connect에 추가해야 하는 커넥터 플러그인 목록입니다. 필수 항목입니다. |
|
|
4.2.83. DockerOutput 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 빌드
type 속성은 DockerOutput 유형과 ImageStreamOutput 유형을 구분하는 구분자입니다. DockerOutput 유형의 값 docker 가 있어야 합니다.
| 속성 | 설명 |
|---|---|
| image |
새로 빌드된 이미지에 태그를 지정하고 푸시하는 데 사용할 전체 이름입니다. 예: |
| string | |
| pushSecret | 새로 빌드된 이미지를 푸시하기 위한 인증 정보가 포함된 컨테이너 레지스트리 시크릿. |
| string | |
| additionalKanikoOptions | 새 Connect 이미지를 빌드할 때 Kaniko executor에 전달될 추가 옵션을 설정합니다. 허용되는 옵션은 --customPlatform, --insecure-pull, --insecure-registry, --log-registry, --log-timestamp, --registry-timestamp, --reproducible, --single-snapshot, --skip-tls-verify, --skip-tls-verify-registry, --verbosity, --snapshotMode, --use-new-run입니다. 이러한 옵션은 Kaniko executor가 사용되는 OpenShift에서만 사용됩니다. OpenShift에서 무시됩니다. 옵션은 Kaniko GitHub 리포지토리에 설명되어 있습니다. 이 필드를 변경해도 Kafka Connect 이미지의 새 빌드가 트리거되지 않습니다. |
| 문자열 배열 | |
| type |
|
| string |
4.2.84. ImageStreamOutput schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 빌드
type 속성은 ImageStreamOutput 유형과 DockerOutput 유형 사용을 구분하는 구분자입니다. ImageStreamOutput 유형의 값 imagestream 이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| image |
새로 빌드된 이미지가 푸시될 ImageStream의 이름 및 태그입니다. 예: |
| string | |
| type |
|
| string |
4.2.85. 플러그인 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 빌드
| 속성 | 설명 |
|---|---|
| name |
커넥터 플러그인의 고유한 이름입니다. 는 커넥터 아티팩트가 저장되는 경로를 생성하는 데 사용됩니다. 이름은 KafkaConnect 리소스 내에서 고유해야 합니다. 이름은 다음과 같은 패턴을 따라야 합니다. |
| string | |
| 아티팩트 | 이 커넥터 플러그인에 속하는 아티팩트 목록입니다. 필수 항목입니다. |
|
|
4.2.86. JarArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
| 속성 | 설명 |
|---|---|
| url |
다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting |
| string | |
| sha512sum |
아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. |
| string | |
| insecure |
기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 |
| boolean | |
| type |
ScanSetting 여야 |
| string |
4.2.87. TgzArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
| 속성 | 설명 |
|---|---|
| url |
다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting |
| string | |
| sha512sum |
아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. |
| string | |
| insecure |
기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 |
| boolean | |
| type |
|
| string |
4.2.88. ZipArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
| 속성 | 설명 |
|---|---|
| url |
다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting |
| string | |
| sha512sum |
아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. |
| string | |
| insecure |
기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 |
| boolean | |
| type |
|
| string |
4.2.89. MavenArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
type 속성은 JarArtifact 유형, Tgz , Artifact ZipArtifact, OtherArtifact 의 사용을 구별하는 판별자입니다. MavenArtifact 유형의 경우 maven 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| 리포지터리 |
아티팩트를 다운로드할 Maven 리포지토리입니다. |
| string | |
| group |
Maven 그룹 ID. |
| string | |
| artifact |
Maven 아티팩트 ID. |
| string | |
| 버전 |
Maven 버전 번호입니다. |
| string | |
| type |
|
| string |
4.2.90. OtherArtifact 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: 플러그인
| 속성 | 설명 |
|---|---|
| url |
다운로드할 아티팩트의 URL입니다. AMQ Streams는 다운로드한 아티팩트의 보안 검사를 수행하지 않습니다. 보안상의 이유로 먼저 아티팩트를 수동으로 확인하고 자동화된 빌드에 동일한 아티팩트가 사용되는지 확인하도록 체크섬 확인을 구성해야 합니다. ScanSetting |
| string | |
| sha512sum |
아티팩트의 SHA512 체크섬입니다. 선택 사항: 지정된 경우 새 컨테이너를 빌드하는 동안 체크섬이 확인됩니다. 지정하지 않으면 다운로드한 아티팩트를 확인하지 않습니다. |
| string | |
| fileName | 아티팩트를 저장할 이름입니다. |
| string | |
| insecure |
기본적으로 TLS를 사용하는 연결은 안전한지 확인하도록 검증됩니다. 사용된 서버 인증서는 유효하고 신뢰할 수 있어야 하며 서버 이름을 포함해야 합니다. 이 옵션을 |
| boolean | |
| type |
|
| string |
4.2.91. KafkaConnectStatus schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnect
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| url | Kafka Connect 커넥터를 관리하고 모니터링하기 위한 REST API 끝점의 URL입니다. |
| string | |
| connectorPlugins | 이 Kafka Connect 배포에서 사용할 수 있는 커넥터 플러그인 목록입니다. |
| labelSelector | 이 리소스를 제공하는 Pod의 라벨 선택기입니다. |
| string | |
| replicas | 이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다. |
| integer |
4.2.92. ConnectorPlugin 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnectStatus, KafkaMirrorMaker2Status
| 속성 | 설명 |
|---|---|
| type |
커넥터 플러그인의 유형입니다. 사용 가능한 유형은 |
| string | |
| 버전 | 커넥터 플러그인의 버전입니다. |
| string | |
| 클래스 | 커넥터 플러그인의 클래스입니다. |
| string |
4.2.93. KafkaTopic 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| spec | 주제의 사양입니다. |
| status | 주제의 상태. |
4.2.94. KafkaTopicSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaTopic
| 속성 | 설명 |
|---|---|
| 파티션 |
주제의 파티션 수입니다. 주제 생성 후에는 이 문제를 줄일 수 없습니다. 주제 생성 후 늘릴 수 있지만 특히 의미 체계 파티셔닝이 있는 주제의 경우 그 결과를 이해하는 것이 중요합니다. 이 값이 없는 경우 기본값은 |
| integer | |
| replicas |
항목에 보유해야 하는 복제본 수입니다. 이 기능이 없는 경우 |
| integer | |
| config | 주제 구성입니다. |
| map | |
| topicName | 주제의 이름입니다. 이 문제가 없는 경우 기본값은 주제의 metadata.name입니다. 주제 이름이 유효한 OpenShift 리소스 이름이 아닌 한 이 값을 설정하지 않는 것이 좋습니다. |
| string |
4.2.95. KafkaTopicStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaTopic
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| topicName | 주제 이름. |
| string |
4.2.96. KafkaUser 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| spec | 사용자의 사양입니다. |
| status | Kafka 사용자의 상태입니다. |
4.2.97. KafkaUserSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUser
| 속성 | 설명 |
|---|---|
| 인증 |
이 Kafka 사용자에게 활성화된 인증 메커니즘입니다. 지원되는 인증 메커니즘은
인증은 선택 사항입니다. 인증이 구성되지 않은 경우 인증 정보가 생성되지 않습니다. 사용자에 대해 설정된 ACL 및 할당량은 SASL 인증에 적합한 |
|
| |
| 권한 부여 |
이 Kafka 사용자에 대한 권한 부여 규칙입니다. 유형은 지정된 오브젝트 내의 |
| 할당량 | 클라이언트가 사용하는 브로커 리소스를 제어하기 위한 요청에 대한 할당량입니다. Kafka 사용자 할당량에 대한 네트워크 대역폭 및 요청 속도 할당량은 http://kafka.apache.org/documentation/#design_quotas 에서 확인할 수 있습니다. |
| template |
Kafka 사용자 시크릿이 생성되는 방법을 지정하는 템플릿입니다. |
4.2.98. KafkaUserTlsClientAuthentication 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
type 속성은 KafkaUserTlsClientAuthentication 유형과 KafkaUserTlsExternalClientAuthentication, KafkaUserScramSha512 ClientClientAuthentication 사용을 구분하는 구분자입니다. KafkaUserTlsClientAuthentication 유형의 값 tls 가 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string |
4.2.99. KafkaUserTlsExternalClientAuthentication schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
type 속성은 KafkaUserTlsExternalClientAuthentication 유형인 KafkaUserTlsClientAuthentication, KafkaUserScramSha512 ClientClientAuthentication 유형을 구분하는 구분자입니다. KafkaUserTlsExternalClientAuthentication 유형에 대한 tls-external 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string |
4.2.100. KafkaUserScramSha512ClientAuthentication 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
type 속성은 KafkaUserScramSha512ClientAuthentication 유형인 KafkaUserTlsClientAuthentication, KafkaUserTlsExternalClientAuthentication 유형을 구분하는 판별자입니다. KafkaUserScramSha512ClientAuthentication 유형의 scram-sha-512 가 있어야 합니다.
| 속성 | 설명 |
|---|---|
| 암호 | 사용자 암호를 지정합니다. 설정되지 않은 경우 User Operator가 새 암호가 생성됩니다. |
| type |
|
| string |
4.2.101. 암호 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaUserScramSha512ClientAuthentication
| 속성 | 설명 |
|---|---|
| valueFrom | 암호를 읽을 시크릿입니다. |
4.2.102. PasswordSource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 중인 위치: 암호
| 속성 | 설명 |
|---|---|
| secretKeyRef | 리소스의 네임스페이스에서 시크릿 키를 선택합니다. 자세한 내용은 core/v1 secretkeyselector의 외부 설명서를 참조하십시오. |
4.2.103. KafkaUserAuthorizationSimple 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
type 속성은 나중에 추가할 수 있는 KafkaUserAuthorizationSimple 유형의 사용을 구분하는 구분자입니다. KafkaUserAuthorizationSimple 유형에 대해 간단한 값이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| ACL | 이 사용자에게 적용해야 하는 ACL 규칙 목록입니다. |
|
|
4.2.104. AclRule 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaUserAuthorizationSimple
브로커가 AclAuthorizer 를 사용하는 경우 KafkaUser 에 대한 액세스 제어 규칙을 구성합니다.
권한 부여가 있는 KafkaUser 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaUser
metadata:
name: my-user
labels:
strimzi.io/cluster: my-cluster
spec:
# ...
authorization:
type: simple
acls:
- resource:
type: topic
name: my-topic
patternType: literal
operations:
- Read
- Describe
- resource:
type: group
name: my-group
patternType: prefix
operations:
- Read
4.2.104.1. resource 링크 복사링크가 클립보드에 복사되었습니다!
resource 속성을 사용하여 규칙이 적용되는 리소스를 지정합니다.
간단한 권한 부여는 type 속성에 지정된 네 가지 리소스 유형을 지원합니다.
-
주제(주체) -
소비자 그룹 (
그룹) -
클러스터(
클러스터) -
TransactionId(
TransactionId)
주제, 그룹 및 트랜잭션 ID 리소스의 경우 규칙이 name 속성에 적용되는 리소스의 이름을 지정할 수 있습니다.
클러스터 유형 리소스에는 이름이 없습니다.
이름은 patternType 속성을 사용하여 리터럴 또는 접두사 로 지정됩니다.
-
리터럴 이름은
name필드에 지정된 대로 정확하게 사용됩니다. -
접두사 이름은
name값을 접두사로 사용한 다음 해당 값으로 시작하는 이름이 있는 모든 리소스에 규칙을 적용합니다.
patternType 이 리터럴 로 설정되는 경우 해당 규칙이 모든 리소스에 적용되는 것을 나타내기 위해 이름을 * 로 설정할 수 있습니다.
사용자가 모든 주제의 메시지를 읽을 수 있는 ACL 규칙의 예
acls:
- resource:
type: topic
name: "*"
patternType: literal
operations:
- Read
4.2.104.2. type 링크 복사링크가 클립보드에 복사되었습니다!
작업을 (현재 지원되지 않음)하는 규칙 허용하거나 거부유형입니다.
type 필드는 선택 사항입니다. type 이 지정되지 않은 경우 ACL 규칙은 허용 규칙으로 처리됩니다.
4.2.104.3. 작업 링크 복사링크가 클립보드에 복사되었습니다!
허용 또는 거부할 규칙에 대한 작업 목록을 지정합니다.
지원되는 작업은 다음과 같습니다.
- read
- write
- delete
- 변경
- describe
- All
- IdempotentWrite
- ClusterAction
- 개발
- AlterConfigs
- DescribeConfigs
특정 작업만 각 리소스에 대해 작동합니다.
AclAuthorizer, ACL 및 지원되는 리소스 및 작업 조합에 대한 자세한 내용은 권한 부여 및 ACL을 참조하십시오.
4.2.104.4. host 링크 복사링크가 클립보드에 복사되었습니다!
host 속성을 사용하여 규칙이 허용 또는 거부되는 원격 호스트를 지정합니다.
별표(*)를 사용하여 모든 호스트에서 작업을 허용하거나 거부합니다. host 필드는 선택 사항입니다. host 를 지정하지 않으면 기본적으로 * 값이 사용됩니다.
4.2.104.5. AclRule 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| host | ACL 규칙에 설명된 작업이 허용 또는 거부되는 호스트입니다. |
| string | |
| 작업 |
|
| 문자열 ([Read, Write, Delete, Alter, Describe, All, IdempotentWrite, ClusterAction, Create, AlterConfigs, DescribeConfigs]) | |
| 작업 | 허용 또는 거부할 작업 목록입니다. 지원되는 작업은 읽기, 쓰기, 만들기, 삭제, Alter, Describe, ClusterAction, AlterConfigs, DescribeConfigs, IdempotentWrite 및 All입니다. |
| 문자열 ([Read, Write, Delete, Alter, Describe, All, IdempotentWrite, ClusterAction, Create, AlterConfigs, DescribeConfigs]) 배열 | |
| resource |
지정된 ACL 규칙이 적용되는 리소스를 나타냅니다. 유형은 [topic, group, cluster, transactionalId] 중 하나여야 하는 지정된 오브젝트 내의 |
|
| |
| type |
규칙의 유형입니다. 현재 지원되는 유일한 유형은 |
| 문자열([allow, deny] 중 하나) |
4.2.105. AclRuleTopicResource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: AclRule
type 속성은 AclRuleTopicResource 유형과 AclRuleGroupResource, AclRuleClusterResource, AclRuleTransactionalIdResource 유형을 구분하는 구분자입니다. AclRuleTopicResource 유형의 값 항목이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| name |
지정된 ACL 규칙이 적용되는 리소스 이름입니다. |
| string | |
| patternType |
리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 |
| 문자열 ([prefix, literal] 중 하나) |
4.2.106. AclRuleGroupResource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: AclRule
type 속성은 AclRuleGroupResource 유형 사용을 AclRuleTopicResource, AclRuleClusterResource, AclRuleTransactionalIdResource 와 구별하는 판별자입니다. AclRuleGroupResource 유형의 값 그룹이 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| name |
지정된 ACL 규칙이 적용되는 리소스 이름입니다. |
| string | |
| patternType |
리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 |
| 문자열 ([prefix, literal] 중 하나) |
4.2.107. AclRuleClusterResource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: AclRule
type 속성은 AclRuleClusterResource 유형 사용을 AclRuleTopicResource, AclRuleGroupResource, AclRuleTransactionalIdResource 와 구분하는 구분자입니다. AclRuleClusterResource 유형의 값 cluster 가 있어야 합니다.
| 속성 | 설명 |
|---|---|
| type |
|
| string |
4.2.108. AclRuleTransactionalIdResource 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: AclRule
type 속성은 AclRuleTransactionalIdResource 유형과 AclRuleTopicResource, AclRuleGroupResource, AclRuleClusterResource 유형을 구분하는 판별자입니다. AclRuleTransaction 유형의 TransactionId 값이 있어야 합니다.
alId Resource
| 속성 | 설명 |
|---|---|
| type |
|
| string | |
| name |
지정된 ACL 규칙이 적용되는 리소스 이름입니다. |
| string | |
| patternType |
리소스 필드에 사용되는 패턴을 설명합니다. 지원되는 유형은 |
| 문자열 ([prefix, literal] 중 하나) |
4.2.109. KafkaUserQuotas 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
Kafka를 사용하면 사용자가 클라이언트에서 리소스 사용을 제어하도록 할당량을 설정할 수 있습니다.
4.2.109.1. 할당량 링크 복사링크가 클립보드에 복사되었습니다!
다음 유형의 할당량을 사용하도록 클라이언트를 구성할 수 있습니다.
- 네트워크 사용량 할당량은 할당량을 공유하는 각 클라이언트 그룹의 바이트 속도 임계값을 지정합니다.
- CPU 사용률 할당량은 클라이언트의 브로커 요청 창을 지정합니다. 창은 클라이언트가 요청을 할 수 있는 시간의 백분율입니다. 클라이언트는 브로커의 I/O 스레드 및 네트워크 스레드를 요청합니다.
- 파티션 변경 할당량은 클라이언트가 초당 만들 수 있는 파티션 변경의 수를 제한합니다.
파티션 변경 할당량을 사용하면 Kafka 클러스터가 동시 주제 작업으로 압도되지 않습니다. 파티션 변경은 다음 유형의 사용자 요청에 따라 수행됩니다.
- 새 주제를 위한 파티션 생성
- 기존 항목에 파티션 추가
- 주제에서 파티션 삭제
파티션 변경 할당량을 구성하여 사용자 요청에 허용되는 변경 비율을 제어할 수 있습니다.
Kafka 클라이언트에 할당량을 사용하는 것이 여러 가지 상황에서 유용할 수 있습니다. 너무 높은 속도로 요청을 보내는 잘못 구성된 Kafka 생산자를 고려하십시오. 이러한 잘못된 구성으로 인해 다른 클라이언트에 대한 서비스 거부가 발생할 수 있으므로 문제가 있는 클라이언트가 차단되어야 합니다. 네트워크 제한 할당량을 사용하면 이러한 상황이 다른 클라이언트에 큰 영향을 미치지 않도록 할 수 있습니다.
AMQ Streams는 사용자 수준 할당량을 지원하지만 클라이언트 수준 할당량은 지원하지 않습니다.
Kafka 사용자 할당량 구성의 예
spec:
quotas:
producerByteRate: 1048576
consumerByteRate: 2097152
requestPercentage: 55
controllerMutationRate: 10
Kafka 사용자 할당량에 대한 자세한 내용은 Apache Kafka 설명서 를 참조하십시오.
4.2.109.2. KafkaUserQuotas 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| consumerByteRate | 그룹의 클라이언트가 제한되기 전에 각 클라이언트 그룹에서 브로커에서 가져올 수 있는 초당 최대 바이트 수에 대한 할당량입니다. 각broker별로 정의됩니다. |
| integer | |
| controllerMutationRate | Create topics request, create partitions request 및 delete topics request에 대한 변경이 허용되는 비율에 대한 할당량입니다. 속도는 생성 또는 삭제된 파티션 수에 따라 누적됩니다. |
| number | |
| producerByteRate | 그룹의 클라이언트가 제한되기 전에 각 클라이언트 그룹이 브로커에 게시할 수 있는 초당 최대 바이트 수에 대한 할당량입니다. 각broker별로 정의됩니다. |
| integer | |
| requestPercentage | 각 클라이언트 그룹의 최대 CPU 사용률에 대한 할당량이 네트워크 및 I/O 스레드의 백분율로 사용됩니다. |
| integer |
4.2.110. KafkaUserTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUserSpec
KafkaUserTemplate 스키마 속성의 전체 목록
User Operator에서 생성한 보안에 대한 추가 레이블 및 주석을 지정합니다.
KafkaUserTemplate표시 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaUser
metadata:
name: my-user
labels:
strimzi.io/cluster: my-cluster
spec:
authentication:
type: tls
template:
secret:
metadata:
labels:
label1: value1
annotations:
anno1: value1
# ...
4.2.110.1. KafkaUserTemplate 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| secret |
KafkaUser 리소스에 대한 템플릿입니다. 템플릿을 사용하면 암호 또는 TLS 인증서가 있는 |
4.2.111. KafkaUserStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaUser
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| 사용자 이름 | 사용자 이름. |
| string | |
| secret |
인증 정보가 저장되는 |
| string |
4.2.112. KafkaMirrorMaker 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
KafkaMirrorMaker 유형이 더 이상 사용되지 않습니다. 대신 KafkaMirrorMaker2 를 사용하십시오.
| 속성 | 설명 |
|---|---|
| spec | Kafka MirrorMaker 사양입니다. |
| status | Kafka MirrorMaker의 상태입니다. |
4.2.113. KafkaMirrorMakerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaMirrorMaker
KafkaMirrorMakerSpec 스키마 속성의 전체 목록
Kafka MirrorMaker를 구성합니다.
4.2.113.1. include 링크 복사링크가 클립보드에 복사되었습니다!
include 속성을 사용하여 Kafka MirrorMaker가 소스에서 대상 Kafka 클러스터로 미러링하는 주제 목록을 구성합니다.
이 속성을 사용하면 단일 주제 이름으로 복잡한 패턴에 이르기까지 가장 간단한 경우의 정규식을 사용할 수 있습니다. 예를 들어 A|B 또는 모든 주제를 사용하여 A|B 또는 모든 주제를 사용하여 A 및 B를 미러링할 수 있습니다. 쉼표로 구분된 여러 정규 표현식을 Kafka MirrorMaker로 전달할 수도 있습니다.
4.2.113.2. KafkaMirrorMakerConsumerSpec and KafkaMirrorMakerProducerSpec 링크 복사링크가 클립보드에 복사되었습니다!
KafkaMirrorMakerConsumerSpec 및 KafkaMirrorMakerProducerSpec 을 사용하여 소스(consumer) 및 대상(producer) 클러스터를 구성합니다.
Kafka MirrorMaker는 항상 두 개의 Kafka 클러스터(소스 및 대상)와 함께 작동합니다. 연결을 설정하기 위해 소스 및 대상 Kafka 클러스터의 부트스트랩 서버는 HOSTNAME:PORT 쌍의 쉼표로 구분된 목록으로 지정됩니다. 쉼표로 구분된 각 목록에는 하나 이상의 Kafka 브로커 또는 HOSTNAME:PORT 쌍으로 지정된 Kafka 브로커를 가리키는 서비스가 포함되어 있습니다.
4.2.113.3. logging 링크 복사링크가 클립보드에 복사되었습니다!
Kafka MirrorMaker에는 구성 가능한 로거가 있습니다.
-
mirrormaker.root.logger
MirrorMaker는 Apache log4j 로거 구현을 사용합니다.
로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. logging.valueFrom.configMapKeyRef.name 및 logging.valueFrom.configMapKeyRef.key 속성은 모두 필수입니다. 지정된 정확한 로깅 구성을 사용하는 ConfigMap은 Cluster Operator가 실행될 때 사용자 정의 리소스로 생성된 다음, 각 조정 후 다시 생성됩니다. 사용자 정의 ConfigMap을 지정하지 않으면 기본 로깅 설정이 사용됩니다. 특정 로거 값을 설정하지 않으면 해당 로거에 대해 상위 수준 로거 설정이 상속됩니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오. 인라인 로깅은 루트 로거 수준을 지정합니다. 로거 속성에 특정 클래스 또는 로거에 대한 로그 수준을 설정할 수도 있습니다.
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker
spec:
# ...
logging:
type: inline
loggers:
mirrormaker.root.logger: INFO
log4j.logger.org.apache.kafka.clients.NetworkClient: TRACE
log4j.logger.org.apache.kafka.common.network.Selector: DEBUG
# ...
로그 수준을 DEBUG 로 설정하면 많은 양의 로그 출력이 발생할 수 있으며 성능에 영향을 미칠 수 있습니다.
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker
spec:
# ...
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: mirror-maker-log4j.properties
# ...
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
4.2.113.4. KafkaMirrorMakerSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| 버전 | Kafka MirrorMaker 버전입니다. 기본값은 3.4.0입니다. 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 이해하려면 설명서를 참조하십시오. |
| string | |
| replicas |
|
| integer | |
| image | 포드의 Docker 이미지입니다. |
| string | |
| consumer | 소스 클러스터 구성. |
| 프로듀서 | 대상 클러스터 구성. |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| whitelist |
|
| string | |
| include |
미러링에 포함된 주제 목록입니다. 이 옵션을 사용하면 Java 스타일 정규식을 사용하는 모든 정규식이 허용됩니다. |
| string | |
| jvmOptions | Pod에 대한 JVM 옵션. |
| logging |
MirrorMaker의 로깅 구성입니다. 유형은 지정된 개체 내의 |
| metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
| tracing |
Kafka MirrorMaker에서 추적의 구성 유형은 지정된 오브젝트 내의 |
| template |
Kafka MirrorMaker 리소스, |
| livenessProbe | Pod 활성 검사입니다. |
| readinessProbe | Pod 준비 상태 확인 |
4.2.114. KafkaMirrorMakerConsumerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMakerSpec
KafkaMirrorMakerConsumerSpec 스키마 속성의 전체 목록
MirrorMaker 소비자를 구성합니다.
4.2.114.1. numStreams 링크 복사링크가 클립보드에 복사되었습니다!
consumer.numStreams 속성을 사용하여 소비자의 스트림 수를 구성합니다.
소비자 스레드 수를 늘려 미러링 주제의 처리량을 늘릴 수 있습니다. 소비자 스레드는 Kafka MirrorMaker에 대해 지정된 소비자 그룹에 속합니다. 주제 파티션은 병렬로 메시지를 사용하는 소비자 스레드 전체에 할당됩니다.
4.2.114.2. offsetCommitInterval 링크 복사링크가 클립보드에 복사되었습니다!
consumer.offsetCommitInterval 속성을 사용하여 소비자에 대한 오프셋 자동 커밋 간격을 구성합니다.
Kafka MirrorMaker 소스 Kafka 클러스터의 데이터를 사용한 후 오프셋이 커밋되는 일반 시간 간격을 지정할 수 있습니다. 시간 간격은 기본값인 60,000을 사용하여 밀리초 단위로 설정됩니다.
4.2.114.3. config 링크 복사링크가 클립보드에 복사되었습니다!
consumer.config 속성을 사용하여 소비자의 Kafka 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
예외
소비자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 소비자 그룹 식별자
- 인터셉터
다음 접두사가 있는 속성은 설정할 수 없습니다.
-
bootstrap.servers -
group.id -
interceptor.classes -
sasl. -
보안. -
ssl.
config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음과 같은 예외를 포함하여 MirrorMaker로 전달됩니다.
-
지원되는 TLS 버전 및 암호화 제품군에대한 모든
ssl구성
Cluster Operator는 제공된 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 MirrorMaker 클러스터가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 MirrorMaker 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.
4.2.114.4. groupId 링크 복사링크가 클립보드에 복사되었습니다!
consumer.groupId 속성을 사용하여 소비자 그룹 식별자를 구성합니다.
Kafka MirrorMaker는 Kafka 소비자를 사용하여 다른 Kafka 소비자 클라이언트와 마찬가지로 메시지를 소비합니다. 소스 Kafka 클러스터에서 사용된 메시지는 대상 Kafka 클러스터로 미러링됩니다. 사용자가 파티션 할당을 위해 소비자 그룹의 일부여야 하므로 그룹 식별자가 필요합니다.
4.2.114.5. KafkaMirrorMakerConsumerSpec schema properties 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| numStreams | 생성할 소비자 스트림 스레드 수를 지정합니다. |
| integer | |
| offsetCommitInterval | ms에서 오프셋 자동 커밋 간격을 지정합니다. 기본값은 60000입니다. |
| integer | |
| bootstrapServers | Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다. |
| string | |
| groupId | 이 소비자가 속하는 소비자 그룹을 식별하는 고유한 문자열입니다. |
| string | |
| 인증 |
클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
|
| |
| config | MirrorMaker 소비자 구성. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, group.id, sasl., security., security., interceptor.classes (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols). |
| map | |
| tls | MirrorMaker를 클러스터에 연결하기 위한 TLS 구성입니다. |
4.2.115. KafkaMirrorMakerProducerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMakerSpec
KafkaMirrorMakerProducerSpec 스키마 속성의 전체 목록
MirrorMaker 생산자를 구성합니다.
4.2.115.1. abortOnSendFailure 링크 복사링크가 클립보드에 복사되었습니다!
producer.abortOnSendFailure 속성을 사용하여 프로듀서의 메시지 전송 실패를 처리하는 방법을 구성합니다.
기본적으로 Kafka MirrorMaker에서 Kafka 클러스터로 메시지를 보낼 때 오류가 발생하면 다음을 수행합니다.
- Kafka MirrorMaker 컨테이너가 OpenShift에서 종료되었습니다.
- 그런 다음 컨테이너가 다시 생성됩니다.
abortOnSendFailure 옵션이 false 로 설정된 경우 메시지 전송 오류가 무시됩니다.
4.2.115.2. config 링크 복사링크가 클립보드에 복사되었습니다!
producer.config 속성을 사용하여 생산자의 Kafka 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
예외
생산자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 인터셉터
다음 접두사가 있는 속성은 설정할 수 없습니다.
-
bootstrap.servers -
interceptor.classes -
sasl. -
보안. -
ssl.
config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 다음과 같은 예외를 포함하여 MirrorMaker로 전달됩니다.
-
지원되는 TLS 버전 및 암호화 제품군에대한 모든
ssl구성
Cluster Operator는 제공된 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 MirrorMaker 클러스터가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 MirrorMaker 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.
4.2.115.3. KafkaMirrorMakerProducerSpec schema properties 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| bootstrapServers | Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다. |
| string | |
| abortOnSendFailure |
실패한 전송에서 종료하도록 MirrorMaker를 설정하는 플래그입니다. 기본값은 |
| boolean | |
| 인증 |
클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
|
| |
| config | MirrorMaker 생산자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, sasl., security., interceptor.classes (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols). |
| map | |
| tls | MirrorMaker를 클러스터에 연결하기 위한 TLS 구성입니다. |
4.2.116. KafkaMirrorMakerTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMakerSpec
| 속성 | 설명 |
|---|---|
| Deployment |
Kafka MirrorMaker |
| Pod |
Kafka MirrorMaker |
| podDisruptionBudget |
Kafka MirrorMaker |
| mirrorMakerContainer | Kafka MirrorMaker 컨테이너용 템플릿입니다. |
| serviceAccount | Kafka MirrorMaker 서비스 계정용 템플릿입니다. |
4.2.117. KafkaMirrorMakerStatus schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용됨: KafkaMirrorMaker
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| labelSelector | 이 리소스를 제공하는 Pod의 라벨 선택기입니다. |
| string | |
| replicas | 이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다. |
| integer |
4.2.118. KafkaBridge 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| spec | Kafka 브리지의 사양입니다. |
| status | Kafka 브리지의 상태입니다. |
4.2.119. KafkaBridgeSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridge
Kafka 브리지 클러스터를 구성합니다.
구성 옵션은 다음과 관련이 있습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 소비자 구성
- 생산자 구성
- HTTP 구성
4.2.119.1. logging 링크 복사링크가 클립보드에 복사되었습니다!
Kafka Bridge에는 구성 가능한 자체 로거가 있습니다.
-
rootLogger.level -
logger.<operation-id>
로거에서 < > 로거를 사용하여 특정 작업에 대한 로그 수준을 설정합니다.
operation-id >를 교체할 수 있습니다. <operation-id
-
createConsumer -
deleteConsumer -
subscribe -
unsubscribe -
poll -
assign -
commit -
send -
sendToPartition -
seekToBeginning -
seekToEnd -
search -
healthy -
Ready -
openapi
각 작업은 OpenAPI 사양에 따라 정의되며 브리지가 HTTP 클라이언트에서 요청을 수신하는 해당 API 끝점이 있습니다. 각 끝점의 로그 수준을 변경하여 수신 및 발신 HTTP 요청에 대한 세분화된 로깅 정보를 생성할 수 있습니다.
각 로거는 이름을 http.openapi.operation. <operation-id>로 할당하도록 구성해야 합니다. 예를 들어 송신 작업 로거에 대한 로깅 수준을 구성한다는 것은 다음을 정의하는 것을 의미합니다.
logger.send.name = http.openapi.operation.send
logger.send.level = DEBUG
Kafka Bridge는 Apache log4j2 로거 구현을 사용합니다. 로거는 log4j2.properties 파일에 정의되며, 이 파일에는 정상 및 준비된 엔드포인트에 대해 다음과 같은 기본 구성이 있습니다.
logger.healthy.name = http.openapi.operation.healthy
logger.healthy.level = WARN
logger.ready.name = http.openapi.operation.ready
logger.ready.level = WARN
다른 모든 작업의 로그 수준은 기본적으로 INFO 로 설정됩니다.
로깅 속성을 사용하여 로거 및 로거 수준을 구성합니다.
로거 및 수준을 직접(인라인)하거나 사용자 정의(외부) ConfigMap을 사용하여 로그 수준을 설정할 수 있습니다. ConfigMap을 사용하는 경우 logging.valueFrom.configMapKeyRef.name 속성을 외부 로깅 구성이 포함된 ConfigMap 이름으로 설정합니다. logging.valueFrom.configMapKeyRef.name 및 logging.valueFrom.configMapKeyRef.key 속성은 필수입니다. 이름 또는 키가 설정되지 않은 경우 기본 로깅이 사용됩니다. ConfigMap 내에서 로깅 구성은 log4j.properties 를 사용하여 설명합니다. 로그 수준에 대한 자세한 내용은 Apache 로깅 서비스를 참조하십시오.
여기서는 인라인 및 외부 로깅의 예를 참조하십시오.
인라인 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
spec:
# ...
logging:
type: inline
loggers:
rootLogger.level: INFO
# enabling DEBUG just for send operation
logger.send.name: "http.openapi.operation.send"
logger.send.level: DEBUG
# ...
외부 로깅
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
spec:
# ...
logging:
type: external
valueFrom:
configMapKeyRef:
name: customConfigMap
key: bridge-logj42.properties
# ...
구성되지 않은 모든 로거는 수준이 OFF 로 설정되어 있습니다.
Cluster Operator를 사용하여 Kafka 브리지 브리지를 배포한 경우 Kafka Bridge 로깅 수준에 대한 변경 사항이 동적으로 적용됩니다.
외부 로깅을 사용하는 경우 추가 기능이 변경될 때 롤링 업데이트가 트리거됩니다.
garbage collector(GC)
가비지 수집기 로깅은 jvmOptions 속성을 사용하여 활성화(또는 비활성화)할 수도 있습니다.
4.2.119.2. KafkaBridgeSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| replicas |
|
| integer | |
| image | 포드의 Docker 이미지입니다. |
| string | |
| bootstrapServers | Kafka 클러스터에 대한 초기 연결을 설정하는 host:port 쌍 목록입니다. |
| string | |
| tls | Kafka 브리지를 클러스터에 연결하기 위한 TLS 구성입니다. |
| 인증 |
클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
|
| |
| http | HTTP 관련 구성입니다. |
| adminClient | Kafka AdminClient 관련 구성 |
| consumer | Kafka 소비자 관련 구성. |
| 프로듀서 | Kafka 프로듀서 관련 구성 |
| resources | 예약할 CPU 및 메모리 리소스입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| jvmOptions | Pod에 현재 지원되지 않는 JVM 옵션입니다. |
| logging |
Kafka 브리지의 로깅 구성입니다. 유형은 지정된 개체 내의 |
| clientRackInitImage |
|
| string | |
| Rack | client.rack 소비자 구성으로 사용할 노드 레이블 구성입니다. |
| enableMetrics | Kafka 브릿지에 대한 지표를 활성화합니다. 기본값은 false입니다. |
| boolean | |
| livenessProbe | Pod 활성 검사입니다. |
| readinessProbe | Pod 준비 상태 확인 |
| template |
Kafka 브리지 리소스용 템플릿. 템플릿을 사용하면 |
| tracing |
Kafka 브리지에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 |
4.2.120. KafkaBridgeHttpConfig schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
KafkaBridgeHttpConfig 스키마 속성의 전체 목록
Kafka 브리지의 Kafka 클러스터에 대한 HTTP 액세스를 구성합니다.
기본 HTTP 구성은 Kafka 브리지가 포트 8080에서 수신 대기하도록 하는 것입니다.
4.2.120.1. CORS 링크 복사링크가 클립보드에 복사되었습니다!
Kafka 클러스터에 대한 HTTP 액세스를 활성화할 뿐만 아니라 HTTP 속성은 CORS(Cross-Origin Resource Sharing)를 통해 Kafka Bridge에 대한 액세스 제어를 활성화하고 정의하는 기능을 제공합니다. CORS는 브라우저에서 하나 이상의 원본에서 선택된 리소스에 액세스할 수 있는 HTTP 메커니즘입니다. CORS를 구성하려면 허용되는 리소스 원본 및 HTTP 액세스 방법 목록을 정의합니다. 원본의 경우 URL 또는 Java 정규식을 사용할 수 있습니다.
Kafka 브리지 HTTP 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
name: my-bridge
spec:
# ...
http:
port: 8080
cors:
allowedOrigins: "https://strimzi.io"
allowedMethods: "GET,POST,PUT,DELETE,OPTIONS,PATCH"
# ...
4.2.120.2. KafkaBridgeHttpConfig 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| port | 서버가 수신 대기 중인 포트입니다. |
| integer | |
| CORS | HTTP 브릿지에 대한 CORS 구성입니다. |
4.2.121. KafkaBridgeHttpCors schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeHttpConfig
| 속성 | 설명 |
|---|---|
| allowedOrigins | 허용된 원본 목록입니다. Java 정규식을 사용할 수 있습니다. |
| 문자열 배열 | |
| allowedMethods | 허용된 HTTP 메서드 목록입니다. |
| 문자열 배열 |
4.2.122. KafkaBridgeAdminClientSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
| 속성 | 설명 |
|---|---|
| config | 브릿지에서 생성한 AdminClient 인스턴스에 사용되는 Kafka AdminClient 구성입니다. |
| map |
4.2.123. KafkaBridgeConsumerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
KafkaBridgeConsumerSpec 스키마 속성의 전체 목록
Kafka 브릿지의 소비자 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
예외
소비자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 소비자 그룹 식별자
다음 접두사가 있는 속성은 설정할 수 없습니다.
-
bootstrap.servers -
group.id -
sasl. -
보안. -
ssl.
config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 대한 다음 예외를 포함하여 Kafka Bridge로 전달됩니다.
-
지원되는 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
# ...
Cluster Operator는 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Bridge 배포가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 Kafka Bridge 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.
4.2.123.1. KafkaBridgeConsumerSpec schema properties 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| config | 브릿지에서 생성한 소비자 인스턴스에 사용되는 Kafka 소비자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, group.id, sasl., security. (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols). |
| map |
4.2.124. KafkaBridgeProducerSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
KafkaBridgeProducerSpec 스키마 속성의 전체 목록
Kafka 브릿지의 생산자 옵션을 키로 구성합니다.
값은 다음 JSON 유형 중 하나일 수 있습니다.
- 문자열
- 숫자
- 부울
예외
생산자에 대한 Apache Kafka 구성 문서에 나열된 옵션을 지정하고 구성할 수 있습니다.
그러나 AMQ Streams는 다음과 관련된 옵션을 구성하고 관리하므로 변경할 수 없습니다.
- Kafka 클러스터 부트스트랩 주소
- 보안(암호화, 인증 및 권한 부여)
- 소비자 그룹 식별자
다음 접두사가 있는 속성은 설정할 수 없습니다.
-
bootstrap.servers -
sasl. -
보안. -
ssl.
config 속성에 변경할 수 없는 옵션이 포함되어 있으면 무시되고 경고 메시지가 Cluster Operator 로그 파일에 기록됩니다. 기타 지원되는 모든 옵션은 AMQ Streams에서 구성한 옵션에 대한 다음 예외를 포함하여 Kafka Bridge로 전달됩니다.
-
지원되는 TLS 버전 및 암호화 제품군에대한 모든
ssl구성
Kafka 브리지 생산자 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
name: my-bridge
spec:
# ...
producer:
config:
acks: 1
delivery.timeout.ms: 300000
# ...
Cluster Operator는 config 오브젝트의 키 또는 값을 확인하지 않습니다. 잘못된 구성이 제공되면 Kafka Bridge 배포가 시작되지 않거나 불안정해질 수 있습니다. 이 경우 Cluster Operator가 모든 Kafka Bridge 노드에 새 구성을 롤아웃할 수 있도록 구성을 수정합니다.
4.2.124.1. KafkaBridgeProducerSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| config | 브릿지에서 생성한 생산자 인스턴스에 사용되는 Kafka 생산자 구성입니다. 접두사가 있는 속성은 설정할 수 없습니다. ssl., bootstrap.servers, sasl., security. (예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols). |
| map |
4.2.125. KafkaBridgeTemplate 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridgeSpec
| 속성 | 설명 |
|---|---|
| Deployment |
Kafka 브리지 배포를 위한 템플릿 |
| Pod |
Kafka 브리지 |
| apiService |
Kafka 브리지 API |
| podDisruptionBudget |
Kafka Bridge |
| bridgeContainer | Kafka 브리지 컨테이너용 템플릿입니다. |
| clusterRoleBinding | Kafka Bridge ClusterRoleBinding용 템플릿입니다. |
| serviceAccount | Kafka 브리지 서비스 계정용 템플릿. |
| initContainer | Kafka Bridge init 컨테이너용 템플릿입니다. |
4.2.126. KafkaBridgeStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaBridge
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| url | 외부 클라이언트 애플리케이션이 Kafka 브리지에 액세스할 수 있는 URL입니다. |
| string | |
| labelSelector | 이 리소스를 제공하는 Pod의 라벨 선택기입니다. |
| string | |
| replicas | 이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다. |
| integer |
4.2.127. KafkaConnector 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| spec | Kafka 커넥터의 사양입니다. |
| status | Kafka 커넥터의 상태입니다. |
4.2.128. KafkaConnectorSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnector
| 속성 | 설명 |
|---|---|
| 클래스 | Kafka 커넥터의 클래스입니다. |
| string | |
| tasksMax | Kafka 커넥터의 최대 작업 수입니다. |
| integer | |
| autoRestart | 커넥터 및 작업 구성을 자동으로 다시 시작합니다. |
| config | Kafka 커넥터 구성입니다. connector.class, tasks.max 속성을 설정할 수 없습니다. |
| map | |
| 일시 중지 | 커넥터를 일시 중지해야 하는지 여부입니다. 기본값은 false입니다. |
| boolean |
4.2.129. AutoRestart 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
used in: KafkaConnectorSpec, KafkaMirrorMaker2ConnectorSpec
FAILED 상태인 커넥터 및 작업에 대한 자동 재시작을 구성합니다.
활성화된 경우 백오프 알고리즘은 실패한 각 커넥터 및 해당 작업에 자동 재시작을 적용합니다.
Operator는 조정 시 자동 재시작을 시도합니다. 첫 번째 시도가 실패하면 Operator에서 최대 6개의 시도를 더 만듭니다. 재시작 시도 간격은 2분에서 30분으로 증가합니다. 다시 시작할 때마다 실패한 커넥터 및 작업은 FAILED 에서 RESTARTING 으로 전송됩니다. 마지막 시도 후 재시작이 실패하면 커넥터 구성에 문제가 있을 수 있습니다. 커넥터와 작업은 FAILED 상태로 남아 있으며 수동으로 다시 시작해야 합니다. 이 작업은 strimzi.io/restart: "true" 로 KafKaConnector 사용자 정의 리소스에 주석을 달아 이를 수행할 수 있습니다.
Kafka Connect 커넥터의 경우 KafkaConnector 리소스의 autoRestart 속성을 사용하여 실패한 커넥터 및 작업의 자동 재시작을 활성화합니다.
Kafka Connect에 실패한 커넥터의 자동 재시작 활성화
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
name: my-source-connector
spec:
autoRestart:
enabled: true
MirrorMaker 2의 경우 KafkaMirrorMaker2 리소스에서 커넥터의 autoRestart 속성을 사용하여 실패한 커넥터 및 작업을 자동으로 다시 시작할 수 있습니다.
MirrorMaker 2에 실패한 커넥터의 자동 재시작 활성화
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
metadata:
name: my-mm2-cluster
spec:
mirrors:
- sourceConnector:
autoRestart:
enabled: true
# ...
heartbeatConnector:
autoRestart:
enabled: true
# ...
checkpointConnector:
autoRestart:
enabled: true
# ...
4.2.129.1. AutoRestart 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| enabled | 실패한 커넥터 및 작업에 대한 자동 재시작을 활성화하거나 비활성화해야 하는지 여부입니다. |
| boolean |
4.2.130. KafkaConnectorStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnector
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| autoRestart | 자동 재시작 상태입니다. |
| connectorStatus | Kafka Connect REST API에서 보고한 커넥터 상태입니다. |
| map | |
| tasksMax | Kafka 커넥터의 최대 작업 수입니다. |
| integer | |
| 주제 | Kafka 커넥터에서 사용하는 항목 목록입니다. |
| 문자열 배열 |
4.2.131. AutoRestartStatus 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaConnectorStatus, KafkaMirrorMaker2Status
| 속성 | 설명 |
|---|---|
| count | 커넥터 또는 작업을 다시 시작하는 횟수입니다. |
| integer | |
| connectorName | 다시 시작되는 커넥터의 이름입니다. |
| string | |
| lastRestartTimestamp | 자동 다시 시작을 마지막으로 시도한 시간입니다. 필요한 형식은 UTC 시간대의 'yyy-MM-ddTHH:mm:ssZ'입니다. |
| string |
4.2.132. KafkaMirrorMaker2 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| spec | Kafka MirrorMaker 2 클러스터의 사양입니다. |
| status | Kafka MirrorMaker 2 클러스터의 상태. |
4.2.133. KafkaMirrorMaker2Spec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMaker2
| 속성 | 설명 |
|---|---|
| 버전 | Kafka Connect 버전입니다. 기본값은 3.4.0입니다. 사용자 설명서를 참조하여 버전을 업그레이드하거나 다운그레이드하는 데 필요한 프로세스를 파악합니다. |
| string | |
| replicas |
Kafka Connect 그룹의 Pod 수입니다. 기본값은 |
| integer | |
| image | 포드의 Docker 이미지입니다. |
| string | |
| connectCluster |
Kafka Connect에 사용되는 클러스터 별칭입니다. 별칭은 |
| string | |
| 클러스터 | 미러링을 위한 Kafka 클러스터입니다. |
| 미러 | MirrorMaker 2 커넥터 구성. |
| resources | CPU 및 메모리 리소스 및 요청된 초기 리소스에 대한 최대 제한입니다. 자세한 내용은 core/v1 리소스에 대한 외부 설명서를 참조하십시오. |
| livenessProbe | Pod 활성 검사입니다. |
| readinessProbe | Pod 준비 상태 확인 |
| jvmOptions | Pod에 대한 JVM 옵션. |
| jmxOptions | ScanSetting 옵션. |
| logging |
Kafka Connect의 로깅 구성입니다. 유형은 지정된 개체 내의 |
| clientRackInitImage |
|
| string | |
| Rack |
|
| tracing |
Kafka Connect에서 추적의 구성입니다. 유형은 지정된 오브젝트 내의 |
| template |
Kafka Connect 및 Kafka MirrorECDHE 2 리소스에 대한 템플릿입니다. 템플릿을 사용하면 |
| externalConfiguration | Secrets 또는 ConfigMaps의 데이터를 Kafka Connect Pod로 전달하여 커넥터를 구성하는 데 사용합니다. |
| metricsConfig |
지표 구성. 유형은 지정된 오브젝트 내의 |
4.2.134. KafkaMirrorMaker2ClusterSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: KafkaMirrorMaker2Spec
KafkaMirrorMaker2ClusterSpec 스키마 속성의 전체 목록
미러링을 위해 Kafka 클러스터를 구성합니다.
4.2.134.1. config 링크 복사링크가 클립보드에 복사되었습니다!
config 속성을 사용하여 Kafka 옵션을 구성합니다.
표준 Apache Kafka 구성을 제공하여 AMQ Streams에서 직접 관리하지 않는 속성으로 제한될 수 있습니다.
TLS 버전에 특정 암호화 제품군 을 사용하는 클라이언트 연결의 경우 허용된 ssl 속성을 구성할 수 있습니다. 호스트 이름 확인을 활성화하거나 비활성화하도록 ssl.endpoint.identification.algorithm 속성을 구성할 수도 있습니다.
4.2.134.2. KafkaMirrorMaker2ClusterSpec 스키마 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| 별칭 | Kafka 클러스터를 참조하는 데 사용되는 별칭입니다. |
| string | |
| bootstrapServers |
Kafka 클러스터에 대한 연결을 설정하는 쉼표로 구분된 |
| string | |
| tls | MirrorMaker 2 커넥터를 클러스터에 연결하기 위한 TLS 구성입니다. |
| 인증 |
클러스터에 연결하기 위한 인증 구성입니다. 유형은 지정된 오브젝트 내의 |
|
| |
| config | MirrorMaker 2 클러스터 구성. 접두사가 있는 속성은 ssl., sasl., security., listeners, plugin.path, rest., bootstrap.servers, consumer.interceptor.classes, producer.interceptor.classes(예: ssl.endpoint.identification.algorithm, ssl.cipher.suites, ssl.cipher.protocol, ssl.protocols.protocols). |
| map |
4.2.135. KafkaMirrorMaker2MirrorSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: KafkaMirrorMaker2Spec
| 속성 | 설명 |
|---|---|
| sourceCluster |
Kafka MirrorMaker 2 커넥터에서 사용하는 소스 클러스터의 별칭입니다. 별칭은 |
| string | |
| targetCluster |
Kafka MirrorMaker 2 커넥터에서 사용하는 대상 클러스터의 별칭입니다. 별칭은 |
| string | |
| sourceConnector | Kafka MirrorMaker 2 소스 커넥터의 사양입니다. |
| heartbeatConnector | Kafka MirrorMaker 2 하트비트 커넥터의 사양입니다. |
| checkpointConnector | Kafka MirrorMaker 2 체크포인트 커넥터의 사양입니다. |
| topicsPattern | 미러링할 주제와 일치하는 정규식(예: "topic1|topic2|topic3")입니다. 쉼표로 구분된 목록도 지원됩니다. |
| string | |
| topicsBlacklistPattern |
|
| string | |
| topicsExcludePattern | 미러링에서 제외할 주제와 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다. |
| string | |
| groupsPattern | 미러링할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다. |
| string | |
| groupsBlacklistPattern |
|
| string | |
| groupsExcludePattern | 미러링에서 제외할 소비자 그룹과 일치하는 정규식입니다. 쉼표로 구분된 목록도 지원됩니다. |
| string |
4.2.136. KafkaMirrorMaker2ConnectorSpec 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
에 사용됨: KafkaMirrorMaker2MirrorSpec
| 속성 | 설명 |
|---|---|
| tasksMax | Kafka 커넥터의 최대 작업 수입니다. |
| integer | |
| config | Kafka 커넥터 구성입니다. connector.class, tasks.max 속성을 설정할 수 없습니다. |
| map | |
| autoRestart | 커넥터 및 작업 구성을 자동으로 다시 시작합니다. |
| 일시 중지 | 커넥터를 일시 중지해야 하는지 여부입니다. 기본값은 false입니다. |
| boolean |
4.2.137. KafkaMirrorMaker2Status 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
다음에서 사용됨: KafkaMirrorMaker2
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| url | Kafka Connect 커넥터를 관리하고 모니터링하기 위한 REST API 끝점의 URL입니다. |
| string | |
| autoRestartStatuses | MirrorMaker 2 커넥터 자동 재시작 상태 목록입니다. |
| connectorPlugins | 이 Kafka Connect 배포에서 사용할 수 있는 커넥터 플러그인 목록입니다. |
| 커넥터 | Kafka Connect REST API에서 보고한 대로 MirrorMaker 2 커넥터 상태 목록입니다. |
| 맵 배열 | |
| labelSelector | 이 리소스를 제공하는 Pod의 라벨 선택기입니다. |
| string | |
| replicas | 이 리소스를 제공하는 데 사용되는 현재 Pod 수입니다. |
| integer |
4.2.138. KafkaRebalance 스키마 참조 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
| spec | Kafka의 사양을 재조정합니다. |
| status | Kafka의 상태를 재조정합니다. |
4.2.139. KafkaRebalanceSpec schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaRebalance
| 속성 | 설명 |
|---|---|
| mode |
모드: 재조정을 실행합니다. 지원되는 모드는
|
| 문자열( among [remove-brokers, full, add-brokers]) | |
| brokers |
스케일링 또는 재조정에 사용할 축소의 경우 새로 추가된 브로커 목록입니다. 이 목록은 재조정 모드 |
| 정수 배열 | |
| 목표 | 리밸런스 제안을 생성 및 실행하는 데 사용할 우선 순위를 줄임으로써 정렬된 목표 목록입니다. 지원되는 목표는 https://github.com/linkedin/cruise-control#goals 에서 확인할 수 있습니다. 빈 목표 목록이 제공되면 default.goals Cruise Control 구성 매개변수에 선언된 값이 사용됩니다. |
| 문자열 배열 | |
| skipHardGoalCheck | 최적화 제안 생성에서 Kafka CR에 지정된 하드 목표를 건너뛰도록 허용할지 여부입니다. 이는 이러한 어려운 목표 중 일부가 균형 솔루션을 찾는 것을 막을 때 유용할 수 있습니다. 기본값은 false입니다. |
| boolean | |
| rebalanceDisk | 동일한 브로커에서 디스크 공간 사용률의 균형을 조정하는 인브로커 디스크 밸런싱을 활성화합니다. 여러 디스크가 있는 JBOD 스토리지를 사용하는 Kafka 배포에만 적용됩니다. 활성화하면 inter-broker 밸런싱이 비활성화됩니다. 기본값은 false입니다. |
| boolean | |
| excludedTopics | 일치하는 항목이 최적화 제안 계산에서 제외되는 정규식입니다. 이 표현식은 java.util.regex.Pattern 클래스에서 구문 분석합니다. 지원되는 형식에 대한 자세한 내용은 해당 클래스에 대한 설명서를 참조하십시오. |
| string | |
| concurrentPartitionMovementsPerBroker | 지속적인 파티션 복제 동작의 상한은 각 브로커의 내외로 들어갑니다. 기본값은 5입니다. |
| integer | |
| concurrentIntraBrokerPartitionMovements | 각 브로커 내에서 디스크의 지속적인 파티션 복제 변동의 상한입니다. 기본값은 2입니다. |
| integer | |
| concurrentLeaderMovements | 지속적인 파티션 리더십의 범위. 기본값은 1000입니다. |
| integer | |
| replicationThrottle | 복제본 이동에 사용되는 대역폭의 상한(초당 바이트 단위)입니다. 기본적으로 제한은 없습니다. |
| integer | |
| replicaMovementStrategies | 생성된 최적화 제안에서 복제본 변동에 대한 실행 순서를 결정하는 데 사용되는 전략 클래스 이름 목록입니다. 기본적으로 BaseReplica>-<mentStrategy가 사용되며, 생성된 순서대로 복제본 이동을 실행합니다. |
| 문자열 배열 |
4.2.140. KafkaRebalanceStatus schema reference 링크 복사링크가 클립보드에 복사되었습니다!
사용 대상: KafkaRebalance
| 속성 | 설명 |
|---|---|
| conditions | 상태 조건 목록입니다. |
|
| |
| observedGeneration | Operator가 마지막으로 조정한 CRD 생성입니다. |
| integer | |
| sessionId | 이 KafkaRebalance 리소스와 관련된 Cruise Control에 대한 요청의 세션 식별자입니다. Kafka 리밸런스 Operator에서 지속적인 재조정 작업의 상태를 추적하는 데 사용됩니다. |
| string | |
| optimizationResult | 최적화 결과를 설명하는 JSON 오브젝트입니다. |
| map |