Pipeline: Input Step這個(gè)例子是利用 Jenkins pipeline的 Input step 來(lái)做一個(gè)人工介入Approve的步驟 。然后再來(lái)一個(gè)多cluster 部署,選不同region 部署到不同的cluster的示例 。stage('Wait for SRE Approval') {steps {timeout(time:72, unit:'HOURS') {input message: "Approved Prod deployment?", submitter: 'sre-team'}}}// deployment to multipe k8s clustersstage('Deploy to GKE Prod cluster') {environment{PROJECT_ID = 'sre-cn-dev'CREDENTIALS_ID = 'gcp_sa_json_key'CLUSTER_COMMON_NAME = 'demo-gke-prod'}steps {script {env.REGION = input message: 'Choose which region you want to deploy?',parameters: [choice(name: 'Region',description: 'Select Region to Deloy',choices: ['europe-west1', 'us-central1'])]dir(dir_path) {if ( env.REGION == "europe-west1" ) {def eu_cluster_name = env.CLUSTER_COMMON_NAME + "-eu"container('kubectl-kustomize') {sh "echo deploy to cluster $eu_cluster_name in region: $REGION"}}if ( env.REGION == "us-central1" ) {def us_cluster_name = env.CLUSTER_COMMON_NAME + "-us"container('kubectl-kustomize') {sh "echo deploy to cluster $us_cluster_name in region: $REGION"}}}}}}所有例子均在我的 github repo 。
### 本文首發(fā)于博客園 https://www.cnblogs.com/wade-xu/p/16863955.html
測(cè)試現(xiàn)在你可以創(chuàng)建一個(gè) Pipeline 或者 Multibranch Pipeline job 來(lái)測(cè)試 。Repository URL = `https://github.com/wadexu007/learning_by_doing`Script Path, e.g. `Jenkins/k8s_pod_as_build_agent/demo-app-java/Jenkinsfile` 你會(huì)看到每啟動(dòng)一個(gè)job 都會(huì)相應(yīng)的產(chǎn)生一個(gè)pod 來(lái)作為Jenkins agent運(yùn)行,結(jié)束后根據(jù)idleMinutes自動(dòng)釋放 。

文章插圖
總結(jié)如果你已經(jīng)成功創(chuàng)建并測(cè)試 CI/CD pipeline,可以繼續(xù)加強(qiáng),比如加上 Post notifications 最佳實(shí)踐
- 設(shè)置 resource requests and limits on each container in your Pod
- 如果使用maven 構(gòu)建 java項(xiàng)目,.m2 cache目錄需要 mount 出來(lái),這樣加快后面的maven build速度 。
- 使用 Jenkins Shared Libraries 抽取Pipeline的共用代碼
- 在容器里構(gòu)建容器化應(yīng)用(Run docker in docker) 我的例子是通過(guò) mount docker.sock 利用k8s 主機(jī) docker engine來(lái)實(shí)現(xiàn)的,這種方式需要 privileges mode 不安全,推薦使用Kaniko,下一篇文章會(huì)介紹 。
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
- 茱萸峰海拔多少米
- 世界野生菌王國(guó)是云南的哪個(gè)縣
- 南傘屬于云南哪里
- 早上的云彩叫什么
- 云頂之弈冒險(xiǎn)迭嘉陣容搭配推薦攻略
- 云原生之旅 - 10)手把手教你安裝 Jenkins on Kubernetes
- 問(wèn)道手游探案鏢局風(fēng)云任務(wù)完成圖文攻略
- 周若云和于仕鴻是什么電視劇中的人物?
- 2023云南有哪些值得打卡的線路推薦
- 云南玉溪有哪些好吃的美食推薦
