安装

安装 Alauda DevOps Pipelines

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

前提条件

  • 您拥有具有 cluster-admin 权限的 Kubernetes 集群访问账号。

  • 已安装 kubectl CLI。

  • 集群已启用 Marketplace 功能或可访问 Operator Hub。

  • 下载 Operator 软件包并保存到操作机器的工作目录。

    • 下载 Operator

      INFO

      Alauda Devops Pipelines 可从 Alauda Cloud 获取。

      如需更多信息,请联系消费者支持。

    • 上传 Operator

      无论是导入新 Operator 还是为现有 Operator 添加新版本,都可以使用 violet 工具完成,命令相同。

      在工作目录执行以下命令:

      ./violet push \
          <operator-package> \
          --platform-address <platform-address> \
          --platform-username <platform-username> \
          --platform-password <platform-password> \
          --clusters <clusters>
          --force
      1. 运行 violet 工具将 Operator 软件包上传到平台。
      2. <operator-package>:Operator 软件包名称(示例:tektoncd-operator.latest.amd64.v4.7.0.tgz)。
      3. <platform-address>:平台的 URL 地址(示例:https://platform.example.com)。
      4. <platform-username>:平台用户名,需具备平台管理员权限。
      5. <platform-password>:平台密码。
      6. <clusters>:需要上传 Operator 的集群列表,逗号分隔(示例:global, business)。
      7. --force:强制覆盖注册表中已有的镜像和制品。
      WARNING

      如果您正在上传新版本以更新现有的 tektoncd-operator,使用 violet 上传 Operator 时必须加上 --force 参数,以覆盖注册表中已有的镜像和制品。

      然后进入平台的 Platform Management -> Marketplace -> Upload Packages 页面, 搜索 Operator 关键词,点击 Operator 名称进入 Operator 详情页。

      详情页会显示 Operator 的新版本。 如果状态为 Uploaded,表示上传成功。

使用 Web 控制台安装 Alauda DevOps Pipelines

您可以通过 Marketplace 或 OperatorHub 中列出的 Operators 安装 Alauda DevOps Pipelines Operator。安装该 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:默认预设,安装所有 Tekton 组件,包括 Tekton Pipelines、Tekton Triggers。

步骤

  • 在 Web 控制台,导航至 MarketplaceOperatorHub

  • Filter by keyword 框中搜索 Alauda DevOps Pipelines Operator。点击 Alauda DevOps Pipelines Operator 标题。

  • 阅读 Alauda DevOps Pipelines Operator 页面上的 Operator 概览。点击 安装

  • 安装 Operator 页面:

    • 对于 安装模式,选择 集群所有命名空间(默认)。此模式将在默认的 tekton-operator 命名空间安装 Operator,使 Operator 能够监控并在集群所有命名空间中可用。
    • 对于 审批策略,选择 自动。确保 Operator Lifecycle Manager (OLM) 自动处理 Operator 的后续升级。如果选择 手动 审批策略,OLM 会创建更新请求,作为集群管理员,您必须手动批准 OLM 的更新请求以升级 Operator。
    • 如果有多个渠道,选择一个 更新渠道
  • 点击 安装。您将在已安装的 Operators 页面看到该 Operator。

  • 确认 状态 显示为 Succeeded,以确认 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 组的自定义资源定义(CRDs)。

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

删除 Alauda DevOps Pipelines 资源实例

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

步骤

  • 在 Web 控制台,导航至 AdministrationCustomResourceDefinitions 或同等页面。
  • 搜索 TektonConfig CRD。
  • 点击 TektonConfig CRD 进入详情页。
  • 点击 Instances 标签页。
  • 如果显示实例,点击该实例的 Options 菜单。
  • 选择 删除
  • 点击 删除 确认删除 CR。
    • 删除 TektonConfig 资源会级联删除自动创建的 TektonPipelinesTektonTriggersTektonHubsTektonChains 等组件。
  • 对其他可能存在的 Tekton 组件 CR 重复上述步骤。
    • 如果您手动创建了 TektonResultsOpenShiftPipelinesAsCodes,可能需要手动删除。

卸载 Alauda DevOps Pipelines Operator

您可以通过 Web 控制台卸载 Alauda DevOps Pipelines Operator。

步骤

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

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

如果您想彻底移除 Tekton Operator 的所有痕迹,可以删除 operator.tekton.dev 组的自定义资源定义(CRDs)。

步骤

  • 在 Web 控制台,导航至 AdministrationCustomResourceDefinitions 或同等页面。
  • 搜索关键字 operator.tekton.dev 的 CRDs。
  • 对每个想删除的 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 容器,同时更新 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 控制器;该控制器基于流水线运行和任务运行定义创建并启动 Pod。无 HA 模式时,单个 Pod 执行这些操作,可能导致负载过高和延迟显著。

HA 模式下,Tekton Pipelines 使用多个 Pod(副本)执行这些操作。初始时,Tekton Pipelines 将每个控制器操作分配到不同的桶中。每个副本从一个或多个桶中选择操作。如果两个副本可能同时选择同一操作,控制器内部会决定由谁执行。

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

名称描述
disable-ha启用或禁用高可用(HA)模式。默认启用 HA 模式。
bucketsHA 模式下处理控制器操作的桶数量。最大值为 10。
replicasHA 模式下用于处理控制器操作的 Pod 数量。该值应设置为与桶数量相同或更小。
threads-per-controller处理 Tekton Pipelines 控制器工作队列时使用的线程(工作线程)数量。
kube-api-qpsREST 客户端对集群主节点的最大每秒查询数(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 后: