8.2. Kafka 배포
Cluster Operator를 사용하여 Kafka 클러스터를 관리하려면 Kafka 리소스로 배포해야 합니다. Apache Kafka의 스트림은 이 작업을 수행하기 위해 예제 배포 파일을 제공합니다. 이러한 파일을 사용하여 Topic Operator 및 User Operator를 동시에 배포할 수 있습니다.
Cluster Operator를 배포한 후 Kafka 리소스를 사용하여 다음 구성 요소를 배포합니다.
노드 풀은 Kafka 클러스터 배포에 사용됩니다. 노드 풀은 동일한 구성을 공유하는 Kafka 클러스터 내의 고유한 Kafka 노드 그룹을 나타냅니다. 노드 풀의 각 Kafka 노드에 대해 노드 풀에 정의되지 않은 구성은 Kafka 리소스의 클러스터 구성에서 상속됩니다.
Kafka 클러스터를 Kafka 리소스로 배포하지 않은 경우 Cluster Operator를 사용하여 관리할 수 없습니다. 예를 들어 OpenShift 외부에서 실행되는 Kafka 클러스터에 적용됩니다. 그러나 독립 실행형 구성 요소로 배포하여 Apache Kafka용 Streams에서 관리하지 않는 Kafka 클러스터와 함께 Topic Operator 및 User Operator를 사용할 수 있습니다. Apache Kafka용 Streams에서 관리하지 않는 Kafka 클러스터와 함께 다른 Kafka 구성 요소를 배포하고 사용할 수도 있습니다.
8.2.1. KRaft 모드에서 Kafka 클러스터 배포 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 Cluster Operator를 사용하여 KRaft 모드 및 관련 노드 풀에 Kafka 클러스터를 배포하는 방법을 보여줍니다.
배포에서는 YAML 파일을 사용하여 Kafka 리소스 및 KafkaNodePool 리소스를 생성하는 사양을 제공합니다.
Apache Kafka의 스트림은 노드 풀을 사용하는 Kafka 클러스터를 생성하는 데 사용할 수 있는 다음 예제 배포 파일을 제공합니다.
kafka/kraft/kafka-with-dual-role-nodes.yaml- 브로커 및 컨트롤러 역할을 공유하는 하나의 노드 풀을 사용하여 Kafka 클러스터를 배포합니다.
kafka/kraft/kafka-persistent.yaml- 컨트롤러 노드 풀과 브로커 노드 한 개로 구성된 영구 Kafka 클러스터를 배포합니다.
kafka/kraft/kafka-ephemeral.yaml- 컨트롤러 노드 풀과 브로커 노드 한 개로 이루어진 임시 Kafka 클러스터를 배포합니다.
kafka/kraft/kafka-single-node.yaml- 단일 노드로 Kafka 클러스터를 배포합니다.
kafka/kraft/kafka-jbod.yaml- 각 브로커 노드에 여러 볼륨이 있는 Kafka 클러스터를 배포합니다.
이 절차에서는 브로커 및 컨트롤러 역할을 공유하는 노드 풀로 Kafka 클러스터를 배포하는 배포 파일 예제를 사용합니다.
각 예제의 Kafka 리소스 구성에는 노드 풀을 사용할 때 필요한 strimzi.io/node-pools: enabled 주석이 포함됩니다. KRaft 모드를 사용하는 Kafka 리소스에는 주석 strimzi.io/kraft: enabled 도 있어야 합니다.
예제 YAML 파일은 Kafka 클러스터에서 사용하는 최신 지원되는 Kafka 버전과 KRaft 메타데이터 버전을 지정합니다.
사전 요구 사항
사전 준비 사항
기본적으로 예제 배포 파일은 my-cluster 를 Kafka 클러스터 이름으로 지정합니다. 클러스터를 배포한 후에는 이름을 변경할 수 없습니다. 클러스터를 배포하기 전에 클러스터 이름을 변경하려면 관련 YAML 파일에서 Kafka 리소스의 Kafka.metadata.name 속성을 편집합니다.
프로세스
Kafka 클러스터를 배포합니다.
이중 역할 노드를 사용하는 단일 노드 풀을 사용하여 Kafka 클러스터를 배포하려면 다음을 수행합니다.
oc apply -f examples/kafka/kafka-with-dual-role-nodes.yaml배포 상태를 확인합니다.
oc get pods -n <my_cluster_operator_namespace>출력에 노드 풀 이름 및 준비 상태가 표시됩니다.
NAME READY STATUS RESTARTS my-cluster-entity-operator 3/3 Running 0 my-cluster-pool-a-0 1/1 Running 0 my-cluster-pool-a-1 1/1 Running 0 my-cluster-pool-a-4 1/1 Running 0-
my-cluster는 Kafka 클러스터의 이름입니다. pool-a는 노드 풀의 이름입니다.0으로 시작하는 순차적 인덱스 번호는 생성된 각 Kafka Pod를 식별합니다.READY는 ready/expected 복제본 수를 표시합니다.STATUS가Running으로 표시되면 배포가 성공적으로 수행됩니다.배포에 대한 정보는 풀에 있는 노드의 ID 목록을 포함하여
KafkaNodePool리소스의 상태에도 표시됩니다.참고노드 ID는 클러스터 내의 모든 노드 풀에서 0(0)부터 순차적으로 할당됩니다. 즉, 노드 ID가 특정 노드 풀 내에서 순차적으로 실행되지 않을 수 있습니다. 클러스터 전체의 노드 ID 시퀀스에 차이가 있는 경우 추가할 다음 노드에는 격차를 채우는 ID가 할당됩니다. 축소하면 풀 내에서 노드 ID가 가장 높은 노드가 제거됩니다.
-