做這個實驗目標是往kubernetes集群裡交付dubbo服務,採用jenkins+maven+gitee實現,jenkins使用的是v2。303。1,maven使用3。6。3+jre8u91。整個專案的拓撲圖如下:
01 在jenkins建立流水線
1)新建任務
2)名稱為dubbo-demo,選擇流水線,並確定
3)保留30份,並使用引數化構建過程
4)新增引數,這裡我們一共需要新增10個引數
4。1 設定app_name 和 image_name
app_name: app名字
Cop
image_name: 映象名字
4。2 設定變數 git_repo 和 git_version
git_repo: 程式碼的git地址,這裡xxx需要替換為自己的使用者名稱
git_ver: 拉取程式碼哪個分支
4。3 設定變數 add_tag 和 mvn_dir
add_tag: 打包程式碼後的映象的tag,生成docker映象時:image_name:add_tag
mvn_dir: maven打包時候的執行目錄
4。4 設定變數 target_dir 和 mvn_cmd
target_dir: maven打包完成後生成的jar包所在的目錄, 一般是在執行目錄下生成target目錄, jar包在target目錄下
mvn_cmd: maven打包時候執行的命令
4。5 設定變數 base_image 和 maven
base_image:構建映象時候所用的底包是哪個映象
maven: 構建映象時候使用的maven版本,上次我們配置了java11和java8
這裡的變數的選項要和在下的maven的目錄是一樣的, 在打包時候直接是使用這個絕對路徑來呼叫命令進行打包的
4。6 配置流水線(pipeline)
stage(‘pull’):從gitee上拉取程式碼
stage(‘build’):進入maven,執行maven命令
stage(‘package’):編譯為jar包
stage(‘image’):在生成映象並上傳到harbor
5)儲存
02 配置自己的gitee倉庫
1)登入gitee。com,fork一個dubbo-demo-service倉庫,注意看dubbo-server/src/main/java/config。properties,zk地址是否為od。com
2)在管理中設定為私有倉庫
3)新增公鑰 —— 這個如果在安裝jenkins篇中已經做過的就不用再做了。在我-設定-公鑰,新增host200的公鑰進去(/root/。ssh/id_rsa。pub)
4)登入jenkins測試,xxx要替換為自己的使用者名稱
03 配置harbor倉庫
1)新建一個私有倉庫app
04 在host200構建dubbo底包
1)下載jre:8u211容器
2)新增tag
3)基於底包構建新的jre映象
4)構建新映象,並上傳到harbor,先在harbor中建立一個公開倉庫base
05 執行流水線
1)開啟blue ocean
2)選擇dubbo-demo
3)點選執行
4)配置引數
5)run起來
6)去harbor檢視是否有映象了
06 在任意一臺node配置kubernetes namespace
1)建立namespace
2)由於使用的是私有倉庫,所以要配置一個secret
07 交付dubbo-server
1)dubbo-server資源配置清單,注意image的名字要和harbor中的對應上。
2)在k8s node節點建立
3)檢視app名稱空間中的pod
4)登入zk檢視是否有dubbo目錄