19.7. 最適化プロポーザルの承認
状態が ProposalReady
の場合、Cruise Control によって生成された 最適化プロポーザル を承認できます。その後、Cruise Control は最適化プロポーザルを Kafka クラスターに適用して、パーティションをブローカーに再割り当てし、パーティションのリーダーを変更します。
これはドライランではありません。最適化プロポーザルを承認する前に、以下を行う必要があります。
- 最新でない可能性があるため、プロポーザルを更新します。
- プロポーザルの内容 を注意して確認します。
前提条件
- Cruise Control から 最適化プロポーザルを生成済み である。
-
KafkaRebalance
カスタムリソースの状態がProposalReady
である必要があります。
手順
承認する最適化プロポーザルに対して、以下の手順を実行します。
最適化プロポーザルが新規生成された場合を除き、プロポーザルが Kafka クラスターの状態に関する現在の情報を基にしていることを確認します。これには、最適化プロポーザルを更新し、必ず最新のクラスターメトリクスを使用するようにします。
OpenShift の
KafkaRebalance
リソースにstrimzi.io/rebalance=refresh
でアノテーションを付けます。oc annotate kafkarebalance <kafka_rebalance_resource_name> strimzi.io/rebalance="refresh"
最適化提案のステータスが
ProposalReady
に変わるまで待ちます。oc get kafkarebalance -o wide -w -n <namespace>
PendingProposal
-
PendingProposal
ステータスは、最適化プロポーザルの準備できているかどうかを確認するために、リバランス Operator が Cruise Control API をポーリングしていることを意味します。 ProposalReady
-
ProposalReady
ステータスは、最適化プロポーザルのレビューおよび承認の準備ができていることを意味します。
ステータスが
ProposalReady
に変わると、最適化プロポーザルを承認する準備が整います。Cruise Control が適用する最適化プロポーザルを承認します。
OpenShift の
KafkaRebalance
リソースにstrimzi.io/rebalance=approve
でアノテーションを付けます。oc annotate kafkarebalance <kafka_rebalance_resource_name> strimzi.io/rebalance="approve"
- Cluster Operator は アノテーションが付けられたリソースを検出し、Cruise Control に Kafka クラスターのリバランスを指示します。
最適化提案のステータスが
Ready
に変わるまで待ちます。oc get kafkarebalance -o wide -w -n <namespace>
Rebalancing
-
Rebalancing
ステータスは、リバランスが進行中であることを意味します。 Ready
-
Ready
ステータスは、リバランスが完了したことを意味します。 NotReady
-
NotReady
ステータスは、エラーが発生したことを意味します —KafkaRebalance
リソースに関する問題の修正 を参照してください。
状態が
Ready
に変更されると、リバランスが完了します。同じ
KafkaRebalance
カスタムリソースを使用して別の最適化提案を生成するには、カスタムリソースにrefresh
アノテーションを適用します。これにより、カスタムリソースはPendingProposal
またはProposalReady
の状態に移行します。その後、最適化プロポーザルを確認し、必要に応じて承認することができます。