Confluent REST Proxy の構成と管理

Confluent REST Proxy は、Kafka クラスターに対する RESTful インターフェイスを備えています。スタンドアロン REST Proxy は Confluent Platform のコンポーネントであり、その API は、メッセージの生成と消費、一連のトピックなどのクラスターメタデータへのアクセス、パーティションとブローカーのマッピングなど、クラスターとの多くの相互作用をサポートします。

Confluent for Kubernetes (CFK)を使用して、Kafka に対する次の 2 つの RESTful インターフェイスを構成してデプロイできます。

組み込みの Admin REST API
これは各ブローカーに組み込まれており、Kafka と MDS の管理機能で RESTful API を利用できるようにします。
スタンドアロン REST Proxy
これは別個のコンポーネントサービスであり、RESTful API を使用して Kafka に対するメッセージの生成と消費、および Kafka の管理を行うことができるようにします。

REST Proxy の詳細については、「Confluent REST API」を参照してください。

Confluent for Kubernetes (CFK)を使用して、宣言型 API により REST Proxy を構成、デプロイ、および管理できます。詳細については、このトピックの以降の部分を参照してください。

他の Confluent Platform コンポーネントと同様に、CFK には REST Proxy コンポーネントのためのカスタムリソース定義(CRD)が用意されています。これは以下をサポートします。

  • サーバー(kafka-rest.properties ファイル内)、JVM、および log4j の構成のオーバーライド
  • Kubernetes のスケジューリングメカニズムの仕様
  • ポッドのアノテーション
  • ノードのラベル
  • Toleration

CFK の REST Proxy は Confluent Platform 6.2.0 以降と連携します。

REST Proxy の構成

以下に、REST Proxy カスタムリソース(CR)の例を示します。

apiVersion: platform.confluent.io/v1beta1
kind: KafkaRestProxy
metadata:
  name: kafkarestproxy
  namespace: operator
spec:
  authentication:
    basic:
      secretRef: kafkarestproxy-users
    type: basic
  dependencies:
    schemaRegistry:
      authentication:
        basic:
          secretRef: sr-client-basic
        type: basic
      tls:
        enabled: true
      url: https://schemaregistry.operator.svc.cluster.local:8081
  image:
    application: confluentinc/cp-kafka-rest:7.1.0
    init: confluentinc/confluent-init-container:2.3.1
    pullSecretRef:
      - confluent-registry
  replicas: 3
  tls:
    autoGeneratedCerts: true

依存関係の構成

REST Proxy は、次の Confluent Platform コンポーネントに直接依存しています。

  • Kafka
  • RBAC が有効の場合は、Metadata Service(MDS)
  • Schema Registry
  • Confluent Control Center で生成と消費をモニタリングする場合は、モニタリングインターセプター

設定する必要がある依存関係プロパティを確認するには、以下のコマンドを使用して REST Proxy カスタムリソース定義(CRD)を調べます。コマンドの詳細については、「kubectl を使用した Confluent Platform の CRD の調査」を参照してください。

kubectl explain kafkarestproxy.spec

Kafka

REST Proxy CR で使用可能な依存関係プロパティを確認するには、以下のコマンドを繰り返し実行します。

kubectl explain kafkarestproxy.spec.dependencies.kafka

MDS

RBAC が有効になっている場合、REST Proxy 用に MDS を構成する必要があります。

REST Proxy CR で使用可能な依存関係プロパティを確認するには、以下のコマンドを繰り返し実行します。

kubectl explain kafkarestproxy.spec.dependencies.mds

Schema Registry

REST Proxy は、スキーマの管理に Schema Registry が使用されている場合、その Schema Registry に依存します。

REST Proxy CR で使用可能な依存関係プロパティを確認するには、以下のコマンドを繰り返し実行します。

kubectl explain kafkarestproxy.spec.dependencies.schemaRegistry

次の Schema Registry URL を REST Proxy CR で明示的に設定して、Schema Registry にアクセスできるようにします。

dependencies:
  schemaRegistry:
    url:

インターセプター

REST Proxy では、Java の新規プロデューサーおよびコンシューマーの設定の一環としてインターセプター構成をサポートしています。これは、インターセプターの依存関係仕様で構成できます。

REST Proxy CR で使用可能な依存関係プロパティを確認するには、以下のコマンドを繰り返し実行します。

kubectl explain kafkarestproxy.spec.dependencies.interceptor

外部アクセスの構成

CFK では、REST Proxy エンドポイントへの外部アクセスについて以下のメカニズムをサポートしています。

コンシューマーのセッションアフィニティ

Kafka コンシューマーはステートフルであるため、各コンシューマーインスタンスからのリクエストは同じ REST プロキシインスタンスにルーティングされる必要があります。コンシューマー用に REST Proxy への外部アクセスを構成する場合は、REST Proxy カスタムリソース(CR)で セッションアフィニティ を有効にします。

セッションアフィニティの構成の詳細については、ロードバランサーノードポート、および Openshift ルート を参照してください。

セキュリティの構成

認証

REST Proxy を使用したクライアントの認証

REST Proxy を使用してクライアントを認証するには、REST Proxy CR で以下のいずれかを構成します。

Kafka を使用した REST Proxy の認証

Kafka ブローカーを使用して REST Proxy を認証するには、REST Proxy CR の Kafka 依存関係セクションで以下のいずれかを構成します。

MDS を使用した REST Proxy の認証

RBAC が有効になっているときに REST Proxy で MDS を使用して認証を行うには、「ベアラー認証」の説明に従って、MDS を使用した REST Proxy の認証を構成します。

Schema Registry を使用した REST Proxy の認証

Schema Registry がセキュアな場合に、スキーマを構成および管理するために Schema Registry を使用して REST Proxy を認証するには、REST Proxy CR の Schema Registry 依存関係セクションで認証を構成します。

認可

REST Proxy でサポートされる認可方式は次のとおりです。

ネットワーク暗号化

REST Proxy でサポートされているネットワーク暗号化の方式は以下のとおりです。

  • 暗号化なし(デフォルト)

  • TLS 暗号化

    REST Proxy の SAN 値の定義については、「SAN の定義」を参照してください。

Confluent ライセンスの構成

REST Proxy は契約プランライセンスで使用できます。

Confluent Platform ライセンスのアップデート」の説明に従って、REST Proxy CR でライセンスを構成します。

REST Proxy の管理

REST Proxy の複数のインスタンスを使用して、必要に応じて REST Proxy デプロイをスケールアップしたりスケールダウンしたりできます。詳細については、「REST Proxy のデプロイとロードバランシング」を参照してください。

その他のデプロイ後のタスク(クラスターのアップグレードやローリング再起動など)、および関連するプロデューサーやコンシューマーにそれらのアクションが与える影響については、「REST Proxy のデプロイ後」を参照してください。