18장. Cruise Control을 사용하여 클러스터 재조정
Cruise Control은 다음 Kafka 작업을 지원하는 오픈 소스 시스템입니다.
- 클러스터 워크로드 모니터링
- 사전 정의된 제약 조건을 기반으로 클러스터 재조정
이 작업은 브로커 Pod를 보다 효율적으로 사용하는 더 균형 있는 Kafka 클러스터를 실행하는 데 도움이 됩니다.
일반적인 클러스터는 시간이 지남에 따라 균등하게 로드될 수 있습니다. 대량의 메시지 트래픽을 처리하는 파티션이 사용 가능한 브로커에 균등하게 분배되지 않을 수 있습니다. 클러스터를 재조정하려면 관리자는 브로커의 부하를 모니터링하고 사용 중인 파티션을 여유 용량이 있는 브로커에 수동으로 다시 할당해야 합니다.
Cruise Control은 클러스터 재조정 프로세스를 자동화합니다. CPU, 디스크 및 네트워크 로드를 기반으로 클러스터의 리소스 사용률의 워크로드 모델을 구성하고 더 균형 있는 파티션 할당에 대한 최적화 제안(승인 또는 거부할 수 있음)을 생성합니다. 구성 가능한 최적화 목표 세트는 이러한 제안을 계산하는 데 사용됩니다.
특정 모드에서 최적화 제안을 생성할 수 있습니다. 기본 전체 모드는 모든 브로커에서 파티션을 재조정합니다. add-brokers 및 remove-brokers 모드를 사용하여 클러스터를 확장 또는 축소할 때 변경 사항을 수용할 수도 있습니다.
최적화 제안을 승인하면 Cruise Control을 Kafka 클러스터에 적용합니다. KafkaRebalance 리소스를 사용하여 최적화 제안을 구성하고 생성합니다. 최적화 제안이 자동으로 또는 수동으로 승인되도록 주석을 사용하여 리소스를 구성할 수 있습니다.
AMQ Streams는 Cruise Control에 대한 구성 파일의 예를 제공합니다.
18.1. Cruise Control 구성 요소 및 기능 링크 복사링크가 클립보드에 복사되었습니다!
Cruise Control은 4가지 주요 구성 요소(Load Monitor, Analyzer, Anomaly Detector, Executor-및 클라이언트 상호 작용을 위한 REST API)로 구성됩니다. AMQ Streams는 REST API를 사용하여 다음 Cruise Control 기능을 지원합니다.
- 최적화 목표에서 최적화 제안을 생성합니다.
- 최적화 제안을 기반으로 Kafka 클러스터 재조정.
- 최적화 목표
최적화 목표는 리밸런스에서 달성하려는 특정 목적을 설명합니다. 예를 들어 목표는 주제 복제본을 브로커에 더 균등하게 배포하는 것입니다. 설정을 통해 포함할 목표를 변경할 수 있습니다. 목표는 하드 목표 또는 소프트 목표로 정의됩니다. Cruise Control 배포 구성을 통해 어려운 목표를 추가할 수 있습니다. 또한 각 카테고리에 적합한 기본, 기본 및 사용자 제공 목표를 보유하고 있습니다.
- 어려운 목표는 사전 설정되며 최적화 제안에 만족해야합니다.
- 최적화 제안에 성공하려면 소프트 목표를 충족할 필요가 없습니다. 즉, 모든 어려운 목표를 충족한다는 것을 의미하면 따로 설정할 수 있습니다.
- 주요 목표는 Cruise Control에서 상속됩니다. 일부는 하드 목표로 사전 설정되어 있습니다. 주요 목표는 기본적으로 최적화 제안에 사용됩니다.
- 기본 목표는 기본적으로 주요 목표와 동일합니다. 고유한 기본 목표 집합을 지정할 수 있습니다.
- 사용자 제공 목표는 특정 최적화 제안을 생성하도록 구성된 기본 목표의 서브 세트입니다.
- 최적화 제안
최적화 제안은 리밸런스에서 달성하려는 목표를 포함합니다. 최적화 제안을 생성하여 제안된 변경 사항 및 리밸런스로 가능한 결과에 대한 요약을 생성합니다. 목표는 특정 우선 순위로 평가됩니다. 그런 다음 제안을 승인하거나 거부하도록 선택할 수 있습니다. 조정된 목표를 통해 다시 실행하도록 제안을 거부할 수 있습니다.
세 가지 모드 중 하나에서 최적화 제안을 생성할 수 있습니다.
-
full은 기본 모드이며 전체 리밸런스를 실행합니다. -
Add-brokers는 Kafka 클러스터를 확장할 때 브로커를 추가한 후 사용하는 모드입니다. -
remove-brokers는 Kafka 클러스터를 축소할 때 브로커를 제거하기 전에 사용하는 모드입니다.
-
다른 Cruise Control 기능은 현재 지원되지 않습니다. 여기에는 자체 복구, 알림, 쓰기-자유 목표, 주제 복제 요소 변경을 포함하여 현재 지원되지 않습니다.