7.3. 최적화 제안 개요


KafkaRebalance 리소스를 사용하여 최적화 제안에 제안된 변경 사항을 생성하고 적용합니다. 최적화 제안은 브로커 간에 파티션 워크로드가 더 균등하게 분산되는 Kafka 클러스터를 생성하는 제안된 변경 사항에 대한 요약입니다.

각 최적화 제안은 브로커 리소스에 대해 구성된 용량 제한에 따라 이를 생성하는 데 사용된 최적화 목표 세트를 기반으로 합니다.

모든 최적화 제안은 제안된 리밸런스의 영향에 대한 추정치 입니다. 제안을 승인하거나 거부할 수 있습니다. 최적화 제안을 먼저 생성하지 않고 클러스터 재조정을 승인할 수 없습니다.

다음 재조정 모드 중 하나에서 최적화 제안을 실행할 수 있습니다.

  • full
  • add-brokers
  • remove-brokers

7.3.1. 재조정 모드

KafkaRebalance 사용자 정의 리소스의 spec.mode 속성을 사용하여 리밸런싱 모드를 지정합니다.

full
전체 모드는 클러스터의 모든 브로커에서 복제본을 이동하여 전체 재조정을 실행합니다. spec.mode 속성이 KafkaRebalance 사용자 정의 리소스에 정의되지 않은 경우 기본 모드입니다.
add-brokers
add-brokers 모드는 하나 이상의 브로커를 추가하여 Kafka 클러스터를 확장한 후 사용됩니다. 일반적으로 Kafka 클러스터를 확장한 후 새 브로커는 새로 생성된 주제의 파티션만 호스팅하는 데 사용됩니다. 새 항목이 생성되지 않으면 새로 추가된 브로커가 사용되지 않고 기존 브로커가 동일한 부하에 남아 있습니다. 클러스터에 브로커를 추가한 직후 add-brokers 모드를 사용하면 재조정 작업이 기존 브로커에서 새로 추가된 브로커로 복제본이 이동합니다. KafkaRebalance 사용자 정의 리소스의 spec.brokers 속성을 사용하여 새 브로커를 목록으로 지정합니다.
remove-brokers
remove-brokers 모드는 하나 이상의 브로커를 제거하여 Kafka 클러스터를 축소하기 전에 사용됩니다. Kafka 클러스터를 축소하는 경우 복제본을 호스팅하는 경우에도 브로커가 종료됩니다. 이로 인해 복제되지 않은 파티션이 발생할 수 있으며 일부 파티션이 최소 ISR(동기화형 복제본)에 있을 수 있습니다. 이러한 잠재적인 문제를 방지하기 위해 remove-brokers 모드는 제거될 브로커에서 복제본을 이동합니다. 이러한 브로커가 더 이상 복제본을 호스팅하지 않으면 축소 작업을 안전하게 실행할 수 있습니다. 제거 중인 브로커는 KafkaRebalance 사용자 정의 리소스의 spec.brokers 속성에서 목록으로 지정합니다.

일반적으로 전체 리밸런스 모드를 사용하여 브로커 간에 부하를 분산하여 Kafka 클러스터를 재조정합니다. 클러스터를 확장하거나 축소하고 그에 따라 복제본을 재조정하려는 경우에만 add-brokersremove-brokers 모드를 사용합니다.

리밸런스를 실행하는 절차는 세 가지 모드에서 실제로 동일합니다. 유일한 차이점은 spec.mode 속성을 통해 모드를 지정하고 필요한 경우 spec.brokers 속성을 통해 추가되거나 제거될 브로커 목록을 지정하는 것입니다.

7.3.2. 최적화 제안의 결과

최적화 제안이 생성되면 요약 및 브로커 로드가 반환됩니다.

요약
요약은 KafkaRebalance 리소스에 포함되어 있습니다. 요약은 제안된 클러스터 리밸런스에 대한 개요를 제공하고 관련 변경 사항의 규모를 나타냅니다. 성공적으로 생성된 최적화 제안 요약은 KafkaRebalance 리소스의 Status.OptimizationResult 속성에 포함되어 있습니다. 제공되는 정보는 전체 최적화 제안에 대한 요약입니다.
브로커 로드
브로커 로드는 데이터를 JSON 문자열로 포함하는 ConfigMap에 저장됩니다. 브로커 로드는 제안된 리밸런스에 대한 값 전후에 표시되므로 클러스터의 각 브로커에 미치는 영향을 확인할 수 있습니다.

7.3.3. 최적화 제안 승인 또는 거부

최적화 제안 요약은 제안된 변경 범위를 보여줍니다.

KafkaRebalance 리소스의 이름을 사용하여 명령줄에서 요약을 반환할 수 있습니다.

최적화 제안 요약 반환

oc describe kafkarebalance <kafka_rebalance_resource_name> -n <namespace>
Copy to Clipboard Toggle word wrap

jq 명령줄 JSON 구문 분석 도구를 사용할 수도 있습니다.

jq를 사용하여 최적화 제안 요약 반환

oc get kafkarebalance -o json | jq <jq_query>.
Copy to Clipboard Toggle word wrap

요약을 사용하여 최적화 제안을 승인하거나 거부할지 여부를 결정합니다.

최적화 제안 승인
승인하도록 KafkaRebalance 리소스의 strimzi.io/rebalance 주석을 설정하여 최적화 제안을 승인 합니다. 크루즈 컨트롤은 이 제안을 Kafka 클러스터에 적용하고 클러스터 재조정 작업을 시작합니다.
최적화 제안 거부
최적화 제안을 승인하지 않도록 선택하는 경우 최적화 목표를 변경하거나 성능 튜닝 옵션을 재조정 한 다음 다른 제안을 생성할 수 있습니다. strimzi.io/refresh 주석을 사용하여 KafkaRebalance 리소스에 대한 새로운 최적화 제안을 생성할 수 있습니다.

재조정에 필요한 효과를 평가하기 위해 최적화 제안을 사용하십시오. 예를 들어 요약은broker 및 intra-broker 이동을 설명합니다. 브랜드 간 리밸런스(broker)는 별도의 브로커 간에 데이터를 리밸런싱합니다. Intra-broker 재조정은 JBOD 스토리지 구성을 사용할 때 동일한 브로커의 디스크 간에 데이터를 이동합니다. 이러한 정보는 귀하가 진행하지 않고 제안을 승인하더라도 유용할 수 있습니다.

재조정할 때 Kafka 클러스터에서 추가 로드로 인해 최적화 제안을 거부하거나 승인을 지연할 수 있습니다.

다음 예에서 제안서는 별도의 브로커 간 데이터 재조정을 제안합니다. 리밸런스에는 브로커 간에 총 12MB의 데이터가 있는 55 파티션 복제본의 이동이 포함됩니다. 파티션 복제본 간 이동은 성능에 큰 영향을 미치지만 총 데이터 양이 크지 않습니다. 총 데이터가 훨씬 큰 경우 제안서를 거부하거나 Kafka 클러스터 성능에 미치는 영향을 제한하기 위해 리밸런스를 승인하는 시간을 거부할 수 있습니다.

성능 튜닝 옵션을 재조정하면 데이터 이동의 영향을 줄이는 데 도움이 될 수 있습니다. 리밸런스 기간을 연장할 수 있는 경우 리밸런스를 작은 일괄 처리로 나눌 수 있습니다. 한 번에 데이터 이동이 줄어들어 클러스터의 부하를 줄일 수 있습니다.

최적화 제안 요약 예

Name:         my-rebalance
Namespace:    myproject
Labels:       strimzi.io/cluster=my-cluster
Annotations:  API Version:  kafka.strimzi.io/v1alpha1
Kind:         KafkaRebalance
Metadata:
# ...
Status:
  Conditions:
    Last Transition Time:  2022-04-05T14:36:11.900Z
    Status:                ProposalReady
    Type:                  State
  Observed Generation:     1
  Optimization Result:
    Data To Move MB:  0
    Excluded Brokers For Leadership:
    Excluded Brokers For Replica Move:
    Excluded Topics:
    Intra Broker Data To Move MB:         12
    Monitored Partitions Percentage:      100
    Num Intra Broker Replica Movements:   0
    Num Leader Movements:                 24
    Num Replica Movements:                55
    On Demand Balancedness Score After:   82.91290759174306
    On Demand Balancedness Score Before:  78.01176356230222
    Recent Windows:                       5
  Session Id:                             a4f833bd-2055-4213-bfdd-ad21f95bf184
Copy to Clipboard Toggle word wrap

이 제안은 24 개의 파티션 리더를 다른 브로커로 이동합니다. 이를 위해서는 Zoo Cryostat 구성을 변경해야 하며 이는 성능에 미치는 영향은 낮습니다.

균형 잡힌 점수는 최적화 제안이 승인되기 전과 후에 Kafka 클러스터의 전체 균형에 대한 측정입니다. 균형 잡힌 점수는 최적화 목표를 기반으로합니다. 모든 목표를 충족하면 점수는 100입니다. 달성되지 않는 각 목표의 점수가 줄어듭니다. 균형 잡힌 점수를 비교하여 Kafka 클러스터가 리밸런스를 팔로우할 수 있는 것보다 더 적은지 확인합니다.

7.3.4. 최적화 제안 요약 속성

다음 표에서는 최적화 제안의 요약 섹션에 포함된 속성에 대해 설명합니다.

Expand
표 7.1. 최적화 제안 요약에 포함된 속성
JSON 속성설명

numIntraBrokerReplicaMovements

클러스터 브로커의 디스크 간에 전송할 총 파티션 복제본 수입니다.

리밸런스 작업 중 성능에 미치는 영향: 영구적으로 높지만 numReplica>-<ments보다 적습니다.

excludedBrokersForLeadership

아직 지원되지 않습니다. 빈 목록이 반환됩니다.

numReplicaMovements

별도의 브로커 간에 이동할 파티션 복제본 수입니다.

리밸런스 작업 중 성능에 미치는 영향: Relatively high.

onDemandBalancednessScoreBefore, onDemandBalancednessScoreAfter

최적화 제안이 생성 되기 전과 후에 Kafka 클러스터의 전반적인 균형을 측정합니다.

점수는 각 분류된 소프트 목표를 100에서 위반하는 balancednessScore 의 합계를 뺀 방식으로 계산됩니다. cruise Control은 default.goals 목록의 목표 위치 또는 사용자 제공 목표의 우선 순위를 포함하여 여러 요인을 기반으로 모든 최적화 목표에 balancednessScore 를 할당합니다.

Before 점수는 Kafka 클러스터의 현재 구성을 기반으로 합니다. After 점수는 생성된 최적화 제안을 기반으로 합니다.

intraBrokerDataToMoveMB

동일한 브로커의 디스크 간에 이동할 각 파티션 복제본의 크기 합계 입니다( numIntraBrokerReplicaments 참조).

리밸런스 작업 중 성능에 미치는 영향: 변수. 숫자가 클수록 클러스터 리밸런스를 완료하는 데 시간이 오래 걸립니다. 동일한 브로커의 디스크 간에 대량의 데이터를 이동하면 별도의 브로커보다 영향을 덜 받습니다(Data To#178MB참조).

recentWindows

최적화 제안서를 기반으로 하는 메트릭 창 수입니다.

dataToMoveMB

별도의 브로커로 이동할 각 파티션 복제본의 크기의 합계입니다 ( numReplica Cryostatments참조).

리밸런스 작업 중 성능에 미치는 영향: 변수. 숫자가 클수록 클러스터 리밸런스를 완료하는 데 시간이 오래 걸립니다.

monitoredPartitionsPercentage

최적화 제안에 적용되는 Kafka 클러스터의 파티션 백분율입니다. excludedTopics 수의 영향을 받습니다.

excludedTopics

KafkaRebalance 리소스에서 spec.excludedTopicsRegex 속성에 정규식을 지정한 경우 해당 표현식과 일치하는 모든 주제 이름이 여기에 나열됩니다. 이러한 주제는 최적화 제안에서 파티션 복제본/리더 이동의 계산에서 제외됩니다.

numLeaderMovements

리더가 다른 복제본으로 전환될 파티션의 수입니다. 이를 위해서는 Zoo Cryostat 구성을 변경해야 합니다.

리밸런스 작업 중 성능에 미치는 영향: Relatively low.

excludedBrokersForReplicaMove

아직 지원되지 않습니다. 빈 목록이 반환됩니다.

7.3.5. 브로커 로드 속성

브로커 로드는 JSON 형식 문자열과 KafkaRebalance 사용자 정의 리소스와 동일한 이름( KafkaRebalance 사용자 정의 리소스와 동일한 이름)에 저장됩니다. 이 JSON 문자열은 각 브로커의 여러 메트릭에 연결된 각 브로커 ID의 키가 있는 JSON 오브젝트로 구성됩니다. 각 메트릭은 세 개의 값으로 구성됩니다. 첫 번째는 최적화 제안이 적용되기 전에 메트릭 값이고, 두 번째는 제안이 적용된 후 지표의 예상값이며, 세 번째는 처음 두 값 사이의 차이입니다(이전에서 제외).

참고

KafkaRebalance 리소스가 ProposalReady 상태에 있을 때 ConfigMap이 표시되고 리밸런스가 완료된 후에도 유지됩니다.

ConfigMap의 이름을 사용하여 명령줄에서 해당 데이터를 볼 수 있습니다.

ConfigMap 데이터 반환

oc describe configmaps <my_rebalance_configmap_name> -n <namespace>
Copy to Clipboard Toggle word wrap

jq 명령줄 JSON 구문 분석 도구를 사용하여 ConfigMap에서 JSON 문자열을 추출할 수도 있습니다.

jq를 사용하여 ConfigMap에서 JSON 문자열 추출

oc get configmaps <my_rebalance_configmap_name> -o json | jq '.["data"]["brokerLoad.json"]|fromjson|.'
Copy to Clipboard Toggle word wrap

다음 표에서는 최적화 제안의 브로커 로드 ConfigMap에 포함된 속성을 설명합니다.

Expand
JSON 속성설명

리더

파티션 리더인 이 브로커의 복제본 수입니다.

replicas

이 브로커의 복제본 수입니다.

cpuPercentage

정의된 용량의 백분율로 CPU 사용률입니다.

diskUsedPercentage

정의된 용량의 백분율로 디스크 사용률입니다.

diskUsedMB

절대 디스크 사용량(MB)입니다.

networkOutRate

브로커의 총 네트워크 출력 비율입니다.

leaderNetworkInRate

이 브로커의 모든 파티션 리더 복제본의 네트워크 입력 비율입니다.

followerNetworkInRate

이 브로커의 모든 후속 복제본의 네트워크 입력 비율입니다.

potentialMaxNetworkOutRate

이 브로커가 현재 호스팅되는 모든 복제본의 리더가 되는 경우 실현 가능한 최대 네트워크 출력 비율입니다.

7.3.6. 캐시된 최적화 제안

cruise Control은 구성된 기본 최적화 목표에 따라 캐시된 최적화 제안을 유지합니다. 워크로드 모델에서 생성된 캐시된 최적화 제안은 Kafka 클러스터의 현재 상태를 반영하도록 15분마다 업데이트됩니다. 기본 최적화 목표를 사용하여 최적화 제안을 생성하면 Cruise Control은 최신 캐시된 제안을 반환합니다.

캐시된 최적화 제안 새로 고침 간격을 변경하려면 Cruise Control 배포 구성에서 proposal.expiration.ms 설정을 편집합니다. Cruise Control 서버의 로드가 증가하지만 빠르게 변화하는 클러스터의 더 짧은 간격을 고려하십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동