安装

安装 Alauda DevOps Pipelines

本指南介绍了集群管理员如何在 Kubernetes 集群上安装 Alauda DevOps Pipelines Operator。

先决条件

  • 你需要使用具有 cluster-admin 权限的账户访问 Kubernetes 集群。

  • 你已经安装了 kubectl CLI。

  • 你的集群已启用 Marketplace 功能,或者可访问 OperatorHub。

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

    • 下载 Operator

      INFO

      可以从 Alauda Cloud 获取 Alauda DevOps Pipelines。

      如需更多信息,请联系 Consumer Support。

    • 上传 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>:平台用户名,需要具备 Platform Administrator 权限。
      5. <platform-password>:平台密码。
      6. <clusters>:需要上传 operator 的集群列表,使用逗号分隔(示例:global, business)。
      7. --force:强制覆盖 registry 中现有的镜像和制品。
      WARNING

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

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

      详情页面将显示 operator 的新版本。 如果状态为 Uploaded,则表示上传成功。

使用 Web 控制台安装 Alauda DevOps Pipelines

你可以通过 Marketplace 或 OperatorHub 中列出的 Operators 安装 Alauda DevOps Pipelines Operator。安装 Alauda DevOps Pipelines Operator 时,所需的 Custom Resources(CRs)会与 Operator 一起自动安装。

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

如果你的集群中已经安装了 Tekton Pipelines,Operator 会无缝升级现有安装。

Alauda DevOps 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。
NOTE

从 v4.14.0 开始,不再随附内置的 Tekton Hub,也不能通过任何预设进行部署。Tekton catalog 制品现在由平台的独立 ArtifactHub 组件提供。有关 catalog 发布和使用,请参阅 ArtifactHub Shim 目录。

Channel 快速参考

  • stable(默认):安装最新的 LTS 版本。推荐用于生产环境。
  • latest:安装最新可用版本,包括非 LTS 版本。推荐用于开发和测试环境。
  • pipelines-4.14:仅将升级锁定到 v4.14.z 补丁版本。每个 LTS 版本都会发布一个 pipelines-x.y channel,因此上一条 LTS 分支仍可使用 pipelines-4.10。

步骤

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

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

  • 阅读 Alauda DevOps 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 升级到新版本。
    • 如果有多个 channel 可用,请选择一个 Update Channel。
  • 单击 Install。你将在 Installed Operators 页面上看到该 Operator。

  • 确认 Status 设置为 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,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
    tektonchain.operator.tekton.dev/chain   v0.23.0-927681d   True

    内置的 Tekton Hub 不属于此版本,因此没有 tektonhub 资源可供检查。

使用 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: stable
  name: tektoncd-operator
  source: platform
  sourceNamespace: cpaas-system
  1. 你要订阅的 channel 名称。stable 为默认值,并安装最新的 LTS 版本。使用 latest 可接收每个发布版本,或使用 pipelines-4.14 以保持在 v4.14.z 补丁更新。
  2. 要订阅的 Operator 名称。
  3. 提供该 Operator 的 CatalogSource 对象名称。
  4. CatalogSource 对象所在的命名空间。该值可能因集群配置而异。
  • 运行以下命令创建 Subscription 对象:

    $ kubectl apply -f sub.yaml

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

卸载 Alauda DevOps Pipelines

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

  • 如果存在任何可选组件 CR,先将其删除,然后删除 TektonConfig CR。
  • 卸载 Alauda DevOps Pipelines Operator。
  • 如有需要,删除 operator.tekton.dev 组的 Custom Resource Definitions(CRDs)。

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

删除 Alauda DevOps Pipelines 资源实例

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

步骤

  • 在 Web 控制台中,导航到 Administration → CustomResourceDefinitions 或相应区域。
  • 搜索 TektonConfig CRD。
  • 单击 TektonConfig CRD 以显示详情页面。
  • 单击 Instances 选项卡。
  • 如果显示了某个实例,请单击所显示实例的 Options 菜单。
  • 选择 Delete。
  • 单击 Delete 以确认删除该 CR。
    • 删除 TektonConfig 资源将级联删除自动创建的 TektonPipelines、TektonTriggers、TektonHubs、TektonChains 等组件。
  • 对任何其他可能存在的 Tekton 组件 CR 重复以上步骤。
    • 如果你手动创建了 TektonResults 或 OpenShiftPipelinesAsCodes,可能需要手动删除它们。

卸载 Alauda DevOps Pipelines Operator

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

步骤

  • 从 Marketplace 或 OperatorHub 页面进入 Installed Operators。
  • 在列表中找到 Alauda DevOps Pipelines Operator。
  • 单击 Options 菜单并选择 Uninstall Operator。
  • 在 Uninstall Operator? 窗口中,选择 Delete all operand instances for this operator,然后单击 Uninstall。

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

如果你希望彻底删除 Tekton Operator 的所有痕迹,可以删除 operator.tekton.dev 组的 Custom Resource Definitions(CRDs)。

步骤

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

自定义 TektonConfig 中的配置

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

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

先决条件

必须已安装 Alauda DevOps 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 DevOps 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 run 和 task run 定义创建并启动 pod。如果没有 HA 模式,单个 pod 会执行这些操作,这可能导致高负载和明显延迟。

在 HA 模式下,Tekton Pipelines 使用多个 pod(replicas)来执行这些操作。最初,Tekton Pipelines 会在各个 bucket 之间分配每个 controller 操作。每个 replica 从一个或多个 bucket 中选择操作。如果两个 replica 可以同时选择同一操作,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 向集群 master 发出的每秒最大查询数(QPS)。
kube-api-burst用于限流的最大 burst 值。
statefulset-ordinals为 Tekton Pipelines Controller 启用 StatefulSet Ordinals 模式。

配置 Tekton Pipelines Control Plane

你可以通过编辑 TektonConfig Custom Resource(CR)中的配置字段来自定义 Tekton Pipelines control plane。Alauda DevOps Pipelines Operator 会自动为配置字段包含默认值,因此你可以使用 Tekton Pipelines control plane。

流程

  1. 在 Web 控制台中,导航到 CustomResourceDefinitions 区域。
  2. 搜索 tektonconfigs.operator.tekton.dev Custom Resource Definition(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 文档。

更改默认 Service Account

你可以通过编辑 .spec.pipeline 规范中的 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 规范中添加这些内容来指定标签和注解。

为 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 后: