strimzi是個CNCF項目,功能是用於在kubernetes環境下部署和配置kafka,並提供了豐富的擴展功能,《strimzi實戰》是欣宸新的系列原創,旨在與大家一起通過實戰學習和掌握strimzi,並且深入源碼 ...
歡迎訪問我的GitHub
這裡分類和彙總了欣宸的全部原創(含配套源碼):https://github.com/zq2599/blog_demos
關於strimzi
- strimzi是一個開源項目,已加入了CNCF,官網地址:https://strimzi.io/
- 藉助strimzi,既能快速部署kafka服務,又能對kafka服務進行細緻的調節,還能擴展出更多的能力,典型的擴展能力如下:
- 監控(基於prometheus+grafana)
- 安全(基於TLS)
- 用戶管理
- topic管理
- 機架感知
- Restful介面
- 消息鏡像
- 消息來源
- 消息去向
-
官方給出的組件架構圖如下,可見比起單純的kafka,strimzi的功能更加豐富,很多與消息有關的場景都能通過strimzi組件來實現
-
strmzi在GitHub已開源,地址是:https://github.com/strimzi/strimzi-kafka-operator
為什麼是strimzi?
-
原因很簡單:欣宸是一位Java程式員,又對雲原生技術非常感興趣
-
在強者如雲的CNCF項目中,以java作為開發語言的項目非常稀少,strimzi就是其中一個(項目的語言構成如下圖),再加上其實用的功能,於是,strimzi在我眼中就成了一個寶藏級別的項目:它就是深入學習雲原生的捷徑,通過它去窺探雲原生開發的奧秘
-
令人開心的是java也能在CNCF占據一席之地,遺憾的是strimzi現在只是Sandbox階段,希望它能越來越好吧(Sandbox階段:是指項目還未大規模在生產環境被驗證過)
-
儘管strimzi還只是Sandbox階段,但是對於愛學習,卻又只會java的我來說,真的足夠了,那麼多強大的功能,再配上開放的源碼,令人著迷!
關於《strimzi實戰》系列
- 欣宸喜歡寫系列文章,此風格在其他作品中已顯露無疑,《strimzi實戰》亦是如此,通過這個系列,除了掌握strimzi的各種功能,更是要深入學習strimzi的源碼,我就想知道,kubernetes環境提供的各種能力,如何用java去控制!
- 寫作過程也是學習的過程,自然不會一開始就扎入源碼的汪洋中,整個系列會謹慎控制節奏,從最基本的體驗出發,將strimzi的功能都玩個遍,再去研究它的源碼,窺探雲原生開發的奧秘
本篇概覽
- 本篇是 《strimzi實戰》系列的開篇,難度自然是入門級別,主要內容如下
- strmzi簡介,就是前面嘮嘮叨叨那一段...
- 實戰環境的準備工作
- 接下來,咱們把整個實戰系列要用到的環境準備好,接下來的文章,就在這套環境上操作了
實戰環境的準備工作(版本信息)
- 首先介紹一下環境信息,列出各個版本號給您做個參考
- 操作系統:CentOS 7.6 (騰訊雲輕應用伺服器,4核8G)
- kubernetes:1.22 (底層容器服務是docker)
- prometheus:2.32.1
- grafana:8.3.3
- strimzi:0.32.0
- kafka:3.3.1(pod的環境變數)
- zookeeper:3.6.3 (進入容器,查找jar包,發現是zookeeper-3.6.3.jar)
- 另外需要註意的是,本系列使用的strimzi版本是0.32.0,該版本對kubernetes的最低要求是1.19,請不要使用低於此版本的kubernetes
實戰環境的準備工作(安裝操作系統、kubernetes、pv、prometheus、grafana)
- 先盤點有哪些是在實戰前必須準備好的:
- kubernetes是必要的
- pv即外部存儲,有了它,kafka和zookeeper的數據就可以永久保存起來,要是沒有pv,那些數據就只能保存在pod內部,一旦pod被刪除,數據就丟失了,所以pv還是挺重要的
- prometheus+grafana,這一對組合,一個負責採集數據,一個負責展示數據,strimzi的監控就就指望它們了
- 所以,咱們需要將kubernetes、pv、prometheus、grafana全部裝好才能順利開啟strimzi實戰,為此,我專門另寫了一篇文章,詳細記錄了這些軟體的安裝和驗證過程,您可以作為參考:《快速搭建雲原生開發環境(k8s+pv+prometheus+grafana)》
- 至此,《strimzi實戰》系列的開篇就算完成了,神秘的雲原生世界,熟悉的java代碼,現在,愛學習的您是否已經心動了呢?接下來,請允許欣宸原創陪伴您渡過一段愉快的時光,咱們一起揭開迷霧,掌握雲原生應用開發