strimzi实战之二:部署和消息功能初体验
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
本篇概览
- 本篇是《strimzi实战》系列的第二篇,前文完成了介绍和准备工作,是时候体验strimzi的核心功能了:发送和接受kafka消息,为了完成这个目标,本篇会按照如下步骤开始实战:
- 在kubernetes环境部署strimzi,这里面包含两个步骤:首先是将各类资源创建好,然后再启动strmzi
- 验证基本功能:发送和接受kafka消息,这里面有两种操作(注意,是两种里面二选一,不是两步):如果您的kubernetes环境有pv,就可以选择使用pv的操作步骤,如果您没有pv,就选择不用pv的操作步骤
- 删除操作
- 接下来开始实战
部署
- 创建namespace
kubectl create namespace kafka
- 部署角色、权限、CRD等资源
kubectl create -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka
启动
- 接下来的启动操作,根据您的实际情况,有两种可选
- 第一种:如果您的k8s环境已经准备好了pv,请执行以下命令完成部署,strimzi会通过pvc去申请使用pv,这样就算pod有问题被删除重建了,kafka消息的数据也不会丢失
kubectl apply -f https://strimzi.io/examples/latest/kafka/kafka-persistent-single.yaml -n kafka
- 第二种,如果您的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镜像

- 等到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
然后,在发送消息的窗口输入一些文字后再回车,消息就会发送出去,如下图,左侧红框显示一共发送了四次消息,最后一次是空字符串,右侧黄框显示成功收到四条消息

如果您的kubernetes环境是按照《快速搭建云原生开发环境(k8s+pv+prometheus+grafana)》的方法来部署的,现在就能通过grafana看到命名空间kafka下面的资源了,如下图

另外,如果您使用了pv,还可以关注一下pv的使用情况,如下图,kafka的zookeeper的数据都改为外部存储了,数据不会因为pod问题而丢失

不过由于我们还没有将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和收发消息,感受到operator给我们带来的便利,接下来的文章,还会有更多简单的操作,更多精彩的功能等着咱们去尝试,欢迎您继续关注欣宸原创,咱们一起学习共同进步
欢迎关注博客园:程序员欣宸
strimzi实战之二:部署和消息功能初体验的更多相关文章
- 阿里云部署Java web项目初体验(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 一.准备工作 购买了阿里云的云解析,和云服务器ecs. 2.下载put ...
- 阿里云部署Java web项目初体验
林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了怎样在阿里云上安装JDK.Tomcat以及其配置过程. 最后以一个实例来演 ...
- .NET gRPC 核心功能初体验,附Demo源码
gRPC是高性能的RPC框架, 有效地用于服务通信(不管是数据中心内部还是跨数据中心). 由Google开源,目前是一个Cloud Native Computing Foundation(CNCF)孵 ...
- Java进阶专题(二十八) Service Mesh初体验
前言 ⽬前,微服务的架构⽅式在企业中得到了极⼤的发展,主要原因是其解决了传统的单体架构中存在的问题.当单体架构拆分成微服务架构就可以⾼枕⽆忧了吗? 显然不是的.微服务架构体系中同样也存在很多的挑战 ...
- php消息队列之 think queue消息队列初体验
使用thinkphp 5的 消息队列 think queue ● php think queue:listen --queue queuename ● php think queue:work -- ...
- think queue 消息队列初体验
使用的是tp5 自带的消息队列 thinkphp top里的 消息队列框架 think-queue 这是thinkphp官方团队开发的一个专门支持队列服务的扩展包 消息队列应用场景: 消息队列适用于 ...
- DubboSPI机制二之Dubbo中SPI初体验
Dubbo高级之一SPI机制之JDK中的SPI - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中阐述了JDK标准的SPI,并对其应用做了相应的实践.在实际应用中,很多框架都会对其进行扩展 ...
- EMQ消息队列初体验
使用命令创建admin用户,密码123 emqx_ctl users add admin 配置规则/etc/emqx/acl.conf(除管理员,其他用户只能订阅限定的测试主题路径) %% 允许'ad ...
- 二 APPIUM Android自动化 测试初体验
本文转自:http://www.cnblogs.com/sundalian/p/5629358.html 1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependenci ...
随机推荐
- “AI Earth”人工智能创新挑战赛:助力精准气象和海洋预测Baseline[1]、NetCDF4使用教学、Xarray 使用教学,针对气象领域.nc文件读取处理
1."AI Earth"人工智能创新挑战赛:助力精准气象和海洋预测Baseline[1].NetCDF4使用教学.Xarray 使用教学,针对气象领域.nc文件读取处理 比赛官网: ...
- Pytorch-PyG图神经网络依赖环境安装(Anaconda)
1.默认用户在Anaconda的虚拟环境中已安装Pytorch 2.打开anaconda prompt命令窗, activate "你的虚拟环境名称" 3.在激活后的虚拟环境下输入 ...
- 深入分析:恒虚警率检测算法之Switch-CFAR
转发和使用请注明来源,以下为本人精心整理,还请尊重本人劳动成果与产权!由于本人现有知识和能力有限,如存在错误之处请指正!下面为正文内容: 1.S-CFAR检测算法(Switching,开关CFAR) ...
- 使用Git进行代码版本控制和协作:代码共享、协作和版本管理
目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 使用 Git 进行代码版本控制和协作:代码共享.协作和版本管理 Git 是一个开源的分布式版本控制系统,由 Linux 内核开发组创建.G ...
- Collection 接口及其常用方法
Collection 接口的特点 Collection接口没有直接实现类,提供了更具体的子接口(如Set和List)的实现.Collection实现类(通常通过其中一个子接口间接实现Collectio ...
- Lamada List 去重及其它操作示例
import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util. ...
- Spring Boot 日志文件
Spring Boot 日志文件 日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统的活动等重要作用. 事件日志记录系统的执行中 ...
- 多光源渲染方案 - Light Culling
目录 Tile-based Light Culling Culling 流程 Injection Pass Compact Pass 2.5D Culling Cluster-based Light ...
- you-get的使用
转载自: 利用Python下载:You-Get的安装及使用方法 - 宁佳兵 - 博客园 宁佳兵 所谓的光辉岁月,并不是后来闪耀的日子,而是无人问津时,对梦想的偏执. 博客园 首页 标签 GitHu ...
- SketchUp Pro 2023 下载和安装教程
SketchUp Pro 2023 下载和安装教程 下载链接 123云盘:https://www.123pan.com/s/JyAKVv-NTXB.html 安装教程 演示操作系统:Windows 1 ...