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

这篇具有很好参考价值的文章主要介绍了strimzi实战之二:部署和消息功能初体验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎访问我的GitHub

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

本篇概览

  • 本篇是《strimzi实战》系列的第二篇,前文完成了介绍和准备工作,是时候体验strimzi的核心功能了:发送和接受kafka消息,为了完成这个目标,本篇会按照如下步骤开始实战:
  1. 在kubernetes环境部署strimzi,这里面包含两个步骤:首先是将各类资源创建好,然后再启动strmzi
  2. 验证基本功能:发送和接受kafka消息,这里面有两种操作(注意,是两种里面二选一,不是两步):如果您的kubernetes环境有pv,就可以选择使用pv的操作步骤,如果您没有pv,就选择不用pv的操作步骤
  3. 删除操作
  • 接下来开始实战

部署

  • 创建namespace
kubectl create namespace kafka
  • 部署角色、权限、CRD等资源
kubectl create -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka

启动

  • 接下来的启动操作,根据您的实际情况,有两种可选
  1. 第一种:如果您的k8s环境已经准备好了pv,请执行以下命令完成部署,strimzi会通过pvc去申请使用pv,这样就算pod有问题被删除重建了,kafka消息的数据也不会丢失
kubectl apply -f https://strimzi.io/examples/latest/kafka/kafka-persistent-single.yaml -n kafka
  1. 第二种,如果您的k8s环境还没有准备好pv,请执行以下命令完成部署,这样创建的kafka服务也能正常使用,只不过所有数据都存在pod中,一旦pod被删除,数据就找不回来了
kubectl apply -f https://strimzi.io/examples/latest/kafka/kafka-ephemeral-single.yaml -n kafka
  • 以上两种方式只要选择一种去执行即可,执行完命令后,需要等待镜像下载和服务创建,尤其是镜像下载,实测真的慢啊,我用腾讯云服务器大约等了七八分钟
[root@VM-12-12-centos ~]# kubectl get pod -n kafka
NAME                                        READY   STATUS              RESTARTS   AGE
strimzi-cluster-operator-566948f58c-h2t6g   0/1     ContainerCreating   0          16m
  • 等到operator的pod运行起来后,就该创建zookeeper的pod了,继续等镜像下载...
[root@VM-12-12-centos ~]# kubectl get pods -n kafka
NAME                                        READY   STATUS              RESTARTS   AGE
my-cluster-zookeeper-0                      0/1     ContainerCreating   0          7m59s
my-cluster-zookeeper-1                      0/1     ContainerCreating   0          7m59s
my-cluster-zookeeper-2                      0/1     ContainerCreating   0          7m59s
strimzi-cluster-operator-566948f58c-h2t6g   1/1     Running             0          24m
  • 如下图红色箭头所指,显示正在拉取zookeeper镜像
    strimzi实战之二:部署和消息功能初体验
  • 等到zookeeper的pod创建完成后,终于轮到主角登场了:开始kafka的pod创建,最后,来个全家福,如下所示,一套具备基本功能的kafka环境
[root@VM-12-12-centos ~]# kubectl get pods -n kafka
NAME                                          READY   STATUS    RESTARTS   AGE
my-cluster-entity-operator-66598599fc-sskcx   3/3     Running   0          73s
my-cluster-kafka-0                            1/1     Running   0          96s
my-cluster-zookeeper-0                        1/1     Running   0          14m
my-cluster-zookeeper-1                        1/1     Running   0          14m
my-cluster-zookeeper-2                        1/1     Running   0          14m
strimzi-cluster-operator-566948f58c-h2t6g     1/1     Running   0          30m

基本操作:收发消息

  • strimzi部署已经OK,现在收发消息试试,看kafka基本功能是否正常
  • 接下来的操作需要两个控制台窗口,一个用于发消息,一个用于收消息
  • 在发消息的窗口输入以下命令,就会创建名为my-topic的topic,并且进入发送消息的模式
kubectl -n kafka \
run kafka-producer \
-ti \
--image=quay.io/strimzi/kafka:0.32.0-kafka-3.3.1 \
--rm=true \
--restart=Never \
-- bin/kafka-console-producer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic my-topic
  • 在收消息的窗口输入以下命令,就会进入消费消息的模式,topic是my-topic
kubectl -n kafka \
run kafka-consumer \
-ti \
--image=quay.io/strimzi/kafka:0.32.0-kafka-3.3.1 \
--rm=true \
--restart=Never \
-- bin/kafka-console-consumer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic my-topic --from-beginning
  • 然后,在发送消息的窗口输入一些文字后再回车,消息就会发送出去,如下图,左侧红框显示一共发送了四次消息,最后一次是空字符串,右侧黄框显示成功收到四条消息
    strimzi实战之二:部署和消息功能初体验

  • 如果您的kubernetes环境是按照《快速搭建云原生开发环境(k8s+pv+prometheus+grafana)》的方法来部署的,现在就能通过grafana看到命名空间kafka下面的资源了,如下图
    strimzi实战之二:部署和消息功能初体验

  • 另外,如果您使用了pv,还可以关注一下pv的使用情况,如下图,kafka的zookeeper的数据都改为外部存储了,数据不会因为pod问题而丢失
    strimzi实战之二:部署和消息功能初体验

  • 不过由于我们还没有将strimzi的监控配置好,现在还看不到kafka业务相关的指标情况,只能从k8s维度去查看pod的基本指标,这些会在后面的章节补齐

删除操作

  • 如果需要把strimzi从kubernetes环境删除,执行以下操作即可:
  • 如果您使用了pv,就执行以下命令完成删除
kubectl delete -f https://strimzi.io/examples/latest/kafka/kafka-persistent-single.yaml -n kafka \
&& kubectl delete -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka \
&& kubectl delete namespace kafka
  • 如果您没有使用pv,就执行以下命令完成删除
kubectl delete -f https://strimzi.io/examples/latest/kafka/kafka-ephemeral-single.yaml -n kafka \
&& kubectl delete -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka \
&& kubectl delete namespace kafka
  • 再去检查所有pod,已看不到strimzi的痕迹
[root@VM-12-12-centos ~]# kubectl get pod -A
NAMESPACE            NAME                                          READY   STATUS    RESTARTS   AGE
calico-apiserver     calico-apiserver-67b7856948-bg2wh             1/1     Running   0          6d2h
calico-apiserver     calico-apiserver-67b7856948-fz64n             1/1     Running   0          6d2h
calico-system        calico-kube-controllers-78687bb75f-z2r7m      1/1     Running   0          6d2h
calico-system        calico-node-l6nmw                             1/1     Running   0          6d2h
calico-system        calico-typha-b46ff96f6-qqzxb                  1/1     Running   0          6d2h
calico-system        csi-node-driver-lv2g2                         2/2     Running   0          6d2h
kafka                my-cluster-entity-operator-66598599fc-fz7wx   3/3     Running   0          4m57s
kafka                my-cluster-kafka-0                            1/1     Running   0          5m22s
kafka                my-cluster-zookeeper-0                        1/1     Running   0          5m48s
kafka                strimzi-cluster-operator-566948f58c-pj45s     1/1     Running   0          6m15s
kube-system          coredns-78fcd69978-57r7x                      1/1     Running   0          6d2h
kube-system          coredns-78fcd69978-psjcs                      1/1     Running   0          6d2h
kube-system          etcd-vm-12-12-centos                          1/1     Running   0          6d2h
kube-system          kube-apiserver-vm-12-12-centos                1/1     Running   0          6d2h
kube-system          kube-controller-manager-vm-12-12-centos       1/1     Running   0          6d2h
kube-system          kube-proxy-x8nhg                              1/1     Running   0          6d2h
kube-system          kube-scheduler-vm-12-12-centos                1/1     Running   0          6d2h
local-path-storage   local-path-provisioner-55d894cf7f-mpd2n       1/1     Running   0          3d21h
monitoring           alertmanager-main-0                           2/2     Running   0          24h
monitoring           alertmanager-main-1                           2/2     Running   0          24h
monitoring           alertmanager-main-2                           2/2     Running   0          24h
monitoring           blackbox-exporter-6798fb5bb4-4hmf7            3/3     Running   0          24h
monitoring           grafana-d9c6954b-qts2s                        1/1     Running   0          24h
monitoring           kube-state-metrics-5fcb7d6fcb-szmh9           3/3     Running   0          24h
monitoring           node-exporter-4fhb6                           2/2     Running   0          24h
monitoring           prometheus-adapter-7dc46dd46d-245d7           1/1     Running   0          24h
monitoring           prometheus-adapter-7dc46dd46d-sxcn2           1/1     Running   0          24h
monitoring           prometheus-k8s-0                              2/2     Running   0          24h
monitoring           prometheus-k8s-1                              2/2     Running   0          24h
monitoring           prometheus-operator-7ddc6877d5-d76wk          2/2     Running   0          24h
tigera-operator      tigera-operator-6f669b6c4f-t8t9h              1/1     Running   0          6d2h
  • 不过,对于pv来说,由于使用的策略是Retain,因此还会继续存在
    strimzi实战之二:部署和消息功能初体验
  • 至此,strimzi基本功能实战已经完成,咱们知道了如何快速部署strimzi和收发消息,感受到operator给我们带来的便利,接下来的文章,还会有更多简单的操作,更多精彩的功能等着咱们去尝试,欢迎您继续关注欣宸原创,咱们一起学习共同进步

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

学习路上,你不孤单,欣宸原创一路相伴...文章来源地址https://www.toymoban.com/news/detail-712133.html

到了这里,关于strimzi实战之二:部署和消息功能初体验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • strimzi实战之一:简介和准备

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos strimzi是一个开源项目,已加入了CNCF,官网地址:https://strimzi.io/ 借助strimzi,既能快速部署kafka服务,又能对kafka服务进行细致的调节,还能扩展出更多的能力,典型的扩展能力如下: 监控(基于pr

    2024年02月08日
    浏览(38)
  • Strimzi从入门到精通系列之一:部署Cluster Operator

    Strimzi是一款用于在Kubernetes集群上管理Apache Kafka的开源项目。它使得在Kubernetes上部署、管理和监控Kafka成为可能,提供了一种高度可扩展和可靠的解决方案。Strimzi支持自动缩放、配置灵活、内置监控和告警等功能。通过使用Strimzi,用户可以将Kafka集成到Kubernetes和OpenShift中,并

    2024年02月11日
    浏览(40)
  • Strimzi从入门到精通系列之三:部署Kafka Connect

    Kafka Connect 是一个用于在 Apache Kafka 和其他系统之间传输数据的工具。例如,Kafka Connect 可能会将 Kafka 与外部数据库或存储和消息传递系统集成。 在Strimzi中,Kafka Connect以分布式方式部署。 Kafka Connect 也可以在独立模式下工作,但 Strimzi 不支持。 使用连接器的概念,Kafka Conn

    2024年02月13日
    浏览(36)
  • ChatGPT实战100例 - (10) 提前体验ChatGPT的多模态绘图功能

    这个绘图其实比较基础,只能说是能显示个图吧 真要出图,隔壁 文心一言 秒杀 ChatGPT,没排上队的直接用 文心一格 - AI艺术和创意辅助平台 也很嗨啊。 据说 GPT-4 出了绘图功能,实际上ChatGPT 还不能直接用。 基本的思路还是靠 Markdown 结合三方网站功能 引入图片。 Unsplash 图

    2024年02月01日
    浏览(73)
  • strimzi实战之三:prometheus+grafana监控(按官方文档搞不定监控?不妨看看本文,已经踩过坑了)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 由于整个系列的实战都涉及到消息生产和消费,所以咱们需要一套监控服务,用于观察各种操作的效果,例如生产消息是否成功、消息是否被消费、有没有发生堆积等 因此,在前文完成了最基本的部

    2024年02月08日
    浏览(45)
  • 基于RabbitMQ的模拟消息队列之二---创建项目及核心类

    创建一个SpringBoot项目,环境:JDK8,添加依赖:Spring Web、MyBatis FrameWork(最主要) 2.核心类 在mqserver包中添加一个包,名字为core,表示核心类。 Exchange ExchangeType MSGQueue (为了区分Queue) Binding Message BasicProperties

    2024年02月11日
    浏览(45)
  • AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能

    AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能系统 目录 人工智能竞赛【精选实战作品】之《基于计算机视觉、自

    2024年02月06日
    浏览(61)
  • Android Compose UI实战练手----Google Bloom欢迎页

    在之前的博客中,我已经介绍了Compose 的基础UI和布局组件,现在我们就利用这些基础UI和布局组件去做一个实战项目。Bloom是Google提供的一个假想产品,我们可以作为练手项目使用,这个产品的详细UI设计稿大家可以自行去百度下,个人决定这里主要是熟练去使用Compose UI,不

    2024年02月09日
    浏览(40)
  • java与es8实战之二:实战前的准备工作

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇是《java与es8实战》系列的第二篇,主要任务是为动手实战做好准备工作,包括这些内容 借助docker,快速部署es服务 借助docker-compose,以更简单的方式部署es集群和kibana服务 介绍实战中涉及的环境

    2024年02月11日
    浏览(35)
  • 小程序开发实战案例之二|如何实现小程序支付

    上一章讲完如何获取用户信息授权  后,下一步就可以进行小程序支付了。 本期就来介绍下支付宝小程序支付如何实现。   PS:接入前的准备工作可以参考: 接入准备 ;接入指南可参考: 接入指南 ~   获取权限分为三步:分别是 账号开通 JSAPI 支付 、 账号与小程序账号绑

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包