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
この例では、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 に渡すことを許可します。 |
| |
volumes | Secret または ConfigMap からのデータをボリュームとして Kafka Connect Pod に渡すことを許可します。 |