欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

【Kubernetes系列】第8篇CI/CD之全流程實(shí)踐-創(chuàng)新互聯(lián)

前言

  1. 本實(shí)踐中已經(jīng)的示例代碼及jenkins-agent鏡像已經(jīng)推送歸檔至github,-->傳送門
  2. 注意本實(shí)踐中均為內(nèi)網(wǎng)數(shù)據(jù),你測(cè)試時(shí)一定要改為自己的環(huán)境的有效數(shù)據(jù)。
  3. 由于本實(shí)踐涉及組件較多,若有操作不明確的話,你可以后臺(tái)留言,我們一起完善。
  4. 具體操作時(shí)若有不清楚,或是錯(cuò)誤可以留言,大家一起解決。

1. 準(zhǔn)備基礎(chǔ)數(shù)據(jù)

  1. 配置gitlab
    1) 創(chuàng)建項(xiàng)目
    2)上傳示例代碼

    創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營(yíng)銷推廣、網(wǎng)站重做改版、官渡網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為官渡等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

    : 本次示例使用的gitlab項(xiàng)目地址為:http://gitlab.hanker.com/colynn/hanker-hello.git

  2. 配置harbor

1) 創(chuàng)建項(xiàng)目, 用于存儲(chǔ)構(gòu)建的鏡像
: 本次示例使用的harbor地址為 10.0.0.185:5000/hanker/hanker-hello:v1

  1. jenkins 驗(yàn)證信息

1)添加 gitlab 帳號(hào)信息

操作指引:【Credentials】-> 【System】-> 【Global credentials】-> 【Add Credentials】

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

2)harbor 信息

操作指引:【Credentials】-> 【System】-> 【Global credentials】-> 【Add Credentials】

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

3) k8s namespace驗(yàn)證信息

在你的k8s master節(jié)點(diǎn)上執(zhí)行如下操作:

1.創(chuàng)建serviceaccount

$ kubectl -n devops create serviceaccount jenkins-robot

命令輸出:

serviceaccount/jenkins-robot created

2.角色綁定

$ kubectl -n devops create rolebinding jenkins-robot-binding --clusterrole=cluster-admin --serviceaccount=devops:jenkins-robot

命令輸出:

rolebinding.rbac.authorization.k8s.io/jenkins-robot-binding created

3.獲取 ServiceAccount

$ kubectl -n devops get serviceaccount jenkins-robot -o go-template --template='{{range .secrets}}{{.name}}{{"\n"}}{{end}}'

jenkins-robot-token-n8w6b

4.基于base64解碼 ServiceToken

$ kubectl -n devops get secrets jenkins-robot-token-n8w6b -o go-template --template '{{index .data "token"}}' | base64 --decode

命令輸出:

eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZXZvcHMiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoiamVua2lucy1yb2JvdC10b2tlbi1uOHc2YiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJqZW5raW5zLXJvYm90Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiOTcyZTY0OGYtMTYxZC00NmM5LWI0ZjgtYjFkNTdlOWY4NTBjIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmRldm9wczpqZW5raW5zLXJvYm90In0.ArQvcaEqCaeU1ZcJ6nOC5rLaTZr_vLDrpLCt87asltMUWj2gSli_mXUTrl09hBnBDXI3A1D4rJXHKLHjIAA4nN8qRIRGbpqSNzDwmqJr-jmmmWWZFrZ3n3Al9-13KJnNOK8pcWr70rt3Rsigt4B6CIQ0-ZLK8BZhvROJSifeOfJ6xe2KBqdXBv1ccZZZfEhPLgGbaR5yWm5jLvOMr2MQiPDrZoHOEkcMt-C0xipytOp4sJCJ4bQhb-UoMu1owYydxbd6O7xO71fvqP_bMDpZXC601nA2ggK7h-vi6CJffHv5MM59q8X_DWe1NnZS6KXiMmkXqAmBn10Yu20PNj-kjg

5.添加 Secret text驗(yàn)證信息

操作指引:【首頁(yè)】->【Credentials】-> 【System】-> 【Global credentials】-> 【Add Credentials】-> 選擇【Secret text】類型

然后將上一步 解碼的結(jié)果 更新至 Secret, Pipeline 中

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

2. 如何創(chuàng)建 jenkins pipeline

1. 創(chuàng)建jenkins pipeline item

操作指引:【首頁(yè)】->【New Item】

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

2. pipeline script 步驟說(shuō)明

: pipeline主要包含三個(gè)階段(檢出代碼、制作鏡像、部署服務(wù)),下面跟大家解釋下,如何編寫pipeline, 借助Pipeline Syntax生成的只是部分代碼,你可以根據(jù)語(yǔ)言規(guī)范將其完善。

1.階段1,檢出代碼

操作指引:【首頁(yè)】->【hanker-hello-demo】-> 【Pipeline Syntax】

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

: 本實(shí)踐中選取的 git: Git 類型,當(dāng)然你也可以選擇 checkout: Check out from version control

獲取到該步驟的腳本

git credentialsId: 'gitlab-project-auth', url: 'http://gitlab.hanker.com/colynn/hanker-hello.git'

2.階段2,構(gòu)建鏡像
操作指引:類似于 階段1,

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

完善獲取該步驟腳本

script {
    withDockerRegistry(credentialsId: 'harbor-auth', url: 'http://10.0.0.185:5000') {
        def customImage =  docker.build("10.0.0.185:5000/devops/hanker-hello:v1")
        customImage.push()
    }
}

: 支持本階段需要jenkins-agent鏡像里包含docker命令。

3.階段3. 部署服務(wù)

參考: jenkins kubernetes cli plugin

: 支持本階段需要jenkins-agent鏡像里包含kubectl命令。

3. 設(shè)置 pipeline

:

  • General/ Build Triggers/ Advanced Project Options 這三塊你可以根據(jù)自己需要設(shè)置,將各階段的腳本合并,更新至 Pipline -> Script內(nèi)。

合并后的pipeline腳本內(nèi)容如下:

pipeline {
    agent any
    stages {
        stage('checkout') {
            steps {
                git credentialsId: 'gitlab-project-auth', url: 'http://gitlab.hanker.com/colynn/hanker-hello.git'    
            }
        }

        stage('docker-publish') {
            steps{
                script {
                    withDockerRegistry(credentialsId: 'harbor-auth', url: 'http://10.0.0.185:5000') {
                        def customImage =  docker.build("10.0.0.185:5000/devops/hanker-hello:v1")
                        customImage.push()
                    }
                }
            }
        }

        stage('application-deploy') {
            steps {
                withKubeConfig([credentialsId: '5a5517f3-3d38-459d-bafc-12b55beeb588', serverUrl: 'https://10.0.0.182:6443']) {
                    sh '/usr/bin/kubectl apply -f k8s-setup.yml'
                }
            }
        }
    }
}

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

3. 觸發(fā)構(gòu)建

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

4. 結(jié)果確認(rèn)

1.確認(rèn) jenkina-agent 啟動(dòng)狀態(tài);

$ kubectl -n devops get pods |grep jnlp
jnlp-sh8zl                                 1/1     Running   0          14s

// 查看jenkins-agent pod日志
$ kubectl -n devops logs -f [jenkins-agent-pod-name]

: 如果長(zhǎng)時(shí)間沒(méi)有啟動(dòng)jenkins-agent, 可以確認(rèn)下集群內(nèi)是否有足夠的資源。

2.確認(rèn)pipeline 執(zhí)行狀態(tài);

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

3.確認(rèn)harbor鏡像倉(cāng)庫(kù)里是否已經(jīng)有新推送的鏡像

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐
: harbor里的項(xiàng)目是需要你先創(chuàng)建好的,不然推送時(shí)會(huì)報(bào)錯(cuò)。

4.確認(rèn)部署的服務(wù)狀態(tài)

k8s master節(jié)點(diǎn)上執(zhí)行如下操作:

$ kubectl -n devops get pod,deployment,svc,ingress |grep hanker-hello 

pod/hanker-hello-5b7586f86d-5j7kk              1/1     Running   0          173m

deployment.extensions/hanker-hello              1/1     1            1           3h8m
service/hanker-hello-svc          ClusterIP   10.233.22.19    <none>        8080/TCP             3h8m
ingress.extensions/hanker-hello-ingress              hanker-hello-demo.dev.hanker.net                   80      3h8m

【Kubernetes系列】第8篇 CI/CD之全流程實(shí)踐

附錄

1.自定義jenkins-agent鏡像

## 基于 https://github.com/Kubernetes-Best-Pratice/jenkins-jnlp-agent.git

$ git checkout  https://github.com/Kubernetes-Best-Pratice/jenkins-jnlp-agent.git

$ cd jenkins-jnlp-agent
$ docker build .
$ docker tag tag-name custom-private-repository-addr

: 你也可以基于基礎(chǔ)鏡像創(chuàng)建自定義的鏡像

2.可以做的更完善

  1. 配置webhook, 自動(dòng)觸發(fā)jenkins job;
  2. 當(dāng)前我們實(shí)踐時(shí)構(gòu)建的鏡像版本使用的是固定的, 你是否可以將其替換為依賴pipeline環(huán)境變量或是傳參的形式,將其變是更有意義;
  3. 上一篇文章中在設(shè)置【配置Kubernetes Pod Template】時(shí),我們提到可以掛載主機(jī)或是網(wǎng)絡(luò)共享存儲(chǔ),你是否可以通過(guò)這個(gè)將你的構(gòu)建快起來(lái);
  4. 我們的示例代碼使用的go, 直接是鏡像內(nèi)打包,如何更好的就好的其他語(yǔ)言的構(gòu)建,你可以參考Using Docker with Pipeline;
  5. 你想過(guò)如何下載構(gòu)建過(guò)程中的產(chǎn)物嗎,等等。

3. 參考鏈接 :

  1. https://github.com/jenkinsci/kubernetes-cli-plugin/blob/master/README.md
  2. 下載kubectl: https://docs.docker.com/ee/ucp/user-access/kubectl/

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

標(biāo)題名稱:【Kubernetes系列】第8篇CI/CD之全流程實(shí)踐-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://aaarwkj.com/article10/ccdjdo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、搜索引擎優(yōu)化響應(yīng)式網(wǎng)站、網(wǎng)站營(yíng)銷云服務(wù)器、App開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
婷婷丁香久久五月婷婷| 国产大片在线观看一区二区| 久久热视频这里有精品| 久久成人午夜免费电影| 深夜视频在线观看成人| 一本久道久久综合狠狠老| 久久久久久精品国产av| 亚洲av区一区二区三| 91精品大片免费在线观看| 国产午夜精品一区二区三区| 国产呦精品一区二区三区| 青青成线在人线免费啪| 国产精品久久综合网| 亚洲综合久久精品少妇av| 亚洲精品一区二区午夜| 国产精品黄色91熟女| 国产男生午夜福利网站| 午夜未满十八禁止观看| 在线播放av男人的天堂| 日本的黄色录像一级带| 搡老熟女老女人一区二区| av在线中文字幕乱码| 妞妞婷婷基地五月天| 午夜福利片免费在线观看| 亚洲天堂欧美日韩一区| 国产蜜臀视频一区二区三区| 国产极品嫩模在线观看91| 久久中文字幕人妻熟av| 国产精品自产拍在线网站| 成人黄色av网站在线观看| 亚洲激情粉嫩中文字幕| 欧美日韩性性在线观看| 国产又粗又长又大又长| 青青草原在线视频伊人| 日本免费精品一区二区三区四区 | 国产真实乱偷精品视频免| 美女诱惑福利视频久久久| 偷拍视频一区二区三区| 国产91黑丝在线播放| 日日添夜夜添天天操| 未满十八在线观看网址|