Tekton — 通过tekton-operator部署tekton组件

2023-12-06 05:01
文章标签 部署 组件 operator tekton

本文主要是介绍Tekton — 通过tekton-operator部署tekton组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 版本信息
    • 部署准备
    • 安装
    • 卸载tekton组件

Tektoncd Operator 作为一个 Kubernetes 的扩展,可以方便快捷地在 Kubernetes 集群上安装、升级和管理 Tekton Pipelines、Dashboard、Triggers 等组件。

那么本篇文章介绍在K8S集群中如何通过tekton-operator部署Tekton组件。

版本信息

K8S: v1.28.2
tekton-operator: v0.68.1

部署准备

官方已提供部署文件链接,可自行查找所需版本下载 => https://github.com/tektoncd/operator/releases

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

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

并且我们还要替换掉release.yaml里所有的gcr.io的镜像:
找到release.yaml里的tekton-operator-lifecycle容器,在环境变量里添加如下内容。
环境变量名规范是:{前缀}_{容器名/参数名}

			- name: IMAGE_PIPELINES_PROXYvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/proxy-webhook:v0.68.1- name: IMAGE_PIPELINES_TEKTON_EVENTS_CONTROLLERvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/pipeline/cmd/events:v0.50.3- name: IMAGE_PIPELINES_WEBHOOKvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook:v0.50.3- name: IMAGE_PIPELINES_CONTROLLERvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/pipeline/cmd/resolvers:v0.50.3- name: IMAGE_PIPELINES_TEKTON_PIPELINES_CONTROLLERvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/pipeline/cmd/controller:v0.50.3- name: IMAGE_PIPELINES_ARGS__ENTRYPOINT_IMAGEvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint:v0.50.3- name: IMAGE_PIPELINES_ARGS__NOP_IMAGEvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/pipeline/cmd/nop:v0.50.3- name: IMAGE_PIPELINES_ARGS__SIDECARLOGRESULTS_IMAGEvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/pipeline/cmd/sidecarlogresults:v0.50.3- name: IMAGE_PIPELINES_ARGS__WORKINGDIRINIT_IMAGEvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/pipeline/cmd/workingdirinit:v0.50.3- name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CORE_INTERCEPTORSvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/triggers/cmd/interceptors:v0.25.2- name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CONTROLLERvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/triggers/cmd/controller:v0.25.2- name: IMAGE_TRIGGERS_WEBHOOKvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/triggers/cmd/webhook:v0.25.2- name: IMAGE_TRIGGERS_ARG__EL_IMAGEvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/triggers/cmd/eventlistenersink:v0.25.2- name: IMAGE_CHAINS_TEKTON_CHAINS_CONTROLLERvalue: registry.cloud-devops.com/tekton-releases/github.com/tektoncd/chains/cmd/controller:v0.17.1- name: IMAGE_JOB_PRUNER_TKNvalue: registry.cloud-devops.com/tekton-releases/dogfooding/tkn

在配置文件中,有如下配置。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_COMPONENTSfalse,在operator部署成功后,需要我们手动触发tekton组件的部署。
在tekton-operator中有个TektonConfig的自定义资源,创建其他组件的顶级 CRD。
当我们创建自己所需的 TektonConfig 对象后,operator会根据配置中的profile字段帮助我们安装相应的其他组件。

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

ProfileInstalled ComponentPlatform
litePipelineKubernetes, Openshift
basicPipeline, Trigger, ChainsKubernetes, Openshift
allPipeline, Trigger, Dashboard, ChainsKubernetes
Pipeline, Trigger, Addons, Pipelines as Code, ChainsOpenshift
# 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.yamlapiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:name: config
spec:profile: all     targetNamespace: tekton-pipelines   # 指定命名空间pruner:resources:  # 指定可以自动清理的资源- pipelinerun- taskrunkeep: 100  # 清理时要保留的最大资源数schedule: "0 8 * * *"  # 清理资源的频率

安装

  1. 部署tekton-operator

     $ kubectl create -f release.yaml
    

    查看部署结果:

    $ kubectl get pod -n tekton-operator
    

    在这里插入图片描述

  2. 部署tekton组件
    如果AUTOINSTALL_COMPONENTSfalse执行这个命令。否则跳过,tekton会自动部署组件。

    $ kubectl create -f operator_v1alpha1_config_cr.yaml
    

    查看结果

    $ kubectl get pod -n tekton-pipelines
    

    在这里插入图片描述

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

    $ kubectl get TektonInstallerSet
    

    在这里插入图片描述
    编辑dashboard-main-deployment-xrlc2,替换镜像

    $ kubectl edit TektonInstallerSet dashboard-main-deployment-xrlc2
    

    查看结果
    在这里插入图片描述

  4. 访问
    Dashboard 的服务默认通过 ClusterIP 方式进行暴露,我们可以创建一个 Ingress 对象或者修改 Service 为 NodePort 方式进行暴露。

    在这里插入图片描述

卸载tekton组件

卸载tekton其实也很简单,部署时我们知道operator会根据TektonConfig对象部署组件,那么卸载组件也只需要删除这个对象即可。

# 查询对象
$ kubectl get TektonConfig

在这里插入图片描述
删除TektonConfig对象

$ kubectl delete TektonConfig config

查看结果,各个组件在逐步删除
在这里插入图片描述
在这里插入图片描述

这篇关于Tekton — 通过tekton-operator部署tekton组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/460523

相关文章

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

基于Qt Qml实现时间轴组件

《基于QtQml实现时间轴组件》时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件,本文主要为大家详细介绍了如何使用Qml实现一个简单的时间轴组件,需要的可以参考下... 目录写在前面效果图组件概述实现细节1. 组件结构2. 属性定义3. 数据模型4. 事件项的添加和排序5. 事件项的渲染如何使用

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-