项目源码:

The Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines.

Tekton管道项目为声明CI/ cd风格的管道提供了k8风格的资源。

安装

Install Tekton Pipelines

kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml

Install Tekton CLI (tkn)

curl -LO https://github.com/tektoncd/cli/releases/download/v0.7.1/tkn_0.7.1_Linux_x86_64.tar.gz

# Change destination directory as needed

tar xvzf tkn_0.7.1_Linux_x86_64.tar.gz -C ~/bin

​

Install Tekton dashboard 仪表盘

kubectl apply --filename https://github.com/tektoncd/dashboard/releases/download/v0.5.1/tekton-dashboard-release.yaml

更改镜像源

默认镜像源安装时的问题解决:

两个yaml 中创建资源时,pull 镜像用的镜像库是国外的,gcr.io 需要替换成国内的镜像源:gcr.azk8s.cn

如果使用原来的gcr.io , 资源创建成功后在启动的过程中,pod状态一直是 imagepullbackoff , 查看pod 内部,是无法pull 镜像所致。get pods --namespace tekton-pipelines --watch

get pods --namespace describe pod ​

解决方法:#将资源删除

kubectl delete--filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml

kubectl delete --filename https://github.com/tektoncd/dashboard/releases/download/v0.5.1/tekton-dashboard-release.yaml

# 下载yaml 文件

# 注意如果因为我们下面要替换的国内源不是即时更新的,有一个同步时间差。

# 如果下载latest release 可能会遇到下载到昨天发布的最新版本,而使用国内源时会出现找不到最新镜像ID. 所以在更新之前可以在官网看一下最新版本是不是昨天才更新的版本,如果是建议选上一个版本

# 如果latest 是几天之前的,则没有问题。

# 官网release : https://github.com/tektoncd/pipeline/releases

# https://storage.googleapis.com/tekton-releases/pipeline/previous/vx.xx.x/release.yaml

wget https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml

wget https://github.com/tektoncd/dashboard/releases/download/v0.5.1/tekton-dashboard-release.yaml

#修改yaml 里面的镜像库

vi release.yaml

:%s/gcr.io/gcr.azk8s.cn/g

:wq

vi tekton-dashboard-release.yaml

:%s/gcr.io/gcr.azk8s.cn/g

:wq

#重新创建资源

kubectl apply -f release.yaml

kubectl apply -f tekton-dashboard-release.yaml

#查看pods 运行状态

kubectl get pods --namespace tekton-pipelines --watch

NAME                                           READY   STATUS              RESTARTS   AGE

tekton-dashboard-7bb59dd55-x4q4q               0/1     ContainerCreating   0          10s

tekton-pipelines-controller-6f9dc7b8f9-99bd9   1/1     Running             0          10m

tekton-pipelines-webhook-69f557c7ff-pqml8      1/1     Running             0          10m

tekton-dashboard-7bb59dd55-x4q4q               0/1     Running             0          45s

tekton-dashboard-7bb59dd55-x4q4q               1/1     Running             0          50s

HelloWork TaskRun

准备好 Resource

task :  task-hello-world.yaml

taskrun :  taskrun-hello-world.yaml

kustomization : 配置以上资源

实例:root@vm1:~/k8s/tekton/helloworld# ll

total 20

drwxr-xr-x 2 root root 4096 Apr 15 11:25 ./

drwxr-xr-x 3 root root 4096 Apr 15 11:23 ../

-rw-r--r-- 1 root root   67 Apr 15 11:25 kustomization.yaml

-rw-r--r-- 1 root root  196 Apr  2 13:23 task-hello-world.yaml

-rw-r--r-- 1 root root  134 Apr  2 13:23 taskrun-hello-world.yaml

root@vm1:~/k8s/tekton/helloworld# cat task-hello-world.yaml

apiVersion: tekton.dev/v1alpha1

kind: Task

metadata:

name: echo-hello-world

spec:

steps:

- name: echo

image: ubuntu

command:

- echo

args:

- "hello world"

root@vm1:~/k8s/tekton/helloworld# cat taskrun-hello-world.yaml

apiVersion: tekton.dev/v1alpha1

kind: TaskRun

metadata:

name: echo-hello-world-task-run

spec:

taskRef:

name: echo-hello-world

root@vm1:~/k8s/tekton/helloworld# cat kustomization.yaml

resources:

- task-hello-world.yaml

- taskrun-hello-world.yaml

root@vm1:~/k8s/tekton/helloworld# kubectl apply -k .

常用检查命令tkn taskrun describe ​tkn taskrun logs

常见debug 命令

kubectl get pods --watch

kubectl descibe pod xxxxx

kubectl logs 查看所有steps

kubectl logs --container/-c

#持续观察pod状态的变化

kubectl get pods --watch

#当状态为error时,查看这个pod 的log

kubectl descibe pod

#在上面的describe 的详情页面找到发生Error的步骤:如step-build-and-push, 查看此阶段的log

kubectl logs  --container step-build-and-push

#这个log的内容其实可以在执行的节点上找到对应的容器,为vm2上容器log

docker container logs fc7d1c46d52c --tail 10

应用一个 TaskRun创建一个 secret

创建各种资源:  git , image,  serviceaccout ,  taskgit:  指 代码库的资源 ,比如gitlab

image:  指定 docker build 的image 需要推送的镜像库registry

serviceAccount: 指定镜像库的认证信息,引用上面创建的secret

task: 指定 任务 的过程 ,比如使用 git 类型作为输入,image 类型作为输出,执行step 的步骤创建taskrun : 用来引用上面的创建的task 和其他各种资源。

kubectl create secret docker-registry regcred \

--docker-server=registry.gitlab.systems.com \

--docker-username=xxxx \

--docker-password=xxxx \

--docker-email=xxxxxx@china.com.cn

​

# 例子参见 官网

kubectl apply -f pipelineresource-ci-git-repo.yaml

kubectl apply -f pipelineresource-cointainer-registry.yaml

kubectl apply -f tekton-docker-cred-service.yaml

kubectl apply -f task-build-image.yaml

kubectl apply -f taskrun-build-docker-image.yaml

应用一个 pipelineRun创建一个 secret

创建各种资源:  git , image,  serviceaccout ,  task,clusterrole,clusterrolebinding ,pipelinegit:  指 代码库的资源 ,比如gitlab

image:  指定 docker build 的image 需要推送的镜像库registry

serviceAccount: 指定镜像库的认证信息,引用上面创建的secret

clusterrole:创建一个集群角色

clusterrolebinding:将集群角色和serviceaccout 绑定在一起

task: 指定 任务 的过程 ,比如使用 git 类型作为输入,image 类型作为输出,执行step 的步骤

task:  指定部署任务。

pipeline:  对各个task 编排,传参创建pipelinerun : 用来引用上面的创建的pipeline 和其他资源一起应用。

kubectl create clusterrole tekton-role \

--verb=get,list,watch,create,update,patch,delete \

--resource=deployments,deployments.apps,jobs​

kubectl create clusterrolebinding tekton-binding \

--clusterrole=tekton-role \

--serviceaccount=default:docker-cred-service​​

# 例子参见 官网

# https://github.com/tektoncd/pipeline/blob/master/docs/pipelineruns.md

kubectl apply -f pipelineresource-ci-git-repo.yaml

kubectl apply -f pipelineresource-cointainer-registry.yaml

kubectl apply -f tekton-docker-cred-service.yaml

kubectl apply -f task-build-image.yaml

kubectl apply -f task-deploy-using-kubectl.yaml

kubectl apply -f pipeline.yaml

kubectl apply -f pipelinerun.yaml

​

部署 tekon 仪表盘

下载 dashboard 的yaml

修改 yaml 文件中的镜像库为国内镜像

gcr.azk8s.cn/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard修改service 的类型为NodePort

在yaml 文件的tekton-dashboard的定义下,spec 下加上type: NodePort应用yaml , 安装dashboardkubectl apply -f dashboard.yaml ​查看服务的nodeport , 30910kubectl get svc --all-namespaces

tekton-pipelines   tekton-dashboard              NodePort    10.111.144.179           9097:30910/TCP              31s浏览器访问,使用集群节点ip加nodeport 30910

比如http://vm1:30910

dashboard 镜像源_使用 tekton 做 CI/CD相关推荐

  1. dashboard 镜像源_使用国内docker镜像源

    在国内,通过Docker的pull和push命令访问hub.docker时,网络十分慢,而且会出现各种各样的网络连接问题.因此这里介绍下如何使用国内的镜像源,这里以DaoCloud为例. 注册完成后, ...

  2. 【 云原生 | kubernetes 】- tekton构建CI/CD流水线(二)

    ​ 上一节我们是通过创建Pipelinerun来触发流水线来进行构建,实际生产中完全自动化的实现需要借助tekton中的triggers.本文是上篇的拓展请先了解这篇文章 Tekton Trigger ...

  3. sudo apt install镜像_将Docker镜像安全扫描步骤添加到CI/CD管道

    使用GitlabCI和Trivy 介绍 如今,镜像安全扫描变得越来越流行.这个想法是分析一个Docker镜像并基于CVE数据库寻找漏洞.这样,我们可以在使用镜像之前知道其包含哪些漏洞,因此我们只能在生 ...

  4. anconda设置镜像源_管理2000+Docker镜像,Kolla是如何做到的

    根据 DockerHub 上的数据,整个 Kolla 项目管理的 镜像有 2000 多个,这么多的镜像,是怎么定义,又是如何构建的呢? 简介 我们一直在说的 Kolla,通常情况下泛指,包括了 Kol ...

  5. dashboard 镜像源_kubernetes相关镜像源地址汇总

    #docker使用代理 https://blog.csdn.net/styshoo/article/details/55657714 #docker镜像源 #使用docker官方 docker pul ...

  6. 【GitLab】693- 用 GitLab 做 CI/CD 是什么感觉,太强了!!

    作者:废物大师兄 来源:www.cnblogs.com/cjsblog/p/12256843.html GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发: Co ...

  7. 第1章 开篇-为什么要做CI/CD?

    本章阐述持续集成系统的发展历程.持续集成系统的原理,以及持续集成系统的实现过程,目的是让大家全面了解持续集成系统,更加深入的学习持续集成系统的原理,为后续章节的学习做好准备.我会分享一些个人的经验. ...

  8. anconda设置镜像源_三、DockerFile 定制属于自己的专属镜像

    前言 上篇文章我们知道了怎么操作镜像和容器,到基础都是从已经存在的镜像开始的,那我们自己怎样搭建一个镜像并使用它呢?接下来就让我们学习使用dockerfile 创建属于自己的镜像吧. dockerfi ...

  9. pychram 配置清华镜像源_教你如何给树莓派更换软件源

    在开始树莓派的各种 DIY 之前,我们还需要做一件很重要的事情:更换软件源. 这里我简单解释下什么是软件源,以及为什么要更换软件源. 软件源是指 debian 系操作系统的应用程序安装包仓库,很多的软 ...

最新文章

  1. 适合初学者的数据结构_数据结构101:图-初学者的直观介绍
  2. spring 的MAVEN配置
  3. sonar的安装以及使用
  4. 制作简单的2D物理引擎(零)
  5. 【汇编语言】8086汇编,快速搞定各种寻址方式:立即数寻址 / 寄存器寻址 / 存储器寻址
  6. mysql自增id获取失败
  7. java 一致性hash算法 均衡分发_Dubbo一致性哈希负载均衡的源码和Bug,了解一下?...
  8. nginx缓存页面后,串会话问题的解决方案(转)
  9. ubutun 更换网络源_Ubuntu 14.04用户修改更新源和替换软件源的方法
  10. umijs 修改默认配置_UmiJS基础教程(2) 目录结构
  11. 使用MyEclipse的自动提醒功能卡死MyEclipse的激活
  12. AutoJs学习-QQ聊天机器人
  13. NAS网络文件服务器搭建流程
  14. 码流、码率、比特率、帧速率、分辨率、 高清的区别 基础知识
  15. GBASE 8s UDR内存管理_03_mi_realloc
  16. java list下标_java8 stream根据下标分组
  17. JZOJ 3339. 【NOI2013模拟】wyl8899和法法塔的游戏【NIM博弈】【暴力】
  18. 从中专逆袭到协和研究生,这个河南小伙太励志了
  19. P4084 [USACO17DEC]Barn Painting
  20. 英语说10点20有计算机课,博雅课选课指南(1)

热门文章

  1. java jtextarea字体_Jtextarea如何设置不同字体、颜色
  2. 检索 COM 类工厂中 CLSID 为 ???的组件时失败,原因是出现以下错误: 80080005。
  3. 转换 wav,ape,flac 音乐为 mp3,m4a(mp4) 格式
  4. reverse()函数
  5. MySQL索引数据结构及算法原理
  6. 基于Java实现动态数组
  7. Shiro(一)之shiro简介与工作原理
  8. Principles of fMRI 1课程笔记7--fMRI数据的时间分辨率和空间分辨率
  9. 2009奥巴马的秋季开学演讲稿
  10. 强化学习介绍和马尔可夫决策过程详细推导