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

相关文章

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

PyQt6中QMainWindow组件的使用详解

《PyQt6中QMainWindow组件的使用详解》QMainWindow是PyQt6中用于构建桌面应用程序的基础组件,本文主要介绍了PyQt6中QMainWindow组件的使用,具有一定的参考价值,... 目录1. QMainWindow 组php件概述2. 使用 QMainWindow3. QMainW

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J