Kubernetes 部署 Tekton-Operator

Tekton Operator 简介

Tekton Operator 是一个 Kubernetes 扩展,用于在任何 Kubernetes 集群上安装、升级和管理 TektonCD Pipelines, Dashboard, Triggers(和其他组件)。
在这里插入图片描述
官方文档:https://tekton.dev/docs/operator/

项目地址:https://github.com/tektoncd/operator

Tekton Operator 定义了以下实体:

实体描述
TektonConfig配置要安装和管理的 Tekton 组件。
TektonPipeline配置要安装和管理的 Tekton Pipeline 组件。
TektonTrigger配置要安装和管理的 Tekton Trigger 组件。
TektonDashboard配置要安装和管理的 Tekton Dashboard 组件。
TektonResult配置要安装和管理的 Tekton Result 组件。
TektonChain配置要安装和管理的 Tekton Chain 组件。
OpenShiftPipelinesAsCode配置要安装和管理的 Pipelines as Code 组件。
TektonAddon配置要安装和管理的插件。

安装 Tekton Operator

下载release.yaml文件,安装指定版本

wget https://storage.googleapis.com/tekton-releases/operator/previous/v0.69.1/release.yaml

由于网络原因无法直接拉取官方提供的gcr.io镜像,因此需要提前准备好镜像并push到私有仓库。

同步镜像

依赖哪些镜像可以通过初次部署tekton-operator确认,镜像版本可以通过components.yaml确认。

假设已准备能够访问谷歌 gcr.io 的特殊节点(否则可以考虑使用github action获取镜像),并且该节点能够将镜像推送到本地私有仓库http://registry.zot.com:5000,使用以下脚本通过skopeo镜像同步工具直接推送镜像到本地私有镜像仓库。

$ cat tekton_image_sync.sh
#!/bin/bash
dest_registry="registry.zot.com:5000"images=(
gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/operator:v0.69.1
gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/webhook:v0.69.1
gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/proxy-webhook:v0.69.1
gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller:v0.53.3
gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/events:v0.53.3
gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/resolvers:v0.53.3
gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook:v0.53.3
gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint:v0.53.3
gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/nop:v0.53.3
gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/sidecarlogresults:v0.53.3
gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/workingdirinit:v0.53.3
gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/controller:v0.25.3
gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/interceptors:v0.25.3
gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/webhook:v0.25.3
gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/eventlistenersink:v0.25.3
gcr.io/tekton-releases/github.com/tektoncd/chains/cmd/controller:v0.19.0
gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard:v0.41.0
gcr.io/tekton-releases/dogfooding/tkn:latest
)for image in "${images[@]}"
doskopeo copy --dest-tls-verify=false docker://${image} docker://${dest_registry}/${image#*/}
done

执行脚本

bash tekton_image_sync.sh

这里以zotregistry为例,确认镜像同步完成。也可以使用docker registry代替。

在这里插入图片描述

手动替换release.yaml中的operator镜像

查看release.yaml依赖的operator自身镜像

root@node1:~# cat release.yaml | grep image: | sort -uimage: gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/operator:v0.69.1@sha256:142c59f97aac2fba714e928012b5576476313c7cd4394b568df656b0693dbea0image: gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/webhook:v0.69.1@sha256:6e56a9a25b74c3758fd9d2f57aa9e2984a0a41477b1a4cde63e4e20160d02800

使用sed命令进行替换

sed -i 's|gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/operator:.*|registry.zot.com:5000/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/operator:v0.69.1|g' release.yaml
sed -i 's|gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/webhook:.*|registry.zot.com:5000/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/webhook:v0.69.1|g' release.yaml

替换tekton组件镜像

需要要替换掉release.yaml里所有的gcr.io的镜像,找到release.yaml里的tekton-operator-lifecycle容器,在环境变量里添加如下内容。支持的环境变量官方文档暂未记录,可以从项目文件config.yaml中查看。

$ vim release.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: tekton-operatornamespace: tekton-operator
spec:template:spec:containers:- name: tekton-operator-lifecycleimage: registry.zot.com:5000/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/operator:v0.69.1env:- name: IMAGE_PIPELINES_PROXYvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/proxy-webhook:v0.69.1- name: IMAGE_PIPELINES_TEKTON_EVENTS_CONTROLLERvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/pipeline/cmd/events:v0.53.3- name: IMAGE_PIPELINES_WEBHOOKvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook:v0.53.3- name: IMAGE_PIPELINES_TEKTON_PIPELINES_CONTROLLERvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/pipeline/cmd/controller:v0.53.3- name: IMAGE_PIPELINES_CONTROLLERvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/pipeline/cmd/resolvers:v0.53.3- name: IMAGE_PIPELINES_ARG__ENTRYPOINT_IMAGEvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint:v0.53.3- name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CORE_INTERCEPTORSvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/triggers/cmd/interceptors:v0.25.3- name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CONTROLLERvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/triggers/cmd/controller:v0.25.3- name: IMAGE_TRIGGERS_WEBHOOKvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/triggers/cmd/webhook:v0.25.3- name: IMAGE_CHAINS_TEKTON_CHAINS_CONTROLLERvalue: registry.zot.com:5000/tekton-releases/github.com/tektoncd/chains/cmd/controller:v0.19.0- name: IMAGE_JOB_PRUNER_TKNvalue: registry.zot.com:5000/tekton-releases/dogfooding/tkn:latest

确认是否自动安装组件(这里保持默认)

另外,在配置文件中,有如下配置。AUTOINSTALL_COMPONENTS控制tekton-operator在部署完成是否自动部署tekton组件。DEFAULT_TARGET_NAMESPACE指定组件所属命名空间。

apiVersion: v1
data:AUTOINSTALL_COMPONENTS: "true"DEFAULT_TARGET_NAMESPACE: tekton-pipelines
kind: ConfigMap
metadata:labels:operator.tekton.dev/release: develname: tekton-config-defaultsnamespace: tekton-operator

默认AUTOINSTALL_COMPONENTS为true,自动部署所有tekton组件,如果AUTOINSTALL_COMPONENTS配置为false,在operator部署成功后,可以手动触发tekton组件的部署。

在tekton-operator中有个TektonConfig的自定义资源,创建其他组件的顶级 CRD。

当我们创建自己所需的 TektonConfig 对象后,operator会根据配置中的profile字段帮助我们安装相应的其他组件。

Tekton Operator 内置了 3 个 profile:lite、all、basic。

安装组件(使用installation profiles: liteallbasic

Profile 轮廓Installed ComponentPlatform
litePipelineKubernetes, Openshift Kubernetes、Openshift
basicPipeline, TriggerKubernetes, Openshift Kubernetes、Openshift
allPipeline, Trigger, DashboardKubernetes
Pipeline, Trigger, Addons, Pipelines as CodeOpenshift

安装pipelinestriggersdashboard,使用 profile all

# To install pipelines, triggers, chains and dashboard (use profile 'all')
kubectl apply -f https://raw.githubusercontent.com/tektoncd/operator/main/config/crs/kubernetes/config/all/operator_v1alpha1_config_cr.yaml

示例配置

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:name: config
spec:profile: all     targetNamespace: tekton-pipelines   # 指定命名空间pruner:resources:  # 指定可以自动清理的资源- pipelinerun- taskrunkeep: 100  # 清理时要保留的最大资源数schedule: "0 8 * * *"  # 清理资源的频率

部署tekton operator

kubectl apply -f release.yaml

替换dashboard镜像
因为环境变量里还不支持dashboard的镜像替换,这里需要手动更改。

$ kubectl get TektonInstallerSet

编辑dashboard-main-deployment-xrlc2,替换镜像

$ kubectl edit TektonInstallerSet dashboard-main-deployment-xrlc2#image: gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard:v0.41.0image: registry.zot.com:5000/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard:v0.41.0

查看创建的pods

root@node1:~# kubectl -n tekton-operator get pods
NAME                                      READY   STATUS    RESTARTS   AGE
tekton-operator-57bfb7cf9-6sv49           2/2     Running   0          6m42s
tekton-operator-webhook-77cb6d65f-fbqhl   1/1     Running   0          51mroot@node1:~# kubectl -n tekton-pipelines get pods
NAME                                                 READY   STATUS    RESTARTS   AGE
tekton-chains-controller-797b4b7db5-wvfhx            1/1     Running   0          3m43s
tekton-dashboard-6685748fd7-4zfk8                    1/1     Running   0          89s
tekton-events-controller-c7b7db8d7-cdb48             1/1     Running   0          4m16s
tekton-operator-proxy-webhook-554b69d9b6-8cvbv       1/1     Running   0          4m11s
tekton-pipelines-controller-6b8d99dd9b-fdzj4         1/1     Running   0          4m16s
tekton-pipelines-remote-resolvers-86bccb68cc-zqq4p   1/1     Running   0          4m14s
tekton-pipelines-webhook-7745484f8d-bn4md            1/1     Running   0          4m16s
tekton-triggers-controller-7cf7696878-cclfz          1/1     Running   0          3m55s
tekton-triggers-core-interceptors-6d964f57d9-v4dpp   1/1     Running   0          3m54s
tekton-triggers-webhook-566dfd4fb7-xnddh             1/1     Running   0          3m54s

Tekton Operator卸载

删除CRD

kubectl get crd | grep tekton |awk '{print $1}' | xargs kubectl delete crd

删除operator

kubectl delete -f release.yaml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/484002.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【redis】在Ubuntu 20.04中安装redis

在Ubuntu 20.04中安装redis 在Ubuntu 20.04中安装redis 切换到root用户 su root 使用apt命令来搜索redis相关的软件包. apt search redis 不能正常显示要先输入:sudo apt update 使用apt命令安装redis apt install redis 查找是否存在redis: netstat -anp | grep …

css实现梯形

<div class"trapezoid"></div> .trapezoid {width: 200px;height: 0;border-bottom: 100px solid red; /* 定义梯形的底边 */border-left: 50px solid transparent; /* 定义梯形的左边 */border-right: 50px solid transparent; /* 定义梯形的右边 */} …

Docker基础篇(-)

docker 三个要素 镜像容器仓库 CentOS 6.8 安装 docker centos 7.0 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager -y --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo systemctl start docker 启动Docker&…

分享阿姆斯特丹3D城市模型

处于开发阶段的阿姆斯特丹 3D 城市模型可用于更轻松地向公众传达空间规划。 公众可以更多地参与市政府的规划决策和宗旨。 城市模型由简化形状的建筑物组成。 参见&#xff1a; 3D Amsterdam

stm32和嵌入式linux可以同步学习吗?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「stm3的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;如果需要使用STM32&#xff0c;建…

STM32控制数码管从0显示到99

首先 先画电路图吧&#xff01;打开proteus&#xff0c;导入相关器件&#xff0c;绘制电路图。如下&#xff1a;&#xff08;记得要保存啊&#xff01;发现模拟一遍程序就自动退出了&#xff0c;有bug&#xff0c;我是解决不了&#xff0c;所以就是要及时保存&#xff0c;自己重…

如何使用Docker部署开源Leanote蚂蚁笔记并发布个人博客至公网

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 1. 安装Docker2. Docker本地部署Leanote蚂蚁笔记3. 安装…

提供英语励志名言的软件有哪些?这些软件不可错过

提供英语励志名言的软件有哪些&#xff1f;在追求个人成长和激励的道路上&#xff0c;英语励志名言常常为我们提供前进的动力。这些言简意赅、充满智慧的话语&#xff0c;不仅能在我们迷茫时指引方向&#xff0c;还能在挫折中给予我们勇气和力量。如今&#xff0c;随着科技的发…

十大基础排序算法

排序算法分类 排序&#xff1a;将一组对象按照某种逻辑顺序重新排列的过程。 按照待排序数据的规模分为&#xff1a; 内部排序&#xff1a;数据量不大&#xff0c;全部存在内存中&#xff1b;外部排序&#xff1a;数据量很大&#xff0c;无法一次性全部存在内存中&#xff0c;…

跳表是一种什么样的数据结构

跳表是有序集合的底层数据结构&#xff0c;它其实是链表的一种进化体。正常链表是一个接着一个用指针连起来的&#xff0c;但这样查找效率低只有O(n)&#xff0c;为了解决这个问题&#xff0c;提出了跳表&#xff0c;实际上就是增加了高级索引。朴素的跳表指针是单向的并且元素…

Linux网络编程(三-UDP协议)

目录 一、UDP概述 二、UDP的首部格式 三、UDP缓冲区 四、基于UDP的应用层协议 五、常见问题 一、UDP概述 UDP(User Datagram Protocol&#xff0c;用户数据协议报)是传输层协议&#xff0c;提供不可靠服务&#xff0c;其特点包括&#xff1a; 无连接&#xff1a;知道对端…

Nginx基础入门

一、Nginx的优势 nginx是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个SMTP&#xff08;邮局&#xff09;服务器。 Nginx的web优势&#xff1a;IO多路复用&#xff0c;时分多路复用&#xff0c;频分多路复用 高并发&#xff0c;IO多路复用&#xff0c;epoll&#xf…