安装

安装 Alauda DevOps Pipelines

本指南为集群管理员提供在 Kubernetes 集群上安装 Alauda DevOps Pipelines Operator 的过程。

前提条件

  • 您可以使用具有 cluster-admin 权限的帐户访问 Kubernetes 集群。
  • 您已安装 kubectl CLI。
  • 您的集群已启用 Marketplace 功能或可以访问 Operator Hub。

使用 Web 控制台安装 Alauda DevOps Pipelines

您可以通过使用 Marketplace 或 OperatorHub 中列出的 Operators 来安装 Alauda DevOps Pipelines Operator。当您安装 Alauda DevOps Pipelines Operator 时,所需的自定义资源(CRs)将与 Operator 一起自动安装。

该 Operator 提供以下自定义资源定义(CRDs)以管理 Tekton 组件:tektonconfigs.operator.tekton.devtektonpipelines.operator.tekton.devtektontriggers.operator.tekton.devtektonhubs.operator.tekton.dev 等。

如果 Tekton Pipelines 已在您的集群上安装,现有安装将由 Operator 无缝升级。

Alauda DevOps Pipelines Operator 提供选择安装哪些组件的选项,通过在 TektonConfig 自定义资源(CR)中指定预设配置。当安装 Operator 时,TektonConfig CR 会自动安装。支持的预设包括:

  • Lite:仅安装 Tekton Pipelines。
  • Basic:安装 Tekton Pipelines 和 Tekton Triggers。
  • All:这是安装 TektonConfig CR 时使用的默认预设。此预设安装所有 Tekton 组件,包括 Tekton Pipelines 和 Tekton Triggers。

步骤

  • 在 Web 控制台中,导航到 MarketplaceOperatorHub

  • 使用 按关键字过滤 框在目录中搜索 Alauda DevOps Pipelines Operator。点击 Alauda DevOps Pipelines Operator 标题。

  • 阅读 Alauda DevOps Pipelines Operator 页面上的 Operator 概述。点击 Install

  • 安装 Operator 页面:

    • 对于 安装模式,选择 集群所有命名空间(默认)。此模式将在默认的 tekton-operator 命名空间中安装 Operator,使得 Operator 能够监视并在集群中的所有命名空间中可用。
    • 对于 审批策略,选择 自动。这确保 Operator 的未来升级将由 Operator 生命周期管理器(OLM)自动处理。如果选择 手动 审批策略,则 OLM 将创建更新请求。作为集群管理员,您必须手动批准 OLM 更新请求以将 Operator 升级到新版本。
    • 如果有多个通道可用,请选择一个 更新通道
  • 点击 Install。您将在已安装的 Operators 页面上看到该 Operator。

  • 验证 状态 是否设置为 成功 以确认 Alauda DevOps Pipelines Operator 的成功安装。

  • 验证 Alauda DevOps Pipelines Operator 的所有组件是否已成功安装。在终端登录到集群并运行以下命令:

    $ kubectl get tektonconfig config
    

    示例输出

    NAME     VERSION   READY   REASON
    config   v0.74.1     True
    

    如果 READY 条件为 True,则表示 Operator 及其组件已成功安装。

    此外,通过运行以下命令检查组件的版本:

    $ kubectl get tektonpipeline,tektontrigger,tektonhub,tektonchain
    

    示例输出

    NAME                                          VERSION           READY   REASON
    tektonpipeline.operator.tekton.dev/pipeline   v0.65.5-c96b8b8   True
    
    NAME                                        VERSION           READY   REASON
    tektontrigger.operator.tekton.dev/trigger   v0.30.1-f53d05d   True
    
    NAME                                VERSION   READY   REASON   APIURL   UIURL
    tektonhub.operator.tekton.dev/hub   1.19.2    True
    
    NAME                                    VERSION           READY   REASON
    tektonchain.operator.tekton.dev/chain   v0.23.0-927681d   True
    

使用 CLI 安装 Alauda DevOps Pipelines

您可以通过命令行接口(CLI)从 OperatorHub 安装 Alauda DevOps Pipelines Operator。

步骤

  • 创建一个 Subscription 对象 YAML 文件以订阅命名空间到 Alauda DevOps Pipelines Operator,例如 sub.yaml

示例 Subscription YAML

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: tektoncd-operator
  namespace: tekton-operator
spec:
  channel: latest
  name: tektoncd-operator
  source: platform
  sourceNamespace: cpaas-system
  1. 您希望订阅的通道名称。latest 通道允许安装 Alauda DevOps Pipelines Operator 的最新稳定版本。
  2. 要订阅的 Operator 的名称。
  3. 提供 Operator 的 CatalogSource 对象的名称。
  4. CatalogSource 对象的命名空间。根据您的集群配置可能会有所不同。
  • 运行以下命令创建 Subscription 对象:

    $ kubectl apply -f sub.yaml
    

    该订阅将在 tekton-operator 命名空间中安装 Alauda DevOps Pipelines Operator。Operator 将自动在默认目标命名空间 tekton-pipelines 中安装 Tekton 组件。

卸载 Alauda DevOps Pipelines

集群管理员可以通过执行以下步骤来卸载 Alauda DevOps Pipelines Operator:

  • 删除任何可选组件 CR(如果存在),然后删除 TektonConfig CR。
  • 卸载 Alauda DevOps Pipelines Operator。
  • 如有需要,删除 operator.tekton.dev 组的自定义资源定义(CRD)。

仅卸载 Operator 将不会删除在 Operator 安装期间默认创建的 Alauda DevOps Pipelines 组件。

删除 Alauda DevOps Pipelines 资源实例

首先,删除 TektonConfig CR 和其他 Tekton 组件 CR(如果存在)。

步骤

  • 在 Web 控制台中,导航到 AdministrationCustomResourceDefinitions 或相应部分。
  • 搜索 TektonConfig CRD。
  • 点击 TektonConfig CRD 以显示详细页面。
  • 点击 Instances 选项卡。
  • 如果显示了实例,点击显示实例的 Options 菜单。
  • 选择 删除 TektonConfig
  • 点击 删除 以确认删除 CR。
  • 对任何其他可能存在的 Tekton 组件 CR 重复这些步骤。

卸载 Alauda DevOps Pipelines Operator

您可以使用 Web 控制台卸载 Alauda DevOps Pipelines Operator。

步骤

  • MarketplaceOperatorHub 页面,导航到 Installed Operators
  • 在列表中找到 Alauda DevOps Pipelines Operator。
  • 点击 Options 菜单并选择 Uninstall Operator
  • 卸载 Operator? 窗口中,选择 删除此 Operator 的所有操作实例,然后点击 卸载

删除 Alauda DevOps Pipelines 资源定义(可选)

如果要完全删除 Tekton Operator 的所有痕迹,可以删除 operator.tekton.dev 组的自定义资源定义(CRD)。

步骤

  • 在 Web 控制台中,导航到 AdministrationCustomResourceDefinitions 或相应部分。
  • 搜索包含关键字 operator.tekton.dev 的 CRD。
  • 对于每个要删除的 CRD:
    • 点击 Options 菜单。
    • 选择 删除 CustomResourceDefinition
    • 点击 删除 以确认删除 CRD。

在 TektonConfig 中自定义配置

在 Alauda DevOps Pipelines 中,您可以使用 TektonConfig 自定义资源(CR)自定义以下配置:

  • 优化 Tekton Pipelines 性能,包括 Tekton Pipelines 控制器的高可用性模式
  • 配置 Tekton Pipelines 控制平面
  • 更改默认服务帐户
  • 配置管道解析器
  • 禁用特定功能或组件

前提条件

必须安装 Alauda DevOps Pipelines Operator。

使用 TektonConfig CR 调优性能

您可以修改 TektonConfig 自定义资源(CR)中 .spec.pipeline.performance 参数下的字段来更改 Tekton Pipelines 控制器的高可用性(HA)支持和性能配置。

示例 TektonConfig 性能字段

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  pipeline:
    performance:
      disable-ha: false
      buckets: 7
      replicas: 5
      threads-per-controller: 2
      kube-api-qps: 5.0
      kube-api-burst: 10
      statefulset-ordinals: false

所有字段都是可选的。如果设置,Alauda DevOps Pipelines Operator 会将大多数字段作为参数包含在 tekton-pipelines-controller 部署下的 tekton-pipelines-controller 容器中。Operator 还会更新 tekton-pipelines 命名空间下的 config-leader-election ConfigMap 中的 bucket 字段。

如果未指定值,Operator 不会更新这些字段,而是应用 Tekton Pipelines 控制器的默认值。

INFO

如果修改或删除任何性能字段,Operator 将更新 tekton-pipelines-controller 部署和 config-leader-election ConfigMap(如果 bucket 字段已更改),并重新创建 tekton-pipelines-controller pod。

高可用性(HA)模式适用于 Tekton Pipelines 控制器;它创建和启动 Pods,基于管道运行和任务运行的定义。在没有 HA 模式的情况下,单个 Pod 执行这些操作,这可能导致高负载和显著延迟。

在 HA 模式下,Tekton Pipelines 使用多个 Pods(副本)来执行这些操作。最初,Tekton Pipelines 在 buckets 之间分配每个控制器操作。每个副本从一个或多个 buckets 中选择操作。如果两个副本可以同时选择相同的操作,控制器会内部决定谁将执行该操作。

HA 模式不会影响 Pods 创建后运行的任务。

名称描述
disable-ha启用或禁用高可用性(HA)模式。默认情况下启用 HA 模式。
bucketsHA 模式下处理控制器操作的 bucket 数量。最大值为 10。
replicas在 HA 模式下创建以处理控制器操作的 Pods 数量。该值应设置为与 bucket 值相同或更少。
threads-per-controller在处理 Tekton Pipelines 控制器的工作队列时要使用的线程(工作者)数。
kube-api-qps从 REST 客户端到集群主节点的最大查询数每秒(QPS)。
kube-api-burst用于限制的最大突发。
statefulset-ordinals为 Tekton Pipelines 控制器启用 StatefulSet Ordinals 模式。

配置 Tekton Pipelines 控制平面

您可以通过编辑 TektonConfig 自定义资源(CR)中的配置字段来定制 Tekton Pipelines 控制平面。Alauda DevOps Pipelines Operator 会自动为配置字段包含默认值,以便您可以使用 Tekton Pipelines 控制平面。

过程

  1. 在 Web 控制台中,导航到 CustomResourceDefinitions 部分。
  2. 搜索 tektonconfigs.operator.tekton.dev 自定义资源定义(CRD)。
  3. 点击 TektonConfig 以查看 CRD 详细页面。
  4. 点击 Instances 选项卡。
  5. 点击 config 实例以查看 TektonConfig CR 的详细信息。
  6. 点击 YAML 选项卡。
  7. 根据您的要求编辑 TektonConfig YAML 文件。

示例 TektonConfig CR 的默认值

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  pipeline:
    running-in-environment-with-injected-sidecars: true
    metrics.taskrun.duration-type: histogram
    metrics.pipelinerun.duration-type: histogram
    await-sidecar-readiness: true
    default-service-account: pipeline
    require-git-ssh-secret-known-hosts: false
    enable-tekton-oci-bundles: false
    metrics.taskrun.level: task
    metrics.pipelinerun.level: pipeline
    enable-api-fields: stable
    enable-provenance-in-status: false
    enable-custom-tasks: true
    disable-creds-init: false
    disable-affinity-assistant: true

特性标志选项

TektonConfig CR 中,以下特性标志可以配置,以控制 Tekton Pipelines 的不同行为:

  • disable-affinity-assistant(默认值:false
  • disable-creds-init(默认值:false
  • enable-api-fields(默认值:stable
  • enable-custom-tasks(默认值:true
  • await-sidecar-readiness(默认值:true
  • running-in-environment-with-injected-sidecars(默认值:true
  • require-git-ssh-secret-known-hosts(默认值:false
  • enable-provenance-in-status(默认值:true

有关每个选项的详细描述,请参阅 Tekton Operator 文档。

更改默认服务帐户

您可以通过编辑 .spec.pipeline 规范中的 default-service-account 字段来更改 Tekton Pipelines 的默认服务帐户。默认服务帐户名称为 pipeline

示例

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  pipeline:
    default-service-account: custom-pipeline-account

为安装命名空间设置标签和注释

您可以为 Operator 安装 Tekton Pipelines 组件的 tekton-pipelines 命名空间设置标签和注释。

通过在 TektonConfig 自定义资源(CR)的 .spec.targetNamespaceMetadata 规范中添加标签和注释来指定。

示例为 tekton-pipelines 命名空间设置标签和注释

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  targetNamespaceMetadata:
    labels: {"example-label":"example-value"}
    annotations: {"example-annotation":"example-value"}

下一步

成功安装 Alauda DevOps Pipelines Operator 后: