第22章 Cruise Control を使用したトピックレプリケーション係数の変更
Topic Operator によって管理される KafkaTopic リソースを更新して、トピックのレプリケーション係数を変更します。次のような特定の目的に合わせてレプリケーション係数を調整できます。
- 重要でないトピックやリソース不足のためにレプリケーション係数を低く設定する
- データの耐久性と耐障害性を向上させるために、より高いレプリケーション係数を設定する
Topic Operator は Cruise Control を使用して必要な変更を行うため、Streams for Apache Kafka とともに Cruise Control をデプロイする必要があります。
Topic Operator は、管理対象および一時停止されていないすべての KafkaTopic リソースを監視し、定期的に調整して、Kafka 内のトピックのレプリケーション係数を比較することにより、.spec.replicas 設定の変更を検出します。その後、1 つ以上のレプリケーションファクターの更新が Cruise Control に送信され、単一の要求で処理されます。
進行状況は KafkaTopic リソースのステータスに反映されます。
前提条件
- Cluster Operator がデプロイされている。
-
KafkaTopicカスタムリソースを通じてトピックを管理するには Topic Operator をデプロイする必要があります。 - Cruise Control は Kafka とともにデプロイされている。
手順
KafkaTopicリソースを編集して、replicas値を変更します。この手順では、
my-topicのreplicasの値を 1 から 3 に変更します。Kafka トピックレプリケーション係数の設定
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
KafkaTopic設定に変更を適用し、Topic Operator がトピックを更新するのを待ちます。 KafkaTopicリソースのステータスをチェックして、リクエストが成功したことを確認します。oc get kafkatopics my-topic -o yaml
oc get kafkatopics my-topic -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow レプリケーション係数の変更のステータス
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リクエストが完了する前に失敗した場合は、ステータスにエラーメッセージが表示されます。リクエストは失敗状態になった場合、定期的に再試行されます。
スタンドアロンの Topic Operator を使用してトピックのレプリケーション係数を変更する
スタンドアロンの Topic Operator を使用しており、設定を通じてトピックのレプリケーション係数を変更する場合は、Cruise Control デプロイメントと並行して Topic Operator を単方向モードで使用する必要があります。また、スタンドアロン Topic Operator デプロイメントを Cruise Control と統合できるように、次の環境変数を含める必要があります。
スタンドアロンの Topic Operator デプロイメント設定の例
TLS 認証および承認を有効にする場合は、以下のように必要な証明書をマウントします。
-
/etc/tls-sidecar/cluster-ca-certs/ca.crtにある Cluster CA (証明機関) の公開証明書 -
/etc/eto-cc-api/topic-operator.apiAdminNameおよび/etc/eto-cc-api/topic-operator.apiAdminPassword内の Basic 認証のクレデンシャル (ユーザー名とパスワード)