B.89.2. volumes

ConfigMap またはシークレットをボリュームとして Kafka Connect Pod にマウントすることもできます。

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

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

プロパティーのある Secret の例

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
stringData:
  connector.properties: |- 1
    dbUsername: my-user 2
    dbPassword: my-password

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

この例では、mysecret という名前の Secret connector-config という名前のボリュームにマウントされます。config プロパティーでは、外部ソースから設定値を読み込む設定プロバイダー(FileConfigProvider)を指定します。Kafka FileConfigProvider にはエイリアス ファイル が与えられ、コネクター設定で使用する ファイルからデータベースの username および password プロパティーの値を読み取り、抽出します。

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

apiVersion: kafka.strimzi.io/v1beta1
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

1
他の設定パラメーターを定義するために使用される設定プロバイダーのエイリアス。複数のプロバイダーを追加する場合は、コンマ区切りリストを使用します。
2
FileConfigProvider はプロパティーファイルからの値を提供する設定プロバイダーです。このパラメーターは config.providers からのエイリアスを使用し、config. providers.${alias}.class の形式を取ります。
3
Secret が含まれるボリュームの名前。各ボリュームは name プロパティーに名前を指定し、ConfigMap またはシークレットを参照する必要があります。
4
Secret の名前。

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

FileConfigProvider は、コネクター設定でマウントされたプロパティーファイルから値を読み取るために使用されます。

プロパティー説明

env

Secret または ConfigMap からのデータを環境変数として Kafka Connect Pod に渡すことを許可します。

ExternalConfigurationEnv array

volumes

Secret または ConfigMap からのデータをボリュームとして Kafka Connect Pod に渡すことを許可します。

ExternalConfigurationVolumeSource array