Strimzi Kafka Bridge(桥接)实战之一:简介和部署

strimzi,kafka,bridge,桥接,实战,之一,简介,部署 · 浏览次数 : 27

小编点评

**Strimzi Kafka Bridge(桥接)实战** **引言** 《Strimzi Kafka Bridge(桥接)实战》是《strimzi实战》系列的第一篇,介绍和部署Strimzi Kafka Bridge服务。 **桥接功能** Strimzi Kafka Bridge是一个核心的服务,从下图可看出它的作用: [Image of Strimzi Kafka Bridge diagram] **部署步骤** 1. 添加名为 `kafka-bridge.yaml` 的文件,内容如下: ```yaml apiVersion: kafka.strimzi.io/v1beta2 kind: KafkaBridge metadata: name: my-bridgespec replicas: 1 bootstrapServers: my-cluster-kafka-bootstrap:9092 http: port: 8080 ``` 2. 执行以下命令启动 bridge 服务: ```bash kubectl apply -f kafka-bridge.yaml -n aabbcc ``` 3. 测试 bridge 服务: 使用 `curl` 命令测试连接: ```bash curl -X GET http://10.96.0.222:8080/topics ``` **安全问题** Bridge服务是暴露在外部网络上的,因此存在安全问题。为了确保远程调用安全,需要进行以下安全配置: * 使用 NodePort 服务类型暴露端口。 * 添加防火墙规则阻止所有外部访问。 * 在 client 应用程序中进行安全验证。 **结论** 《Strimzi Kafka Bridge(桥接)实战》是一个实用的参考,帮助读者了解和部署Strimzi Kafka Bridge服务。然而,安全问题应该认真考虑和处理。

正文

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

关于《Strimzi Kafka Bridge(桥接)实战》

  • 在strimzi技术体系中,桥接(bridge)是很要的功能,内容也很丰富,因此将桥接相关的内容从《strimzi实战》系列中独立出来,成立桥接相关的系列文章,便于分类和专项深入

本篇概览

  • 本文是《Strimzi Kafka Bridge(桥接)实战》系列的第一篇,按照惯例,先做好介绍和部署工作,以便后续深入学习
  • 什么是桥接?来看官方说明,如下图,最上面的Brokers就是核心的kafka服务,底部的Client是业务应用,分为消息生产者(Producers)和消费者(Consumers)两类,正中心蓝色背景的Strimzi Kafka Bridge就是今天的主角:strimzi桥接服务,从下图很容易看出它的作用:通过http接口来生产和消费kafka消息
    在这里插入图片描述
  • 在整个strimzi技术体系中,bridge可谓举足轻重,如下图红框,官方为bridge准备了专门文档链接,这是其他扩展组件都没有的待遇
    在这里插入图片描述

安装方式的选择

  • bridge支持在两种环境下安装:
  1. kubernetes环境:使用strimzi的kafka-operator安装
  2. 非kubernetes环境:使用bridge的安装包,解压后修改配置文件,然后用内置的shell文件启动即可
  • 整个《strimzi实战》系列都是在kubernetes环境中操作的,所以本篇只考虑上述第一种安装方式:kafka-operator
  • 整个部署过程非常简单,首先确认kubernetes和strimzi的operator都已经部署完成,kafka服务也已经部署好了(部署细节请参考《strimzi实战之二:部署和消息功能初体验》
  • 第二步:新增名为kafka-bridge.yaml的文件,内容如下
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  replicas: 1
  bootstrapServers: my-cluster-kafka-bootstrap:9092
  http:
    port: 8080
  • 执行以下命令开始部署bridge,我这里kafka服务的namespace是aabbcc,请您改为自己实际的namespace
kubectl apply -f kafka-bridge.yaml -n aabbcc
  • 查看deployment、service、pod,发现均有新增,如下图
    在这里插入图片描述
  • 从上图可见,bridge的service是ClusterIP类型,其值是10.96.0.222,于是迫不及待的试试bridge,执行以下命令,向bridge发出第一个请求,功能是获取所有topic
curl -X GET http://10.96.0.222:8080/topics
  • 成功收到bridge的响应,如下图,现有全部topic都返回了
    在这里插入图片描述

增加一个service,使得可以从外部访问

  • bridge的服务是ClusterIP类型,外部无法访问,那就新增一个NodePort类型的服务吧,新建文件bridge-service-nodeport.yaml,内容如下,31331是我在宿主机上随便找了个未占用的端口,您随意
apiVersion: v1
kind: Service
metadata:
  name: bridge-nodeport
spec:
  type: NodePort
  ports:
  - port: 8080
    nodePort: 31331
  selector:
    strimzi.io/cluster: my-bridge
    strimzi.io/kind: KafkaBridge
    strimzi.io/name: my-bridge-bridge
  • 执行以下命令让上述service生效,我这里kafka服务的namespace是aabbcc,请您改为自己实际的namespace
kubectl apply -f bridge-service-nodeport.yaml -n aabbcc
  • 从宿主机暴露端口后,就可以用客户端工具(例如apipost)远程访问了,如下图
    在这里插入图片描述

安全问题(需要自己处理)

  • 从前面的架构图可以看出,业务服务与bridge之间是http协议,那么存在安全问题吗(毕竟是远程调用)?如果真的存在安全问题,strimzi都应对之策吗?
  • 安全问题确实存在,而且strimzi的应对之策也真够敷衍...不多说了,来围观吧
    在这里插入图片描述
  • 调侃归调侃,但是真正使用bridge的时候,尤其是应用与bridge不在同一个内网环境时,一定要自己做好安全工作
  • 至此,Strimzi Kafka Bridge的介绍和部署已经完成,接下来的文章会有更多实战等着咱们,通过实际操作熟练掌握桥接特性

欢迎关注博客园:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

与Strimzi Kafka Bridge(桥接)实战之一:简介和部署相似的内容:

Strimzi Kafka Bridge(桥接)实战之一:简介和部署

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于《Strimzi Kafka Bridge(桥接)实战》 在strimzi技术体系中,桥接(bridge)是很要的功能,内容也很丰富,因此将桥接相关的

Strimzi Kafka Bridge(桥接)实战之三:自制sdk(golang版本)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Strimzi Kafka Bridge(桥接)实战》的第三篇,前文咱们掌握了Strimzi Kafka Bridge的基本功能:基于h

Strimzi Kafka Bridge(桥接)实战之二:生产和发送消息

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Strimzi Kafka Bridge(桥接)实战之》系列的第二篇,咱们直奔bridge的重点:常用接口,用实际操作体验如何用brid

strimzi实战之三:prometheus+grafana监控(按官方文档搞不定监控?不妨看看本文,已经踩过坑了)

通过strimzi部署的kafka集群,如何部署prometheus+grafana去监控呢?官方文档信息量太大,即便照着做也可能失败,这里有一份详细的保姆级操作指南,助您成功部署监控服务

strimzi实战之一:简介和准备

strimzi是个CNCF项目,功能是用于在kubernetes环境下部署和配置kafka,并提供了丰富的扩展功能,《strimzi实战》是欣宸新的系列原创,旨在与大家一起通过实战学习和掌握strimzi,并且深入源码

strimzi实战之二:部署和消息功能初体验

快速部署strimzi,然后体验基本功能:发送和接收消息