基於kuboard管理k8s


前言

昨天我們分享了本地springboot項目構建docker鏡像的內容,詳細介紹了springboot項目打包、鏡像構建、基於docker啟動運行的全過程,這個技術雖然不是特別難,但是很實用,因為鏡像構建完成后,我們不僅可以讓我們的服務在docker中運行,也可以讓它在k8s中運行,今天我們就來看下如何通過kuboardk8s上部署我們的服務。

今天的內容以圖片為主,文字說明為輔,只有大家按照我的操作流程進行操作,一定也可以部署成功。好了,話不多說,讓我們直接開始吧。

kuboard

登錄kuboard控制台

在開始之前,我們要先登錄kuboard的控制台,然后選擇需要部署服務的k8s集群:

選擇登錄角色,這里我們直接以管理員角色登錄:

進入對應集群后,選擇要部署服務的命名空間。在k8s中,所有的podservice都是基於命名空間進行管理的,而且一個工作空間下的服務可以直接通過負載名稱進行訪問,如果跨命名空間訪問服務,需要加上對應的命名空間名稱。

這里我們選的是默認的工作空間default,點擊命名空間即可進入命名空間內部:

創建服務

在命名空間內部,我們可以構建我們的工作負載(大家要慢慢習慣這個叫法)。點擊中間的懸浮菜單常用操作

在展開的選項中選擇創建工作負載菜單,進入工作負載創建頁面

填寫負載基本信息

首先填寫工作負載的基本信息。工作負載類型我們選擇第一個部署,通常我們的服務和組件都選擇這個;工作負載分層可以根據自己的服務類型進行選擇,這個選項只是為了方便管理,分層之后會在控制面板的不同區域顯示

工作負載的名稱要唯一,不能重復,而且不能有中文,后面我們訪問服務的時候就是通過負載名稱+端口進行訪問的,描述信息可以隨便填寫

填寫容器信息

基本信息填寫完成后,切換到容器信息填寫頁面。這里創建容器,經過我的試驗,初始化容器可以不創建,但是工作容器必須創建,否則無法提交表單

我們直接創建工作容器,然后填寫容器信息。這里的容器名稱,一般和基本信息保持一致就行了,雖然沒有要求,但是不一致的話,不利於后期管理;這一塊的配置中,容器鏡像是最重要的內容,而且要確保鏡像存在,否則在后面容器啟動的時候會報錯。

這里的鏡像配置的內容和我們docker pull 鏡像名稱的鏡像名稱是一樣的,我們以zookeeper為例,我們拉取鏡像的命令是這樣的:

docker pull zookeeper:latest

所以我們這里配置的就是zookeeper:latest;大家注意右側的imagePullSecret配置,這個配置是方便我們配置私有鏡像倉庫,例如很多公司都基於harbor搭建了私有的鏡像倉庫,這里就配置harbor的配置。

然后,記得指定下容器的端口,否則我們是服務訪問容器中的服務或組件的。

鏡像的拉取策略,設置的是拉取的條件,第一個選項始終拉取新鏡像,表示任何時候只要你重啟了容器都會從鏡像倉庫拉取鏡像,不論本地是否已經有鏡像;第二個選項表示當本地沒有鏡像的時候,才拉取鏡像;第三個選項表示從不拉取鏡像,但當鏡像不存在則會報錯。大家可以根據自己的需要設置,一般對於第三方組件,或者不經常變更的鏡像,我們都選擇第二個。

配置服務路由

這里也是很關鍵的一步,如果不設置路由的話,我們是沒辦法通過負載名稱訪問服務的,雖然通過ip地址也能訪問,但是容器重啟后,ip地址會發生變化,所以必須配置路由。

這里只需要選擇clusterIP,然后指定端口映射即可

服務控制面板

點擊保存后,會進入服務的控制面板,控制面板處理常用的操作菜單外,還會顯示服務的運行狀況信息:

如果在右側事件顯示區域,有如下顯示,表明你的服務鏡像配置有誤,可以點擊編輯菜單進行修改:

有時候頁面內容長時間為變化,可以點擊上部的刷新菜單進行刷新。如果提示容器已就緒,說明我們的服務已經部署啟動成功,這時候我們可以點擊容器下部的菜單對容器進行管理。

追蹤日志菜單可以實時展示容器中服務的日志信息,點擊后會打開新頁面,內容顯示如下,頁面支持搜索,還可以設置是否滾動

bashsh沒有本質區別,都是進入容器的linux控制台,點擊對應菜單后,會打開如下頁面

下載日志菜單,可以下載容器中的日志文件,也就是我們跟蹤日志顯示的日志,可以根據自己的需要進行下載:

補充內容

下面這張圖片很好地展示了配置路由器和配置路由后的訪問情況,配置路由前,我們訪問activemq-k8s,提示無法解析主機,但當我們添加路由配置后,再次訪問,發現這時候activemq-k8s已經可以正常解析了,而且返回了頁面內容。

為了更好地測試命名空間內服務間的通信,我這里構建了兩個服務,一個是zk,一個是mq,然后在mq的控制台訪問zookeeper-k8s,雖然無法正常訪問,但可以看到名稱已經被正常解析,說明路由是沒有問題的

zk控制台訪問activemq-k8s效果也是一樣的,由於容器的linux沒有pingcurl,我只能用wget命令了:

容器配置導出

最后,我們再講一下容器的導出。導出主要是為了備份,如果特殊原因導致k8s崩潰(前段時間,我們測試環境就發生過,有人把k8s集群搞壞了,然后集群被刪除了),這時候如果從頭再配置,不僅浪費時間,而且好多配置你也記不清楚了。

但如果你之前備份過,那直接可以通過備份的yaml文件重新構建容器,這樣效率更高,而且不容器出錯。上次一也是因為我提前備份過,所以除了我們項目,其他組都花了好久才把環境重新部署好。

備份的方式也很簡單,首先命名空間首頁,點擊懸浮菜單,選擇導出工作負載

選擇需要導出的負載

下一步,然后選擇需要導出的服務

然后一直下一步,最后點擊確認,到這里負載文件就導出完成了。

導出的文件長這個樣子,是標准的yaml文件

導入負載

導入負載也很簡單,導入方式有兩種,第一種直接點擊左側導入工作負載菜單,然后選擇導入文件,點擊確定就可以了,剩下的就是等待,等待容器啟動完成。

另一種方式是點擊左側從yaml創建菜單,這里主要是針對單個負載,多個負載我沒有試過。

然后把我們負載yaml內容賦值進去,點擊確定即可,然后也是漫長的等待。

好了,到這里,今天的內容就全部結束了,圖片雖然多,但是都是實打實的干貨,有條件的小伙伴自己動手試下吧。

總結

今天我們主要分享了基於kuboard管理k8s容器的一些基本的常用操作,包括服務部署、日志查看、負載導入導出等,雖然簡單但是很實用。

總體來說,kuboard確實比k8s官方的控制台體驗要好,除了顏值高,功能也很強大,而且又是原生的中文支持,確實很香。

最后我想說,k8s確實要比docker優秀,這個最大的體會來源於k8s的伸縮特性,在docker中,創建第一個容器和創建第二個容器一樣復雜,一樣的麻煩,但是在k8s中,創建第二個容器只需要把副本數改為2,想創建多少個都可以,既簡單又方便,而且很靈活,反正就是很強。更多特性,后面有機會的話再來分享,今天就到這里吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM