国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Tekton系列之實踐篇-如何用Jenkins來管理Tekton

開發 架構
從理論上用Jenkins來管理Tekton是可行的,而且對于Jenkins重度用戶來說,也算是比較不錯的事情。當然我更想使用類似于Kubesphere這類來管理,期待Kubesphere把Tekton集成進去。

在《??Tekton系列之實踐篇-由Jenkins改成Tekton??》中,我們可以將Jenkinsfile改成Tekton Pipeline,但是Tekton有一個很大的問題是不能很好的劃分權限,特別是在Dashboard上根本就做權限控制,那如果在實際中使用的話權限不明會帶來很多問題,比如誰刪了什么,誰執行了什么都不知道。

如果你公司有自動化運維平臺,可以接入Tekton,如果沒有就需要在Github上找是否有相關的Dashboard或者平臺,可惜我什么都沒有.....

目前我使用的Kubesphere來管理K8s集群以及流水線,所以我就在想怎么使用kubesphere管理。不過截止目前版本,Kubesphere的流水線引擎還是Jenkins,除非二開,不然沒辦法直接繼承Tekton,期待Kubesphere把Tekton也加入(https://github.com/kubesphere/community/blob/master/sig-advocacy-and-outreach/summer-ospp/kubeSphere-tekton-integration_zh-CN.md)。

那應該怎么做呢?我想到一個很牛逼(SB)的辦法,如下:

看懂了么?

其實就是繼續使用Jenkins做Kubesphere的流水線引擎,然后將Jenkins和Tekton進行打通,這樣是不是間接使用了Tekton?這是不是一個很牛逼(SB)的idea?

但是悲劇來了,Jenkins的Tekton插件要求Jenkins最低的版本是2.263,而Kubesphere的Jenkins版本是2.49,而且升級非常麻煩,麻煩到官方都不建議升級的地步。所以這里只能退而求其次,使用Jenkins來進行實驗了。

部署Jenkins

Jenkins的部署方式有很多,這里采用Helm的方式來部署,簡單快捷。

首先需要安裝Helm命令,見文檔(https://helm.sh/docs/intro/install/)。

接著安裝Jenkins,如下:

helm repo add jenkinsci https://charts.jenkins.io
helm repo update
# 我習慣把CHART下載到本地,方便管理
helm pull jenkinsci/jenkins
# 這里有一步解壓的過程,然后進入Jenkins目錄進行部署
# 部署
kubectl create ns devops
helm install jenkins -n devops .

部署完成后即可進行登錄了。

訪問地址要么使用NodePort,要么使用ingress,這里沒有展示配置過程。

安裝Jenkins插件

為了實現上面的需求,我找到一個Jenkins插件可以用來管理Tekton,插件名叫tekton-client-plugin tekton-client-plugin(https://github.com/jenkinsci/tekton-client-plugin)。

tekton-client-plugin用來打通Jenkins和Tekton,功能也不復雜,可以到文檔(https://plugins.jenkins.io/tekton-client/#documentation)進行學習。

如果Jenkins版本大于2.263,可以直接在插件中心下載,如下:

配置權限

這里是權限是Jenkins操作Tekton的權限,如下:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tekton-role
namespace: tekton-devops-pipeline
rules:
- apiGroups:
- ""
resources:
- pods
- pods/log
verbs:
- get
- list
- watch
- apiGroups:
- tekton.dev
resources:
- tasks
- taskruns
- pipelines
- pipelineruns
verbs:
- create
- delete
- deletecollection
- get
- list
- patch
- update
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: tekton-role-binding
namespace: tekton-devops-pipeline
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: tekton-role
subjects:
- kind: ServiceAccount
name: jenkins
namespace: devops

注意授權的serviceaccount和namespace。

編寫Jenkinsfile

要使用的Jenkinsfile其實很簡單。但是由于我們是多分支發布,所以Jenkinsfile如下:

pipeline {
agent any

parameters {
choice(description: '選擇分支', name: 'BRANCH_NAME', choices: ['dev', 'test', 'uat', 'pre', 'prod'])
}

stages {
stage('deploy to dev'){
when{
expression {
return "$BRANCH_NAME".contains('dev')
}
}
steps{
tektonCreateRaw input: 'deploy/dev/pipeline.yaml', inputType: 'FILE', namespace: 'tekton-devops-pipeline'
}
}
stage('deploy to test'){
when{
expression {
return "$BRANCH_NAME".contains('test')
}
}
steps{
tektonCreateRaw input: 'deploy/test/pipeline.yaml', inputType: 'FILE', namespace: 'tekton-devops-pipeline'
}
}
stage('deploy to uat'){
when{
expression {
return "$BRANCH_NAME".contains('uat')
}
}
steps{
tektonCreateRaw input: 'deploy/uat/pipeline.yaml', inputType: 'FILE', namespace: 'tekton-devops-pipeline'
}
}
stage('deploy to pre'){
when{
expression {
return "$BRANCH_NAME".contains('pre')
}
}
steps{
tektonCreateRaw input: 'deploy/pre/pipeline.yaml', inputType: 'FILE', namespace: 'tekton-devops-pipeline'
}
}
stage('deploy to prod'){
when{
expression {
return "$BRANCH_NAME".contains('prod')
}
}
steps{
tektonCreateRaw input: 'deploy/prod/pipeline.yaml', inputType: 'FILE', namespace: 'tekton-devops-pipeline'
}
}
}
}

Tekton的PipelineRun按目錄分級,如下(這里只是為了方便,其實可以只用一個PipelineRun):

弄完過后,就可以創建流水線了,如下創建一個hello-world-test的流水線。

然后選擇對應的分支進行部署。可以看到觸發了Tekton的PipelineRun,如下:

不過Jenkins這邊還有如下問題:

[Checks API] No suitable checks publisher found.
Failed: null
java.lang.NullPointerException
at org.waveywaves.jenkins.plugins.tekton.client.build.create.CreateRaw.createPipelineRun(CreateRaw.java:278)
at org.waveywaves.jenkins.plugins.tekton.client.build.create.CreateRaw.createWithResourceSpecificClient(CreateRaw.java:168)
at org.waveywaves.jenkins.plugins.tekton.client.build.create.CreateRaw.runCreate(CreateRaw.java:429)
at org.waveywaves.jenkins.plugins.tekton.client.build.create.CreateRaw.perform(CreateRaw.java:393)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:101)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:71)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)

[Checks API] No suitable checks publisher found.

雖然報這個錯,但是Tekton PipelineRun觸發沒問題,具體原因還待排查,這就非常尷尬了??吹较旅孢@一串串的紅色,心涼了一半(Tekton實際是可以允許成功)。

最后其實這篇實踐不算完成,Jenkins的問題還沒有解決,在網上查了半天資料也沒什么效果,很多說是Jenkins Check-API 插件的原因,但是沒有去測試。

不過,從理論上用Jenkins來管理Tekton是可行的,而且對于Jenkins重度用戶來說,也算是比較不錯的事情。當然我更想使用類似于Kubesphere這類來管理,期待Kubesphere把Tekton集成進去。

責任編輯:武曉燕 來源: 運維開發故事
相關推薦

2022-03-21 09:40:48

TektonJenkinsPipeline

2022-04-14 07:51:39

TektonTaskRun

2022-04-25 08:07:45

TektonArgocdCI和CD

2022-03-10 13:57:23

TektonJenkinsPipeline

2022-03-01 13:55:27

TektonKubernetes集群

2022-03-08 08:32:43

Tekton云原生開源

2022-07-27 07:39:45

Kubernetes云原生

2022-08-11 16:29:32

Tekton流水線遷移工作流

2021-04-27 22:32:01

TektonKubernetesCI

2021-06-18 05:48:02

Tekton DevopsKubernetes

2021-06-25 09:54:49

GitLab Tekton Devops

2021-07-09 06:40:59

TektonArgo CD GitOps

2021-05-13 18:23:53

Tekton云原生Kubernetes

2022-04-01 10:51:33

TektonArgoCDGitOps

2021-06-09 05:44:45

云原生 CICD

2021-06-26 14:22:34

Tekton流水線Kubernetes

2021-06-28 06:32:46

Tekton Kubernetes Clone

2021-02-09 08:17:05

內核Kprobe函數

2021-11-26 08:14:05

云原生CICD

2010-05-25 13:47:53

MySQL 命令
點贊
收藏

51CTO技術棧公眾號

五月激情丁香一区二区三区| 精品产国自在拍| 欧美激情导航| 免费在线观看黄色网| 国产97免费视| 精品一区二区免费| 日韩专区av| 久热这里只精品99re8久| 在线一区二区三区做爰视频网站| 秋霞影视一区二区三区| 日本www高清视频| 国产精品天美传媒沈樵| 91欧美精品| 成人小视频在线观看免费| 亚洲国产精久久久久久久| 视频一区二区三区入口| 色网站在线看| 日韩美女主播视频| 1区2区3区欧美| 伦理一区二区三区| 春暖花开亚洲| 欧美孕妇性xx| 国产精品扒开腿做爽爽爽软件| 欧美高清一区二区| 91黄色在线观看| 亚洲一区在线| 二区在线观看| 精品日本一区二区三区| 精品成人一区| 97青娱国产盛宴精品视频| 校园春色影音先锋| 国产成人精品一区| 日韩激情综合| 日韩人妻一区二区三区蜜桃视频| 日韩激情在线视频| 国产精品99久久久久久有的能看| 色妞一区二区三区| 超碰国产精品一区二页| 国产精品嫩草影院久久久| 亚洲一区二区三区中文字幕 | 在线免费毛片| caoporen国产精品| 国产精品99久久久久久似苏梦涵| 成人免费一区| 欧美日韩中文不卡| 亚洲影院高清在线| 日韩亚洲欧美一区二区三区| 精彩视频一区二区三区| 999精品视频在线观看| 1pon在线| 国产日韩欧美一区二区| 亚洲精美色品网站| 麻豆视频一区| 黄色大片在线免费观看| 水蜜桃一区二区三区| 久久精品91久久久久久再现| 一区二区三区日韩精品| 一本色道久久| 国产视频97| 97免费资源站| 日韩av网站在线| 久久精品人人做人人综合 | 好吊妞国产欧美日韩免费观看网站| 黑巨人与欧美精品一区| 国内外成人免费视频| 亚洲人成在线免费观看| 999精品一区| 日本电影在线观看| 国产色综合天天综合网| 日韩精品在线一区| 国产成人av资源| 日本成人中文| 超碰超碰在线| 欧美大尺度做爰床戏| 在线播放日韩专区| 欧美aⅴ一区二区三区视频| vam成人资源在线观看| 一区二区三区区四区播放视频在线观看 | 91香蕉视频导航| 精品美女一区二区三区| 成人自拍在线| 免费一级在线观看| 婷婷久久青草热一区二区| 久久综合五月天| 欧美日韩国产精品一区二区三区四区 | 亚洲欧美国产日韩综合| 亚洲最大av网| 亚洲女人天堂成人av在线| 一区二区三区资源| 久久91精品久久久久久秒播| 欧美日韩精品在线一区| 国产精品专区免费| 在线观看av网站永久| 草草草视频在线观看| 国产综合色香蕉精品| 一区二区三区精品99久久| 亚洲成人av一区二区三区| 国产福利一区二区三区| 欧美日韩蜜桃| 精品国产18久久久久久洗澡| 黄页网站大全在线免费观看| 免费黄色av电影| 久久久无码中文字幕久...| 成人h视频在线观看播放| 在线日韩日本国产亚洲| 欧美在线观看视频一区二区| 俺要去色综合狠狠| 第84页国产精品| 一级视频在线免费观看| 人妻少妇被粗大爽9797pw| 免费看成人午夜电影| 奇米一区二区三区四区久久| 亚洲美女久久久| 欧美午夜精品电影| 国产精品麻豆网站| 国产一区二区视频在线播放| 怡红院av在线| 狠狠操夜夜操| 久激情内射婷内射蜜桃| 久久久精彩视频| 国产一区二区香蕉| 久久久久久久一| 亚洲天堂av女优| 日韩一区二区三| 日韩欧美成人免费视频| 国产精品毛片高清在线完整版| 国产一区二区三区免费看| 日韩视频中文| 91精品国产91久久久久久密臀| 精品五月天堂| 91视频成人| 天天综合网天天| 欧美大片在线播放| 日韩av图片| av免费精品一区二区三区| 国产mv久久久| 久久91精品国产91久久久| 伊人伊成久久人综合网站| 亚洲精品成人免费| 亚洲精品天天看| 国产亚洲精品综合一区91| 国产亚洲欧美日韩精品| 永久555www成人免费| 国产亚洲一区精品| www.日韩不卡电影av| 欧美精品在线播放| 久久久久久97| 国产福利精品视频| 成人精品视频99在线观看免费| 91久久精品一区| 国产免费高清一区| 欧美亚洲精品日韩| 性做爰过程免费播放| 欧美成人三级在线视频| 能看的毛片网站| 三上悠亚一区二区三区| 在线观看视频污| 91高清在线视频| www日韩在线观看| av免费网站观看| 四虎4hu新地址入口2023| 神马伦理电影| 国产污视频在线| 青青青国内视频在线观看软件| 亚洲人成在线网站| 91精品福利观看| 国产亚洲电影| 激情综合久久| 国产综合色精品一区二区三区| 97久久超碰国产精品电影| 亚洲欧美日韩系列| 欧美丝袜丝交足nylons图片| 亚洲国产日韩欧美在线动漫 | 国产福利不卡视频| 国产日产欧美一区二区视频| 成人3d动漫在线观看| 在线中文字幕亚洲| 美女视频第一区二区三区免费观看网站| 国产盗摄一区二区三区| 综合婷婷亚洲小说| 9191精品国产综合久久久久久| 在线视频精品一| 国产精品日韩在线观看| 日韩免费av电影| 久久久国产欧美| av电影在线观看一区二区三区| 亚洲精品粉嫩美女一区| 神马电影久久| 久久久久99| 国产欧美一区二区三区网站| 在线亚洲欧美专区二区| 亚洲欧洲日本专区| 国产精品一区二区久久久久| 亚洲亚洲精品三区日韩精品在线视频| 91色p视频在线| 视频二区一区| 国产视频一区二区三区在线播放| 免费在线黄色影片| 欧美久久久网站| 欧美在线精品一区|