免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

云原生之旅 - 11)基于 Kubernetes 動(dòng)態(tài)伸縮 Jenkins Build Agents( 三 )

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)釋放 。  

云原生之旅 - 11)基于 Kubernetes 動(dòng)態(tài)伸縮 Jenkins Build Agents

文章插圖
總結(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ì)介紹 。
感謝閱讀,如果您覺(jué)得本文的內(nèi)容對(duì)您的學(xué)習(xí)有所幫助,您可以打賞和推薦,您的鼓勵(lì)是我創(chuàng)作的動(dòng)力 。 

經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀