對于容器編排工具k8s來說,你可以使用它規(guī)定的yaml格式的腳本,使用客戶端kubectl來與k8s進(jìn)行通訊,將你定義好的yaml部署腳本應(yīng)用到k8s集群上,而這對yaml腳本一般來說都是很像的,就是說,你需要反復(fù)的使用同樣結(jié)構(gòu)的代碼,這對于開發(fā)人員來說不是一個(gè)好的信號,所以helm出現(xiàn)了,它是一種模板化的部署工具,你定義好模板之后,把變量的對象放在values.yaml里就可以了。

          引起的問題


          在使用helm進(jìn)行部署時(shí)出現(xiàn)了一個(gè)問題,使用鏡像時(shí)習(xí)慣的使用了latest這個(gè)版本,也就是最新版本,在使用helm進(jìn)行部署時(shí),對于相同版本號的鏡像來說,它對于的pod居然沒有從新編排,這個(gè)問題直接影響了整個(gè)部署的方式,在jenkins項(xiàng)目部署之后,還需要手動進(jìn)行pod的部署,這顯然是不能接受的,最后在helm里打算使用docker具體的鏡像版本號。

          使用步驟

          * jenkins從gitlab上拉取項(xiàng)目源代碼
          * 編譯項(xiàng)目,測試項(xiàng)目
          * 打包項(xiàng)目成為鏡像,鏡像版本使用jenkins的TagId,它是當(dāng)前任務(wù)的版本,我們可以直接用
          * 上傳鏡像到私有倉庫harbor里
          * 拉取Helm Chart倉庫代碼,這個(gè)倉庫里存儲所有服務(wù)需要的Charts信息
          * 使用sed命令將當(dāng)前TagId寫入Charts到values.yaml文件的對應(yīng)服務(wù)鏡像版本的位置,使用了yaml的錨點(diǎn)和引用功能
          * 使用helm package打包你的服務(wù)
          * 使用helm upgrade升級你的現(xiàn)有服務(wù)
          * 將charts倉庫的變化保存,然后提交到gitlab里
          * 整個(gè)部署過程完畢!
          sed命令小技巧

          使用sed命令可以在文檔中查找某些字符,并且在這些字符所在行的下一行去插入新的內(nèi)容
          sh """ sed -i "/${config.imageName}-imageTag/{n;d}"
          ${WORKSPACE}/charts/${config.namespace}/values.yaml sed -i
          "/${config.imageName}-imageTag/a \\ imageTag: $config.tagId"
          ${WORKSPACE}/charts/${config.namespace}/values.yaml """

          上面代碼中,我們對values.yaml里的某個(gè)服務(wù)名后綴是-imageTag的內(nèi)容的下一行進(jìn)行刪除;并且在它的下一行插入新的內(nèi)容imageTag:版本號;這一行請注意,我們使用了兩個(gè)\,它是一個(gè)轉(zhuǎn)義付符號,它會在imageTag前面插入一些空格。

          yaml里的錨點(diǎn)和引用

          你可以為values.yaml里添加一個(gè)引用片斷,然后在values.yaml其它位置使用它們,即它類似于先定義一些內(nèi)容,然后在一些位置插入它們。
          hello-world-imageTag: &helloworldImageTagId imageTag: 1 appList: - name:
          hello-world port: 9001 hasVM: true <<: *helloworldImageTagId
          上面的代碼,在hasVM這行下面,就里引用我們的imageTag: 1這行的內(nèi)容,而helloworldImageTagId
          是我們定義的別名,在引用的位置需要使用這個(gè)別名。

          這篇文章對于正在使用jenkins,k8s部署你的微服務(wù)的同事來說,是非常不錯(cuò)的文章!

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點(diǎn)信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                AAA女郎写真视频在线 | 好大好深好紧 | 五月天婷婷导航 | 亚洲无码成人 | 天天噜天天操 |