14.2.70.2. volumes


ボリュームを使用して ConfigMap またはシークレットを Kafka Connect Pod にマウントします。

以下の場合、環境変数の代わりにボリュームを使用すると便利です。

  • Kafka Connect コネクターの設定に使用されるプロパティーファイルのマウント
  • TLS 証明書でのトラストストアまたはキーストアのマウント

ボリュームは、Kafka Connectコンテナ内のパス/opt/kafka/external-configuration/<volume-name>にマウントされます。例えば、「connector-config」という名前のボリュームのファイルは、「/opt/kafka/external-configuration/connector-config」というディレクトリに表示されます。

設定プロバイダーは設定外から値を読み込みます。プロバイダーメカニズムを使用して、制限された情報がKafka ConnectREST インターフェースを介して渡されないようにします。

  • FileConfigProviderは、ファイル内のプロパティから構成値をロードします。
  • DirectoryConfigProviderは、ディレクトリ構造内の別々のファイルから構成値をロードします。

複数のプロバイダー (カスタムプロバイダーを含む) を追加する場合は、コンマ区切りリストを使用します。カスタムプロバイダーを使用して、他のファイルの場所から値をロードできます。

FileConfigProviderを使用してプロパティ値をロードする。

この例では、mysecretという名前の Secret に、データベース名とパスワードを指定するコネクタ プロパティが含まれています。

データベースプロパティーのある Secret の例

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
stringData:
  connector.properties: |- 
1

    dbUsername: my-username 
2

    dbPassword: my-password
Copy to Clipboard Toggle word wrap

1
プロパティーファイル形式のコネクター設定。
2
設定で使用されるデータベースのユーザー名およびパスワードプロパティー。

Kafka Connectの設定では、SecretとFileConfigProviderの設定プロバイダを指定します。

  • Secret はconnector-config という名前のボリュームにマウントされています。
  • FileConfigProviderには、エイリアスファイルが与えられます。

Secret からの値に設定された外部ボリュームの例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  config:
    config.providers: file 
1

    config.providers.file.class: org.apache.kafka.common.config.provider.FileConfigProvider 
2

  #...
  externalConfiguration:
    volumes:
      - name: connector-config 
3

        secret:
          secretName: mysecret 
4
Copy to Clipboard Toggle word wrap

1
設定プロバイダーのエイリアスは、他の設定パラメーターを定義するために使用されます。
2
FileConfigProviderは、プロパティファイルから値を提供します。このパラメータは、config.providersからのエイリアスを使用し、config.providers.${alias}.classという形式をとります。
3
Secret が含まれるボリュームの名前。各ボリュームは、nameプロパティに名前を指定し、ConfigMapまたはSecretへの参照を指定する必要があります。
4
Secret の名前。

Secret のプロパティー値のプレースホルダーは、コネクター設定で参照されます。プレースホルダーの構造は、file:PATH-AND-FILE-NAME:PROPERTYとなっています。FileConfigProviderは、コネクタ構成でマウントされたSecretからデータベースのユーザ名パスワードのプロパティ値を読み取り、抽出します。

外部値のプレースホルダーを示すコネクター設定の例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: my-source-connector
  labels:
    strimzi.io/cluster: my-connect-cluster
spec:
  class: io.debezium.connector.mysql.MySqlConnector
  tasksMax: 2
  config:
    database.hostname: 192.168.99.1
    database.port: "3306"
    database.user: "${file:/opt/kafka/external-configuration/connector-config/mysecret:dbUsername}"
    database.password: "${file:/opt/kafka/external-configuration/connector-config/mysecret:dbPassword}"
    database.server.id: "184054"
    #...
Copy to Clipboard Toggle word wrap

DirectoryConfigProviderを使用して、別々のファイルからプロパティ値をロードする。

この例では、SecretにはTLSのトラストストアとキーストアのユーザー認証情報が別々のファイルで含まれています。

ユーザークレデンシャルのある Secret の例

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
  labels:
    strimzi.io/kind: KafkaUser
    strimzi.io/cluster: my-cluster
type: Opaque
data: 
1

  ca.crt: # Public key of the client CA
  user.crt: # User certificate that contains the public key of the user
  user.key: # Private key of the user
  user.p12: # PKCS #12 archive file for storing certificates and keys
  user.password: # Password for protecting the PKCS #12 archive file
Copy to Clipboard Toggle word wrap

Kafka Connectの設定では、SecretとDirectoryConfigProviderの設定プロバイダーを指定します。

  • Secret はconnector-config という名前のボリュームにマウントされています。
  • DirectoryConfigProviderには、エイリアスのディレクトリが与えられます。

ユーザークレデンシャルファイルに設定された外部ボリュームの例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  config:
    config.providers: directory
    config.providers.directory.class: org.apache.kafka.common.config.provider.DirectoryConfigProvider 
1

  #...
  externalConfiguration:
    volumes:
      - name: connector-config
        secret:
          secretName: mysecret
Copy to Clipboard Toggle word wrap

1 1
DirectoryConfigProviderは、ディレクトリ内のファイルの値を提供します。このパラメータは、config.providersからのエイリアスを使用し、config.providers.${alias}.classという形式をとります。

クレデンシャルのプレースホルダーはコネクター設定で参照されます。プレースホルダの構造は、directory:PATH:FILE-NAMEとなっています。DirectoryConfigProviderは、コネクタ構成でマウントされたSecretから認証情報を読み取り、抽出します。

外部値のプレースホルダーを示すコネクター設定の例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: my-source-connector
  labels:
    strimzi.io/cluster: my-connect-cluster
spec:
  class: io.debezium.connector.mysql.MySqlConnector
  tasksMax: 2
  config:
    security.protocol: SSL
    ssl.truststore.type: PEM
    ssl.truststore.location: "${directory:/opt/kafka/external-configuration/connector-config:ca.crt}"
    ssl.keystore.type: PEM
    ssl.keystore.location: "${directory:/opt/kafka/external-configuration/connector-config:user.key}"
    #...
Copy to Clipboard Toggle word wrap

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat