Skip to main content

moregeek program

详解云端 kop——streamnative cloud for kafka_wx630f055ce23fc的博客-多极客编程

StreamNative Cloud for Kafka

目前 StreamNative Cloud for Kafka 服务是预测试版本,只对少数用户定向开放体验。

StreamNative Cloud 简介

StreamNative Cloud 提供了全托管(Cloud-Hosted)和半托管(Cloud-Managed)两种云端服务,前者是由 StreamNative 提供的全 SaaS 服务,用户可以在云端以 SaaS 模式使用 Pulsar——注册账号后,团队即可创建集群,并根据暴露的地址进行使用。半托管服务和全托管一样,在控制面都使用 StreamNative 的 API 服务,但区别在于前者允许用户将集群负载建立并运行在自己的云环境中。StreamNative Cloud 操作体验统一、学习成本低,并且用可以把业务流量的负载都保留在自己的集群内。

详解云端 KoP——StreamNative Cloud for Kafka_多协议

StreamNative Cloud 简介

  • • StreamNative Cloud 的架构基础设施完全依托于 K8s 实现,目前提供了 AWS 和 GCP(GoogleCloud Platform) 的支持,后期将加入对 Azure、阿里云等云厂商的支持。
  • • StreamNative Cloud 的存储服务目前只提供了 Bookie 的基本存储,默认使用各个云厂商提供的网络云盘,最大程度减轻运维压力。未来会考虑基于各个云厂商的对象存储做扩展。
  • • StreamNative Cloud 的计算服务提供了 Pulsar Broker 和 Pulsar Functions 服务。

StreamNative Cloud for Kafka 简介

StreamNative Cloud for KafkaⓇ 是基于 StreamNative Cloud 提供的一个兼容 Kafka API 的云端服务,核心组件主要包括:

  • • Kafka-on-Pulsar(KoP):对 StreamNative Cloud Broker 组件开启 KoP 服务;
  • • Cloud Enhanced Networking(Istio): 使用 Istio 对 StreamNative Cloud 中服务进行协议代理和流量管理。

StreamNative Cloud for Kafka 特性

在云端环境提供 KoP 可以很好地结合 Kafka 和 Pulsar 两大主流消息中间件服务各自的优势:

  • • 打破 Kafka 存在的诸多限制:如突破 Kafka Topic 数量限制,达到千级别 topic 后,单集群会受到很大影响,而 KoP 通过 Pulsar 存储计算分离不会受到 Kafka 的限制;简单扩缩容,不会受到 Kafka Rebalance 限制等;利用了 Pulsar 内置的多租户和跨地域复制功能。企业与团队无需再设计变通方案来共享 Kafka 集群,通过 Pulsar 中的租户、命名空间和可执行策略即可使用稳固的模型来共享集群,适用于事件驱动架构和基于微服务的应用程序。
  • • 弥补 Pulsar 的生态不足:Pulsar 在生态上和 Kafka 仍有差距,比如 Client SDK 和 Connector 在数量和广度上不如 Kafka。KoP 提供对 Kafka API 提供完整兼容支持,充分利用两大生态;
  • • 功能齐全的管理模式;简化基础设施的同时支持不同的场景。

StreamNative Cloud for Kafka 优势

详解云端 KoP——StreamNative Cloud for Kafka_多协议_02

StreamNative Cloud for Kafka 使用

目前该服务处于内测阶段,感兴趣的用户可以进入 网页  [1] 申请试用。

点击上述开关,选择对应规格的机型、创建对应服务即可获得开启 KoP 的 Pulsar 集群。

详解云端 KoP——StreamNative Cloud for Kafka_kafka_03

主要的配置均已自动完成,系统会提供 KoP 访问的公网域名(如上图),使用该域名即可连接自己的 Kafka 程序。

实现原理

KoP 服务暴露 - NodePort

详解云端 KoP——StreamNative Cloud for Kafka_客户端_04

详解云端 KoP——StreamNative Cloud for Kafka_kafka_05

在 K8s 环境中使用 KoP 时,如何暴露服务是最基础的问题。 Pulsar 和 Kafka 在这里有所不同,前者相对比较简单,Pulsar 使用了 Proxy 服务帮助 Broker 做 Topic lookup 和读写消息转发,部署好 Proxy 后将 Proxy service 地址映射出去,客户端只需要访问地址而无需关心每个 Broker 的地址; Kafka 在 K8s 环境下则常常需要依赖 NodePort 来暴露服务。

KoP 服务暴露 - LoadBalancer

Kafka 在 K8s 环境下除了可以依赖 NodePort 来暴露服务,在实践中还可以基于 LoadBalancer 来暴露服务,这里借助了 Istio 的路由能力来暴露 Kafka Broker。

详解云端 KoP——StreamNative Cloud for Kafka_kafka_06

Istio 集成

StreamNative 团队衡量两种 Kafka 暴露服务方案后,最终选择了基于 Istio 的暴露方法,因为 StreamNative Cloud 引入 Istio 有很多优势:

  • • 实现多协议的统一访问代理:Pulsar / KoP / MoP……
    除了 KoP,Pulsar 还有多个插件协议如 MoP、AoP、RoP,通过 Istio 可以实现多协议的统一访问代理的管理,也方便未来增加新的插件协议后进行扩展。
  • • 更安全的内部通信访问:Strict mTLS in Peer authentication
    Istio 也可以为全托管的服务内部提供安全性保障。在集群注入 Istio 后,默认各服务之间用 Strict mTLS 通信。单集群内的 ZooKeeper、BookKeeper、Broker 等组件都可以在 mTLS 加密下进行通信。
  • • Cloud 上复杂网络拓扑的管理:支持跨云服务,提升可靠性;
    容灾级别高、数据安全性要求级别高的用户,可以同时跨多个云各自创建 Pulsar 集群,并开启跨地域复制服务进行数据同步。即使某个云厂商大面积故障,用户也可以进行切换,受到的影响非常小。跨地域复制特性本身可以对订阅进行复制,故障集群切换后也可以按照之前消费 offset 信息进行消费。
  • • 更精细的流量管理:异常流量的熔断、服务的灰度升级等等。

使用 Istio 后,Lookup 访问情况如下:

详解云端 KoP——StreamNative Cloud for Kafka_kafka_07

上图中共有四个客户端,橘色与红色客户端都在 K8s 内部,分别访问 Kafka 和 Pulsar 地址。对内部服务来说访问方式不变,直接访问 Broker 对应的 LoadBalancer 地址,连接 Broker 的无头服务。K8s 集群外部的客户端需要通过 Istio 网关,借助其路由能力访问具体的域名地址。网关会将流量转发到 K8s 服务的地址上,最终到达具体的 Broker。上图中 6652 和 6650 端口、9092 和 9094 端口的作用一致,只是为了更好地区分流量而分别处理。

KoP 原理相同,从外部 9093 端口访问后会被终止,继而访问 9094 端口。外部 Pulsar 与 Kafka 客户端访问后会获取目标 Broker 的地址,这是 Lookup 后获得的连接地址,可以通过网关来访问。

Lookup 结束后,开始生产和消费访问:

详解云端 KoP——StreamNative Cloud for Kafka_多协议_08

外部客户端获得 Broker 地址后,生产和消费访问会通过映射到网关转发到对应的 Broker 上,不再通过 K8s 服务。内部客户端则不受影响。通过这种方式后不再需要 Pulsar Proxy,全部流量统一通过 Istio 管理,防止 KoP 无法使用仅 Pulsar 自带的 Proxy 服务。

这种方案需要管理的服务和配置数量较多,比较复杂,为此 StreamNative 团队在 Pulsar Operators 上做了扩展:

  • • Broker CRD 增加 ProtocolHandlersConfig、KoPProtocolHandlerConfig 等配置,简化 KoP 相关配置管理;
  • • Broker CRD 增加 IstioConfig,实现 Gateway、VirtualService、DestinationRule 自动创建和监听。

未来规划

StreamNative Cloud In China 未来计划:

  • • 在国内提供基于 AWS China 的云托管服务;
  • • 对接更多国内公有云:阿里云、华为云等;
  • • 提供 StreamNative Cloud for Kafka 的试用体验;
  • • 提供 StreamNative Cloud for MQTT 的试用体验。

©著作权归作者所有:来自51CTO博客作者小二上酒8的原创作品,请联系作者获取转载授权,否则将追究法律责任

如果你还没玩过docker stack管理服务,你已经out了,(送portainer集群管理教程)_博学谷狂野架构师的博客-多极客编程

我们上面使用swarm部署服务,单个服务还好,如果很多个服务怎么来解决呢,这里就用到了Docker Stack管理服务。 ​ 在上面我们学会了如何配置一个swarm集群,并且知道如何在swarm集群上部署应用,现在,我们开始了解Docker层级关系中的最高一个层级——stack。一个stack就是一组有关联的服务的组合,可以编排在一起,一起管理。 ​ 单机模式下,我们可以使用 Docke

g029-op-coa-open-02 centos 8.4 通过 packstack 安装开源 openstack(v版)_cloudcs的博客-多极客编程

1 您需要了解 虚拟化平台版本 VMware Workstation 16.2.0 操作系统版本 CentOS Linux release 8.4.2105 ,可参考下方相关文章 G003 完成系统安装,步骤一致 安装源您可访问 CentOS官网 / 阿里永久镜像站 / 华为永久镜像站 或其他镜像站进行下载 环境用到 2台 虚拟机,单网卡,并为其配置 静态 IP 及 DNS,具体规划请参考 第

karmada v1.3:更优雅 更精准 更高效_华为云开发者社区的博客-多极客编程

摘要:最新发布的1.3版本中,Karmada重新设计了应用跨集群故障迁移功能,实现了基于污点的故障驱逐机制,并提供平滑的故障迁移过程,可以有效保障服务迁移过程的连续性(不断服)。本文分享自华为云社区《​​Karmada v1.3:更优雅 更精准 更高效​​》,作者:云容器大未来。Karmada是开放的多云多集群容器编排引擎,旨在帮助用户在多云环境下部署和运维业务应用。凭借兼容Kubernetes原

bcc 和 ftrace 追踪内核网络模块实战_mb60939e30d6d2e的博客-多极客编程

今天给技术伙伴们分享一下 BCC 和 Ftrace 的使用方法,在开发实践过程中会遇到哪些问题,本篇文章都将一一道来~BCC 一个用于跟踪内核和操作程序的工具集,其软件包中包含了一些有用的工具和例子,是 eBPF 技术的一个前端,集成了 ebpf/kprobe/uprobe 等工具,可以使用 Python 来封装,对一些常见功能进行了整合。而 eBPF 是近几年比较热门的一项技术,它的前身是 BP

etcd v3版本生产级集群搭建以及实现一键启动脚本_字母哥博客的博客-多极客编程

一、准备工作1.1. 规划主机服务器1.2. 新建etcd用户1.3.开放防火墙端口1.4.创建必要的目录1.5.下载etcd并解压1.6. 集群主机免密登陆二、集群启动与验证2.1. 一键启动脚本实现2.2.验证集群本专栏的上一篇文章写了《长篇图解etcd核心应用场景及编码实战》,本文继续。后续计划章节内容如下:《长篇图解etcd核心应用场景及编码实战》《搭建高可用etcd集群》《基于etcd实

k8s学习-配置客户机访问kubernetes集群资源_年轻人,少吐槽,多搬砖的博客-多极客编程

需求我们需要一台单独的机器访问kubernetes资源,这样的好处就是避免直接通过 root身份登录kubernetes的master节点访问,提高了安全性,同时可以避免直接操作而带来的风险。客户机访问如下:要求:客户机访问任意的master节点就可以操作k8s集群客户机的登录账号不能是root客户机只有查看k8s资源的权限,不能修改,删除资源,即list,watch,get客户机可以查看任意na

企业上云的关键安全问题和应对之道_mb62f1cd5a97d30的博客-多极客编程

现在企业都希望可以通过云的能力,来提升自己的业务能力,artner预测:到2025年,将有85%的企业和组织采用云优先原则,云计算已经成为企业和组织IT战略的一部分,企业对于上云已经不陌生。在企业上云过程中,如果不能保证安全和可靠,那往往会带来无尽的隐患。一个错误配置的服务器可能会给你的公司带来财务或声誉损失,这需要几年的时间才能挽回。虽然这个过程充满挑战,我们依然有信心去安全的完成云迁移,首先我

免费搭建亚马逊云环境(4)—— aws的网络vpc_书山有路的博客-多极客编程

一、简介VPC(Amazon Virtual Private Cloud​)是将 AWS 资源启动到定义的虚拟网络中,这个虚拟网络与数据中心中运行的传统网络极其相似,提供可扩展的基础设施。VPC在AWS里面是基础但又是较为复杂的功能,本文会从实战的角度来梳理VPC的使用。二、基础概念​首先我们要了解几个基础概念,可用区,子网,网关,路由表,对等连接。1、可用区一个可用区(Available Zon

如何在 kubernetes 中使用 yrcloudfile 的 dataload 功能?_mb60939e30d6d2e的博客-多极客编程

Kubernetes 是用于自动部署、扩展和管理容器化应用程序的一个开源的容器编排解决方案。尽管 Kubernetes 最初是为无状态应用程序设计的,但随着有状态工作负载的日益流行,Kubernetes 也可用于管理有状态应用程序。今天我们想要分享的是如何在 Kubernetes 中使用 YRCloudFile 的 DataLoad 功能。当前业内擅长非结构化数据的存储方式主要是文件存储和对象存储

bcc 和 ftrace 追踪内核网络模块实战_mb60939e30d6d2e的博客-多极客编程

今天给技术伙伴们分享一下 BCC 和 Ftrace 的使用方法,在开发实践过程中会遇到哪些问题,本篇文章都将一一道来~BCC 一个用于跟踪内核和操作程序的工具集,其软件包中包含了一些有用的工具和例子,是 eBPF 技术的一个前端,集成了 ebpf/kprobe/uprobe 等工具,可以使用 Python 来封装,对一些常见功能进行了整合。而 eBPF 是近几年比较热门的一项技术,它的前身是 BP

【直冲“云”霄种子计划】训练营考证心得_指剑fs的博客-多极客编程

一、什么是[直冲“云”霄种子计划]? 亚马逊云科技拥有全球云计算的先进知识与技术,为诸多大型跨国企业提供完善的云服务,其提供的培训与认证也在业内备受青睐。 对于企业,亚马逊云科技的培训与认证可以提升员工的技能,提高企业投资回报率。 对于技术人员,拥有亚马逊云科技认证资格证书更是成为了技术能力的证明和职业领域的金字招牌。 为了帮助更多的架构师、开发者更快地成长,亚马逊云科技联合51CTO推出了“ 直

slurm和laxcus分布式操作系统的同与不同_赵大奇的博客-多极客编程

这个问题是公号一位网友提出来的,因为近期工作事情实在太多拖了很久,今天周末有空写篇文章正式回复这位网友。​先说结论:Slurm和Laxcus的差别,其实非常大。Slurm是Simple Linux Utility for Resource Management的缩写,它的产品定位是分布任务调度工具,用来管控分布式业务,应用方向在超算和科研领域。而Laxcus的产品定位是操作系统,作为操作系统自然需