3.2.14. 外部設定およびシークレットの使用
コネクターは、Kafka Connect の HTTP REST インターフェイスまたは KafkaConnectors
を使用して作成、再設定、および削除されます。これらの方法の詳細は、「コネクターの作成および管理」 を参照してください。コネクター設定は、HTTP リクエストの一部として Kafka Connect に渡され、Kafka 自体に保存されます。
ConfigMap およびシークレットは、設定やデータの保存に使用される標準的な OpenShift リソースです。コネクターの管理に使用するいずれの方法でも、ConfigMap およびシークレットを使用してコネクターの特定の要素を設定できます。その後、HTTP REST コマンドで設定値を参照できます (これにより、必要な場合は設定が分離され、よりセキュアになります)。この方法は、ユーザー名、パスワード、証明書などの機密性の高いデータに適用されます。
3.2.14.1. コネクター設定の外部への保存
ConfigMap またはシークレットをボリュームまたは環境変数として Kafka Connect Pod にマウントできます。ボリュームおよび環境変数は、KafkaConnect.spec
および KafkaConnectS2I.spec
の externalConfiguration
プロパティーで設定されます。
3.2.14.1.1. 環境変数としての外部設定
env
プロパティーは、1 つ以上の環境変数を指定するために使用されます。これらの変数には ConfigMap または Secret からの値を含めることができます。
ユーザー定義の環境変数に、KAFKA_
または STRIMZI_
で始まる名前を付けることはできません。
シークレットから環境変数に値をマウントするには、以下の例のように valueFrom
プロパティーおよび secretKeyRef
を使用します。
シークレットからの値に設定された環境変数の例
apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaConnect metadata: name: my-connect spec: # ... externalConfiguration: env: - name: MY_ENVIRONMENT_VARIABLE valueFrom: secretKeyRef: name: my-secret key: my-key
シークレットを環境変数にマウントする一般的なユースケースとして、コネクターが Amazon AWS と通信する必要があり、クレデンシャルで AWS_ACCESS_KEY_ID
および AWS_SECRET_ACCESS_KEY
環境変数を読み取る必要がある場合が挙げられます。
ConfigMap から環境変数に値をマウントするには、以下の例のように valueFrom
プロパティーで configMapKeyRef
を使用します。
ConfigMap からの値に設定された環境変数の例
apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaConnect metadata: name: my-connect spec: # ... externalConfiguration: env: - name: MY_ENVIRONMENT_VARIABLE valueFrom: configMapKeyRef: name: my-config-map key: my-key
3.2.14.1.2. ボリュームとしての外部設定
ConfigMap またはシークレットをボリュームとして Kafka Connect Pod にマウントすることもできます。以下の場合、環境変数の代わりにボリュームを使用すると便利です。
- TLS 証明書でのトラストストアまたはキーストアのマウント
- Kafka Connect コネクターの設定に使用されるプロパティーファイルのマウント
externalConfiguration
リソースの volumes
プロパティーで、ボリュームとしてマウントされる ConfigMap またはシークレットをリストします。各ボリュームは name
プロパティーに名前を指定し、ConfigMap またはシークレットを参照する必要があります。
外部設定のあるボリュームの例
apiVersion: kafka.strimzi.io/v1beta1 kind: KafkaConnect metadata: name: my-connect spec: # ... externalConfiguration: volumes: - name: connector1 configMap: name: connector1-configuration - name: connector1-certificates secret: secretName: connector1-certificates
ボリュームは、パス /opt/kafka/external-configuration/<volume-name>
の Kafka Connect コンテナー内にマウントされます。たとえば、connector1
という名前のボリュームのファイルは /opt/kafka/external-configuration/connector1
ディレクトリーにあります。
コネクター設定でマウントされたプロパティーファイルから値を読み取るには、FileConfigProvider
を使用する必要があります。