第 3 章 从外部来源加载配置值
使用配置供应商插件从外部来源加载配置数据。供应商独立于 AMQ Streams 运行。您可以使用它们为所有 Kafka 组件(包括生产者和消费者)加载配置数据。例如,使用它们为 Kafka Connect 连接器配置提供凭证。
- OpenShift 配置提供程序
OpenShift Configuration Provider 插件从 OpenShift secret 或 ConfigMap 中加载配置数据。
假设您有一个在 Kafka 命名空间或 Kafka 集群外管理的
Secret
对象。OpenShift Configuration Provider 允许您在不提取文件的情况下引用配置中的机密值。您只需告知供应商使用哪些 secret 并提供访问权限。供应商加载数据而无需重启 Kafka 组件,即使使用新的Secret
或ConfigMap
对象。此功能可避免在 Kafka Connect 实例托管多个连接器时中断。- 环境变量配置提供程序
Environment Variables Configuration Provider 插件从环境变量加载配置数据。
环境变量的值可以从 secret 或 ConfigMap 中映射。您可以使用 Environment Variables Configuration Provider (如,从 OpenShift secret 映射的环境变量)加载证书或 JAAS 配置。
OpenShift 配置提供程序无法使用已挂载的文件。例如,它无法加载需要信任存储或密钥存储的位置的值。反之,您可以将 ConfigMap 或 secret 挂载到 Kafka Connect pod 中作为环境变量或卷。您可以使用 Environment Variables Configuration Provider 来加载环境变量的值。您可以使用 KafkaConnect.spec
中的 externalConfiguration
属性添加配置。您不需要通过这种方法设置访问权限。但是,当将新的 Secret
或 ConfigMap
用于连接器时,Kafka Connect 将需要重启。这会导致中断所有 Kafka Connect 实例连接器。
3.1. 从 ConfigMap 中载入配置值 复制链接链接已复制到粘贴板!
此流程演示了如何使用 OpenShift Configuration Provider 插件。
在此过程中,外部 ConfigMap
对象为连接器提供配置属性。
先决条件
- OpenShift 集群可用。
- Kafka 集群正在运行。
- Cluster Operator 正在运行。
流程
创建包含配置属性的
ConfigMap
或Secret
。在本例中,名为
my-connector-configuration
的ConfigMap
对象包含 connector 属性:使用连接器属性的
ConfigMap
示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Kafka Connect 配置中指定 OpenShift Configuration Provider。
此处所示的规格支持从 secret 和 ConfigMap 中加载值。
启用 OpenShift Configuration Provider 的 Kafka Connect 配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建或更新资源以启用该提供程序。
oc apply -f <kafka_connect_configuration_file>
oc apply -f <kafka_connect_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建允许访问外部配置映射中的值的角色。
从配置映射访问值的角色示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该规则授予访问
my-connector-configuration
配置映射的角色权限。创建一个角色绑定,以允许访问包含配置映射的命名空间。
访问包含配置映射的命名空间的角色绑定示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 角色绑定授予访问
my-project
命名空间的角色权限。服务帐户必须是 Kafka Connect 部署使用的相同。服务帐户名称格式为 < cluster_name>-connect,其中 <cluster_name > 是
KafkaConnect
自定义资源的名称。在连接器配置中引用配置映射。
引用配置映射的连接器配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置映射中属性值的占位符在连接器配置中引用。占位符结构是
configmaps: <path_and_file_name> : & lt;property>
。KubernetesConfigMapConfigProvider
从外部配置映射读取并提取 option1 属性值。