安装

安装 Alauda Container Platform Pipelines

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

前提条件:

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

使用 Web 控制台安装 Alauda Container Platform Pipelines

您可以使用 Marketplace 或 OperatorHub 中列出的 Operator 安装 Alauda Container Platform Pipelines Operator。安装 Alauda Container Platform Pipelines Operator 时,所需的 Custom Resources(CR)会随 Operator 自动安装。

该 Operator 提供以下 Custom Resource Definitions(CRD)来管理 Tekton 组件:tektonconfigs.operator.tekton.dev、tektonpipelines.operator.tekton.dev、tektontriggers.operator.tekton.dev、tektonhubs.operator.tekton.dev 等。

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

Alauda Container Platform Pipelines Operator 支持通过在 TektonConfig Custom Resource(CR)中指定预设配置来选择要安装的组件。安装 Operator 时会自动安装 TektonConfig CR。支持的预设包括:

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

步骤

  • 在 Web 控制台中,导航到 Marketplace 或 OperatorHub。

  • 使用 Filter by keyword 框在目录中搜索 Alauda Container Platform Pipelines Operator。单击 Alauda Container Platform Pipelines Operator 标题。

  • 在 Alauda Container Platform Pipelines Operator 页面上查看 Operator 概览。单击 Install。

  • 在 Install Operator 页面上:

    • 对于 Installation Mode,选择 All namespaces on the cluster (default)。此模式会将 Operator 安装到默认的 tekton-operator 命名空间,使 Operator 能够监控集群中的所有命名空间,并可供所有命名空间使用。
    • 对于 Approval Strategy,选择 Automatic。这可确保 Operator 的未来升级由 Operator Lifecycle Manager(OLM)自动处理。如果选择 Manual 审批策略,OLM 将创建更新请求。作为集群管理员,您必须手动批准 OLM 更新请求,才能将 Operator 升级到新版本。
    • 如果有多个可用频道,请选择一个 Update Channel。
  • 单击 Install。您将在 Installed Operators 页面上看到该 Operator。

  • 验证 Status 是否设置为 Succeeded,以确认 Alauda Container Platform Pipelines Operator 已成功安装。

  • 验证 Alauda Container Platform 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 Container Platform Pipelines

您可以使用 Command Line Interface(CLI)从 OperatorHub 安装 Alauda Container Platform Pipelines Operator。

频道快速参考

  • stable(默认,从 v4.6.3 开始):安装最新的 LTS 版本。推荐用于生产环境。
  • latest:安装每个可用的 v4.6.z 版本。如果您之前依赖 latest 默认值,可以在 Subscription 中保留此值。
  • pipelines-4.6:仅将升级锁定到 v4.6.z 补丁版本。

步骤

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

Subscription YAML 示例

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: tektoncd-operator
  namespace: tekton-operator
spec:
  channel: stable
  name: tektoncd-operator
  source: platform
  sourceNamespace: cpaas-system
  1. 从 v4.6.3 开始,stable 为默认值,并安装最新的 LTS 版本。使用 latest 可保留 v4.6.3 之前的行为(每个 v4.6.z 版本),或使用 pipelines-4.6 仅使用 v4.6.z 补丁更新。
  2. 要订阅的 Operator 名称。
  3. 提供 Operator 的 CatalogSource 对象名称。
  4. CatalogSource 对象所在的命名空间。此值可能因您的集群配置而异。
  • 运行以下命令创建 Subscription 对象:

    $ kubectl apply -f sub.yaml

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

卸载 Alauda Container Platform Pipelines

集群管理员可以执行以下步骤卸载 Alauda Container Platform Pipelines Operator:

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

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

删除 Alauda Container Platform Pipelines 资源实例

首先,删除 TektonConfig CR,以及任何其他存在的 Tekton 组件 CR。

步骤

  • 在 Web 控制台中,导航到 管理 → 自定义资源定义 或相应的部分。
  • 搜索 TektonConfig CRD。
  • 单击 TektonConfig CRD 以显示详细信息页面。
  • 单击 实例 选项卡。
  • 如果显示了实例,请单击该实例的 Options 菜单。
  • 选择 删除。
  • 单击 删除,确认删除 CR。
    • 删除 TektonConfig 资源将级联删除自动创建的 TektonPipelines、TektonTriggers、TektonHubs、TektonChains 等组件。
  • 对于可能存在的任何其他 Tekton 组件 CR,重复这些步骤。
    • 如果您手动创建了 OpenShiftPipelinesAsCodes,可能需要手动将其删除。
    • 对于仍具有独立 TektonResult 资源的旧集群,请在卸载前手动将其删除。

卸载 Alauda Container Platform Pipelines Operator

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

步骤

  • 在 Marketplace 或 OperatorHub 页面中,导航到 已安装的 Operator。
  • 在列表中找到 Alauda Container Platform Pipelines Operator。
  • 单击 选项 菜单,然后选择 卸载 Operator。
  • 在 卸载 Operator? 窗口中,选择 删除此 Operator 的所有 operand 实例,然后单击 卸载。

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

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

步骤

  • 在 Web 控制台中,导航到 管理 → 自定义资源定义 或相应的部分。
  • 使用关键字 operator.tekton.dev 搜索 CRD。
  • 对于要删除的每个 CRD:
    • 单击 选项 菜单。
    • 选择 删除自定义资源定义。
    • 单击 删除,确认删除 CRD。

在 TektonConfig 中自定义配置

在 Alauda Container Platform Pipelines 中,您可以使用 TektonConfig Custom Resource(CR)自定义以下配置:

  • 优化 Tekton Pipelines 性能,包括 Tekton Pipelines controller 的高可用模式
  • 配置 Tekton Pipelines 控制平面
  • 更改默认 service account
  • 配置 pipeline resolvers
  • 禁用特定功能或组件

前提条件

必须安装 Alauda Container Platform Pipelines Operator。

使用 TektonConfig CR 调整性能

您可以修改 TektonConfig Custom Resource(CR)中 .spec.pipeline.performance 参数下的字段,以更改 Tekton Pipelines controller 的高可用(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 Container Platform Pipelines Operator 会将大多数字段作为参数包含在 tekton-pipelines-controller deployment 的 tekton-pipelines-controller 容器中。Operator 还会更新 tekton-pipelines 命名空间中 config-leader-election ConfigMap 的 bucket 字段。

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

INFO

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

高可用(HA)模式适用于 Tekton Pipelines controller;它会根据 pipeline runs 和 task runs 定义创建并启动 pod。在没有 HA 模式时,单个 pod 执行这些操作,可能导致负载过高和明显延迟。

在 HA 模式下,Tekton Pipelines 使用多个 pod(副本)执行这些操作。Tekton Pipelines 首先将每个 controller 操作分发到各个 bucket 中。每个副本从一个或多个 bucket 中选择操作。如果两个副本可以同时选择同一个操作,controller 会在内部决定由哪个副本执行该操作。

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

名称描述
disable-ha启用或禁用高可用(HA)模式。默认启用 HA 模式。
bucketsHA 模式下用于处理 controller 操作的 bucket 数量。最大值为 10。
replicasHA 模式下创建以处理 controller 操作的 pod 数量。此值应设置为不高于 bucket 值的数值。
threads-per-controller处理 Tekton Pipelines controller 工作队列时使用的线程(worker)数量。
kube-api-qpsREST client 向集群主节点发出的每秒最大查询数(QPS)。
kube-api-burst限流时允许的最大突发请求数。
statefulset-ordinals为 Tekton Pipelines Controller 启用 StatefulSet Ordinals 模式。

配置 Tekton Pipelines 控制平面

您可以通过编辑 TektonConfig Custom Resource(CR)中的配置字段,自定义 Tekton Pipelines 控制平面。Alauda Container Platform Pipelines Operator 会自动为配置字段包含默认值,因此您可以使用 Tekton Pipelines 控制平面。

步骤

  1. 在 Web 控制台中,导航到自定义资源定义部分。
  2. 搜索 tektonconfigs.operator.tekton.dev Custom Resource Definition(CRD)。
  3. 单击 TektonConfig,查看 CRD 详细信息页面。
  4. 单击 实例选项卡。
  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 文档。

更改默认 Service Account

您可以通过编辑 .spec.pipeline specification 中的 default-service-account 字段,更改 Tekton Pipelines 的默认 service account。默认 service account 名称为 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 Custom Resource(CR)的 .spec.targetNamespaceMetadata specification 中添加标签和注释进行指定。

为 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 Container Platform Pipelines Operator 后:

商标与归属

Tekton™ 是 The Linux Foundation 的商标。

Red Hat® 和 OpenShift® 是 Red Hat, Inc. 在美国及其他国家和地区的注册商标。

Alauda 是独立供应商。本产品与 The Linux Foundation 或 Red Hat, Inc. 无关联,也未获得其认可或赞助。所有商标均归其各自所有者所有,本文仅用于标识目的。