5.2.3.3. 使用 OpenShift 构建和源至镜像创建容器镜像
此流程演示了如何使用 OpenShift 构建 和 源至镜像(S2I) 框架来创建新的容器镜像。
OpenShift 构建获取支持 S2I 的构建器镜像,以及用户提供的源代码和二进制文件,并使用它们来构建新的容器镜像。构建之后,容器镜像将存储在 OpenShift 的本地容器镜像存储库中,并可在部署中使用。
红帽生态系统目录 上提供了支持 S2I 的 Kafka Connect 构建器镜像,作为 registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:1.8.0
镜像的一部分。此 S2I 镜像提取您的二进制文件(带有插件和连接器),并将它们存储在 /tmp/kafka-plugins/s2i
目录中。它从这个目录中创建一个新的 Kafka Connect 镜像,然后可与 Kafka Connect 部署一起使用。当使用增强的镜像启动时,Kafka Connect 会从 /tmp/kafka-plugins/s2i
目录中加载任何第三方插件。
随着 KafkaConnect
资源引入 构建配置
,AMQ Streams 现在可以使用数据连接所需的连接器插件自动构建容器镜像。因此,使用 Source-to-Image(S2I)进行 Kafka Connect 的支持已弃用,并将在 AMQ Streams 1.8 后被删除。要准备此更改,您可以将 Kafka Connect S2I 实例迁移到 Kafka Connect 实例。
流程
在命令行中,使用
oc apply
命令创建和部署 Kafka Connect S2I 集群:oc apply -f examples/connect/kafka-connect-s2i.yaml
使用 Kafka Connect 插件创建目录:
$ tree ./my-plugins/ ./my-plugins/ ├── debezium-connector-mongodb │ ├── bson-3.4.2.jar │ ├── CHANGELOG.md │ ├── CONTRIBUTE.md │ ├── COPYRIGHT.txt │ ├── debezium-connector-mongodb-0.7.1.jar │ ├── debezium-core-0.7.1.jar │ ├── LICENSE.txt │ ├── mongodb-driver-3.4.2.jar │ ├── mongodb-driver-core-3.4.2.jar │ └── README.md ├── debezium-connector-mysql │ ├── CHANGELOG.md │ ├── CONTRIBUTE.md │ ├── COPYRIGHT.txt │ ├── debezium-connector-mysql-0.7.1.jar │ ├── debezium-core-0.7.1.jar │ ├── LICENSE.txt │ ├── mysql-binlog-connector-java-0.13.0.jar │ ├── mysql-connector-java-5.1.40.jar │ ├── README.md │ └── wkb-1.0.2.jar └── debezium-connector-postgres ├── CHANGELOG.md ├── CONTRIBUTE.md ├── COPYRIGHT.txt ├── debezium-connector-postgres-0.7.1.jar ├── debezium-core-0.7.1.jar ├── LICENSE.txt ├── postgresql-42.0.0.jar ├── protobuf-java-2.6.1.jar └── README.md
使用
oc start-build
命令,使用准备的目录启动镜像的新构建:oc start-build my-connect-cluster-connect --from-dir ./my-plugins/
注意构建的名称与部署的 Kafka Connect 集群的名称相同。
- 构建完成后,Kafka Connect 部署会自动使用新镜像。