10.3.7. 별도의 브로커 및 컨트롤러 역할로 전환
다음 절차에서는 별도의 역할이 있는 노드 풀 사용으로 전환하는 방법을 설명합니다. Kafka 클러스터에서 컨트롤러 및 브로커 역할이 결합된 노드 풀을 사용하는 경우 별도의 역할이 있는 두 개의 노드 풀을 사용하여 전환할 수 있습니다. 이렇게 하려면 브로커 전용 역할이 있는 노드 풀로 파티션 복제본을 이동하도록 클러스터를 재조정한 다음 이전 노드 풀을 컨트롤러 전용 역할로 전환합니다.
이 절차에서는 controller 및 broker 역할이 있는 노드 풀 풀(a )으로 시작합니다.
듀얼 역할 노드 풀
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaNodePool
metadata:
name: pool-a
labels:
strimzi.io/cluster: my-cluster
spec:
replicas: 3
roles:
- controller
- broker
storage:
type: jbod
volumes:
- id: 0
type: persistent-claim
size: 20Gi
deleteClaim: false
# ...
노드 풀에는 세 개의 노드가 있습니다.
노드 풀의 Kafka 노드
NAME READY STATUS RESTARTS
my-cluster-pool-a-0 1/1 Running 0
my-cluster-pool-a-1 1/1 Running 0
my-cluster-pool-a-2 1/1 Running 0
각 노드는 브로커 및 컨트롤러의 결합된 역할을 수행합니다. 브로커로만 작동하는 노드 3개를 사용하여 pool-b 라는 두 번째 노드 풀을 생성합니다.
이 프로세스 중에 파티션 복제본이 있는 노드의 ID가 변경됩니다. 노드 ID를 참조하는 종속 항목을 고려하십시오.
프로세스
브로커역할을 사용하여 노드 풀을 생성합니다.노드 풀 구성의 예
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaNodePool metadata: name: pool-b labels: strimzi.io/cluster: my-cluster spec: replicas: 3 roles: - broker storage: type: jbod volumes: - id: 0 type: persistent-claim size: 100Gi deleteClaim: false # ...새 노드 풀에는 세 개의 노드도 있습니다. 브로커 전용 노드 풀이 이미 있는 경우 이 단계를 건너뛸 수 있습니다.
-
새
KafkaNodePool리소스를 적용하여 브로커를 생성합니다. 배포 상태를 확인하고 노드 풀의 포드가 생성되고 준비될 때까지 기다립니다(
1/1).oc get pods -n <my_cluster_operator_namespace>출력에서 두 노드 풀에서 실행 중인 Pod 표시
NAME READY STATUS RESTARTS my-cluster-pool-a-0 1/1 Running 0 my-cluster-pool-a-1 1/1 Running 0 my-cluster-pool-a-2 1/1 Running 0 my-cluster-pool-b-3 1/1 Running 0 my-cluster-pool-b-4 1/1 Running 0 my-cluster-pool-b-5 1/1 Running 0노드 ID는 생성 시 노드 이름에 추가됩니다.
Cruise Control
remove-brokers모드를 사용하여 이중 역할 노드에서 새로 추가된 브로커에 파티션 복제본을 다시 할당합니다.Cruise Control을 사용하여 파티션 복제본 재할당
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaRebalance metadata: # ... spec: mode: remove-brokers brokers: [0, 1, 2]재할당은 클러스터의 주제 및 파티션 수에 따라 다소 시간이 걸릴 수 있습니다.
참고노드가 컨트롤러 전용 역할로 변경되면 파티션이 할당되지 않습니다.
Kafka리소스의status.conditions는 변경을 방지하는 이벤트에 대한 세부 정보를 제공합니다.원래 결합된 역할이 있는 노드 풀에서
브로커역할을 제거합니다.컨트롤러로 전환된 듀얼 역할 노드
apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaNodePool metadata: name: pool-a labels: strimzi.io/cluster: my-cluster spec: replicas: 3 roles: - controller storage: type: jbod volumes: - id: 0 type: persistent-claim size: 20Gi deleteClaim: false # ...- 노드 풀이 컨트롤러 전용 역할로 전환되도록 구성 변경을 적용합니다.