歡迎訪問我的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程式碼,現在,愛學習的您是否已經心動了呢?接下來,請允許欣宸原創陪伴您渡過一段愉快的時光,我們們一起揭開迷霧,掌握雲原生應用開發