Confluent for Kubernetes を使用した Cluster Linking

Cluster Linking 機能を使用すると、Kafka クラスターをまとめて直接接続し、1 つのクラスター(送信元)から別のクラスター(送信先)にトピックをミラーリングすることができます。この機能により、マルチデータセンター、マルチクラスター、およびハイブリッドクラウドのデプロイを簡単に構築できるようになります。

Confluent for Kubernetes (CFK)には、クラスターリンクの定義、アップデート、管理を行うための宣言型 API、ClusterLink のカスタムリソース定義(CRD)が用意されています。

クラスターリンクの構成は、送信先クラスターで行います。送信元クラスターでの変更は必要ありません。

要件

クラスターリンクを作成する前に、次の要件を満たしていることを確認してください。

  • 送信先クラスターは、Confluent Platform クラスターまたは Confluent Cloud クラスターである必要があります。
  • クラスターリンクは、Admin REST APIs を使用して作成され、管理されます。また、Admin REST APIs が送信先クラスターで実行されている必要があります。送信先クラスターが CFK で管理されている場合は、「Confluent Admin REST API」にある Admin REST APIs のセットアップ手順を参照してください。
  • 送信先 Kafka は、送信元 Kafka にとってはコンシューマーです。したがって、送信元 Kafka でセキュリティ設定が有効になっている場合は、送信先クラスターで認証/暗号化を構成して、送信元クラスターと通信する必要があります。必要な手順については、「送信先の Kafka のセキュリティの構成」を参照してください。

ミラートピックの作成

ミラートピックは、クラスターリンクによって作成され、所有されます。

ミラートピックは、送信先クラスター上で、一意の名前とともに、新しいトピックとして作成されます。クラスターリンクの送信元クラスター上に、同じ名前のトピックが存在していることが必要です。これが、ミラートピックの送信元トピックとなります。

既存の読み取りおよび書き込み可能トピックをミラートピックに変換することはできません。

For details on mirror topic creation in Confluent Platform, see Mirror Topic Creation.

ミラートピックを作成するには、以下を実行します。

  1. ClusterLink の CR で以下を設定します。

    spec:
      mirrorTopics:
        - name:                      --- [1]
          state:                     --- [2]
          configs:                   --- [3]
    
    • [1](必須)送信元トピックの名前。これと同じ名前のトピックが、クラスターリンクの送信元クラスター上に存在する必要があります。
    • [2](省略可) このミラートピックの作成時のステート。指定可能な値は、PAUSEPROMOTEFAILOVERACTIVE です。ステートを定義しない場合は、デフォルト値である ACTIVE となります。
    • [3](省略可)構成オプションのリストについては、「Cluster Linking の構成オプション」を参照してください。
  2. 以下を実行して変更を適用します。

    kubectl apply -f <Cluster Link CR>
    

ミラートピックの変更

ミラートピックをプロモート、フェイルオーバー、一時停止することができます。

  • トピックのプロモート: ミラーリングを停止し、送信先のトピックを書き込み可能にするときは、トピックをプロモートします。ラグがゼロであるかどうかを確認し、トピックのプロモート前に最終同期を行います。
  • トピックのフェイルオーバー: これは、プロモートに似ていますが、ラグがゼロになるまで待機しません。

To learn more about what happens to a Confluent Platform mirror topic when promoted or failed over, see Converting a Mirror Topic to a Normal Topic.

For the available states and statues of a mirror topic in Confluent Platform, see Mirror Topic States and Statuses.

ミラートピックのプロモートまたはフェイルオーバーを行うと、KafkaTopic の CR が CFK によって作成されます。新しい KafkaTopic の CR の名前は次のとおりです。送信先クラスターのトピック名は変わらず、ミラートピックの名前と同じままです。

clink-toLowerCase(<topic-name>)-<First section of the ClusterLink object UID>

たとえば、ミラートピック myMirrorTopic をプロモートすると、新しい KafkaTopic の CR の名前は次のようになります。

clink-mymirrortopic-0154a475

新しい KafkaTopic の CR の名前が 63 文字を超える場合は、64 文字目以降が切り捨てられます。

アクティブなミラートピックを変更してプロモート、フェイルオーバー、一時停止を行うには、次の手順に従います。

  1. ClusterLink の CR の mirrorTopics セクションを変更します。

    spec:
      mirrorTopics:
        - name:                      --- [1]
          state:                     --- [2]
    
    • [1](必須)
    • [2](省略可) このミラートピックのステート。指定可能な値は、PAUSEPROMOTEFAILOVERACTIVE です。
  2. 以下を実行して変更を適用します。

    kubectl apply -f clusterlink.yaml
    

ミラートピックの削除

For the process of deleting a mirror topic in Confluent Platform, see Mirror Topic Deletion.

For the available states and statues of a mirror topic in Confluent Platform, see Mirror Topic States and Statuses.

ミラートピックを削除するには、次の手順に従います。

  1. ClusterLink の CR にあるリストからミラートピックを削除します。

    spec:
      mirrorTopics:
        - name:                      --- [1]
    
    • [1] ミラートピックの名前とその他のプロパティを削除します。
  2. 以下を実行して変更を適用します。

    kubectl apply -f clusterlink.yaml