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.0.1
init: confluentinc/confluent-init-container:2.2.2
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 で以下のいずれかを構成します。
- 認証なし
- HTTP 基本認証
- 相互 TLS(mTLS)認証
Kafka を使用した REST Proxy の認証¶
Kafka ブローカーを使用して REST Proxy を認証するには、REST Proxy CR の Kafka 依存関係セクションで以下のいずれかを構成します。
- 認証なし
- SASL/PLAIN
- mTLS
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 でサポートされる認可方式は次のとおりです。
なし(デフォルト)
Confluent のロールベースアクセス制御(RBAC)による認可
内部のロールバインディングを設定するためのシナリオのサンプルについては、内部のロールバインディングの構成 を参照してください。
Confluent ライセンスの構成¶
REST Proxy は契約プランライセンスで使用できます。
「Confluent Platform ライセンスのアップデート」の説明に従って、REST Proxy CR でライセンスを構成します。
REST Proxy の管理¶
REST Proxy の複数のインスタンスを使用して、必要に応じて REST Proxy デプロイをスケールアップしたりスケールダウンしたりできます。詳細については、「REST Proxy のデプロイとロードバランシング」を参照してください。
その他のデプロイ後のタスク(クラスターのアップグレードやローリング再起動など)、および関連するプロデューサーやコンシューマーにそれらのアクションが与える影響については、「REST Proxy のデプロイ後」を参照してください。