天天看點

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建
kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

-參考:https://github.com/jenkinsci/kubernetes

yml檔案

部署jenkins

登陸http://NodeIP:30008

使用日志中的臨時密碼解鎖jenkins

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

選擇插件

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

選擇無

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

建立admin與密碼完成登陸

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

配置插件源

預設從國外網絡下載下傳插件,會比較慢,建議修改國内源:

安裝插件

管理Jenkins->系統配置-->管理插件-->分别搜尋Git Parameter/Git/Pipeline/kubernetes/Config File Provider,選中點選安裝。

Git Parameter:Git參數化建構

Git:拉取代碼

Pipeline:流水線

kubernetes:連接配接Kubernetes動态建立Slave代理

Config File Provider:存儲kubectl用于連接配接k8s叢集的kubeconfig配置檔案

管理Jenkins->Manage Nodes and Clouds->configureClouds->Add

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建
kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

Kubernetes插件:Jenkins在Kubernetes叢集中運作動态代理

插件介紹:https://github.com/jenkinsci/kubernetes-plugin

​ https://github.com/jenkinsci/docker-inbound-agent

課件目錄裡涉及四個檔案:

Dockerfile 建構鏡像

jenkins-slave shell腳本啟動slave.jar

settings.xml 修改maven官方源為阿裡雲源

slave.jar agent程式,接受master下發的任務

建構并推送到鏡像倉庫:

如果是kubeadm搭建的叢集則不需要考慮這一步

簽發CA憑證

生成kubeconfig授權檔案

綁定權限到admin

Jenkins Pipeline是一套插件,支援在Jenkins中實作內建和持續傳遞管道;

Pipeline通過特定文法對簡單到複雜的傳輸管道進行模組化;

聲明式:遵循與Groovy相同文法。pipeline { }

腳本式:支援Groovy大部分功能,也是非常表達和靈活的工具。node { }

Jenkins Pipeline的定義被寫入一個文本檔案,稱為Jenkinsfile。

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

建立pipeline job

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

選擇kubernetes 聲明式pipeline

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

pipline腳本内容如下:

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建
kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

儲存git和harbor的憑據ID

1bbda277-a0e0-42c9-b4f3-be22e6344d66

6020966e-3469-44e7-baff-e9945fbaa4f3

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

k8s認證配置檔案放到jenkins

添加配置

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

選擇自定義的加入即可

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

拷貝好ID: 4f0526c1-18c8-48c7-bd22-eeb8b179a950

kubernetes(十四) 基于kubernetes的jenkins持續內建基于kubernetes的jenkins持續內建

建立pipelinejob

選擇參數

選擇參數示例使用

![image-20200808220707453](/Users/wanghui/Library/Application Support/typora-user-images/image-20200808220707453.png)

修改Git中的yml檔案參數

pipeline腳本

部署到k8s這裡面的kubeconfig需要使用生成的對應namespace的配置檔案

docker鏡像倉庫位址加入secret:docker-regsitry-auth

deploy中的需要替換的大寫參數也需要替換,然後送出之後再做jenkins編譯