安装和配置
安装和配置 OpenShift Pipelines
摘要
第 1 章 安装 OpenShift Pipelines 复制链接链接已复制到粘贴板!
本指南帮助集群管理员了解将 Red Hat OpenShift Pipelines Operator 安装到 OpenShift Container Platform 集群的整个过程。
先决条件
-
可以使用具有
cluster-admin权限的账户访问 OpenShift Container Platform 集群。 -
已安装了
ocCLI。 -
您已在本地系统中安装了 OpenShift Pipelines ( tkn
)CLI。 - 您的集群启用了 Marketplace 功能,或者手动配置 Red Hat Operator 目录源。
1.1. 在 Web 控制台中安装 Red Hat OpenShift Pipelines Operator 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform OperatorHub 中列出的 Operator 来安装 Red Hat OpenShift Pipelines。安装 Red Hat OpenShift Pipelines Operator 时,管道配置所需的自定义资源(CR)与 Operator 一起自动安装。
默认 Operator 自定义资源定义(CRD)config.operator.tekton.dev 现在被 tektonconfigs.operator.tekton.dev 替代。另外,Operator 提供以下额外的 CRD 来单独管理 OpenShift Pipelines 组件:tektonpipelines.operator.tekton.dev、tektontriggers.operator.tekton.dev 和 tektonaddons.operator.tekton.dev。
如果在集群中安装了 OpenShift Pipelines,现有安装会无缝升级。Operator 会根据需要将集群中的 config.operator.tekton.dev 实例替换为 tektonconfigs.operator.tekton.dev 实例,以及其它 CRD 的额外对象。
如果您手动更改现有安装,例如,在 config.operator.tekton.dev CRD 实例中修改了目标命名空间(更改了 resource name - cluster 的项),则升级过程将不会非常流畅。在这种情况下,推荐的工作流是,先卸载安装,然后再重新安装 Red Hat OpenShift Pipelines Operator。
Red Hat OpenShift Pipelines Operator 现在提供选择您要安装的组件的选项,方法是将配置集指定为 TektonConfig 自定义资源 (CR) 的一部分。在安装 Operator 时会自动安装 TektonConfig CR。支持的配置集有:
- Lite:只安装 Tekton Pipelines。
- Basic:安装 Tekton Pipelines 和 Tekton Triggers。
-
All:在安装了
TektonConfigCR 时,使用的默认配置集。此配置集安装所有 Tekton 组件: Tekton Pipelines、Tekton Triggers、Tekton Addons(包括ClusterTasks、ClusterTriggerBindings、ConsoleCLIDownload、ConsoleQuickStart和ConsoleYAMLSample资源)。
流程
- 在控制台的 Administrator 视角中,导航到 Operators → OperatorHub。
-
使用 Filter by keyword 复选框在目录中搜索
Red Hat OpenShift PipelinesOperator。点 Red Hat OpenShift Pipelines Operator 标题。 - 参阅 Red Hat OpenShift Pipelines Operator 页中有关 Operator 的简单描述。点 Install。
在 Install Operator 页面中:
-
为 Installation Mode 选择 All namespaces on the cluster (default)。选择该项会将 Operator 安装至默认
openshift-operators命名空间,这将启用 Operator 以进行监视并在集群中的所有命名空间中可用。 - 为 Approval Strategy 选择 Automatic。这样可确保以后对 Operator 的升级由 Operator Lifecycle Manager (OLM) 自动进行。如果您选择 Manual 批准策略,OLM 会创建一个更新请求。作为集群管理员,您必须手动批准 OLM 更新请求,才可将 Operator 更新至新版本。
选择一个 Update Channel。
-
pipelines-<version>频道是安装 Red Hat OpenShift Pipelines Operator 的默认频道。例如,安装 Red Hat OpenShift Pipelines Operator 版本1.7的默认频道是pipelines-1.7。 latest频道启用 Red Hat OpenShift Pipelines Operator 最新稳定版本的安装。注意从 OpenShift Container Platform 4.11 开始,用于安装和升级 Red Hat OpenShift Pipelines Operator 的
preview和stable频道不可用。但是,在 OpenShift Container Platform 4.10 及更早的版本中,您可以使用preview和stable频道来安装和升级 Operator。
-
-
为 Installation Mode 选择 All namespaces on the cluster (default)。选择该项会将 Operator 安装至默认
点 Install。您会看到 Installed Operators 页面中列出的 Operator。
注意Operator 会自动安装到
openshift-operators命名空间中。检查 Status 是否已被设置为 Succeeded Up to date 来确认 Red Hat OpenShift Pipelines Operator 已安装成功。
警告即使其他组件的安装正在进行中,成功状态也可能会显示为 Succeeded Up to date。因此,在终端中手动验证安装非常重要。
验证 Red Hat OpenShift Pipelines Operator 的所有组件都已成功安装。在终端中登录到集群,并运行以下命令:
oc get tektonconfig config
$ oc get tektonconfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME VERSION READY REASON config 1.9.2 True
NAME VERSION READY REASON config 1.9.2 TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 READY 条件为 True,则代表 Operator 及其组件已被成功安装。
另外,运行以下命令来检查组件版本:
oc get tektonpipeline,tektontrigger,tektonaddon,pac
$ oc get tektonpipeline,tektontrigger,tektonaddon,pacCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. 使用 CLI 安装 OpenShift Pipelines Operator 复制链接链接已复制到粘贴板!
您可以使用 CLI 从 OperatorHub 安装 Red Hat OpenShift Pipelines Operator。
流程
创建一个订阅对象 YAML 文件,以便为 Red Hat OpenShift Pipelines Operator 订阅一个命名空间,如
sub.yaml:订阅示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Operator 的频道名称。
pipelines-<version>频道是默认频道。例如,Red Hat OpenShift Pipelines Operator 版本1.7的默认频道是pipelines-1.7。latest频道启用 Red Hat OpenShift Pipelines Operator 最新稳定版本的安装。 - 2
- 要订阅的 Operator 的名称。
- 3
- 提供 Operator 的 CatalogSource 的名称。
- 4
- CatalogSource 的命名空间。将
openshift-marketplace用于默认的 OperatorHub CatalogSource。
创建订阅对象:
oc apply -f sub.yaml
$ oc apply -f sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 订阅将 Red Hat OpenShift Pipelines Operator 安装到
openshift-operators命名空间中。Operator 会自动将 OpenShift Pipelines 安装到默认的openshift-pipelines目标命名空间。
1.3. 在受限环境中的 Red Hat OpenShift Pipelines Operator 复制链接链接已复制到粘贴板!
Red Hat OpenShift Pipelines Operator 支持在受限网络环境中安装管道。
Operator 会安装代理 Webhook,它会根据 cluster 代理对象在由 tekton-controllers 创建的 pod 容器中设置代理环境变量。它还会在 TektonPipelines、TektonTriggers、Controllers、Webhooks 和 Operator Proxy Webhook 资源中设置代理环境变量。
默认情况下,openshift-pipelines 命名空间禁用代理 Webhook。要为任何其他命名空间禁用它,您可以在 namespace 对象中添加 operator.tekton.dev/disable-proxy: true 标签。
第 2 章 卸载 OpenShift Pipelines 复制链接链接已复制到粘贴板!
集群管理员可以通过执行以下步骤卸载 Red Hat OpenShift Pipelines Operator:
- 删除安装 Red Hat OpenShift Pipelines Operator 时默认添加的自定义资源 (CR)。
删除依赖于 Operator 的可选组件的 CR,如 Tekton Hub。
Important如果在不删除可选组件的 CR 的情况下卸载 Operator,则无法在以后删除它们。
- 卸载 Red Hat OpenShift Pipelines Operator。
安装 Operator 时,仅卸载 Operator 不会删除默认创建的 Red Hat OpenShift Pipelines 组件。
2.1. 删除 Red Hat OpenShift Pipelines 组件和自定义资源 复制链接链接已复制到粘贴板!
删除安装 Red Hat OpenShift Pipelines Operator 期间默认创建的自定义资源(CR)。
流程
- 在 Web 控制台的 Administrator 视角中,导航至 Administration → Custom Resource Definition。
-
在 Filter by name 框中键入
config.operator.tekton.dev来搜索 Red Hat OpenShift Pipelines Operator CR。 - 点击 CRD Config 查看 Custom Resource Definition Details 页面。
点击 Actions 下拉菜单并选择 Delete Custom Resource Definition。
注意删除 CR 将删除 Red Hat OpenShift Pipelines 组件,并丢失集群上的所有任务和管道。
- 点击 Delete 以确认删除 CR。
在卸载 Operator 前,重复查找和删除可选组件的 CR,如 Tekton Hub。如果在不删除可选组件的 CR 的情况下卸载 Operator,则无法在以后删除它们。
2.2. 卸载 Red Hat OpenShift Pipelines Operator 复制链接链接已复制到粘贴板!
您可以使用 web 控制台中的 Administrator 视角卸载 Red Hat OpenShift Pipelines Operator。
流程
- 在 Operators → OperatorHub 页面中,使用 Filter by keyword 复选框来搜索 Red Hat OpenShift Pipelines Operator。
- 点 Red Hat OpenShift Pipelines Operator 标题。Operator 标题表示已安装 Operator。
- 在 Red Hat OpenShift Pipelines Operator 描述页面中,点 Uninstall。
卸载 {pipeline-shortname} Operator 时,安装 Operator 的目标命名空间中的所有资源都会丢失,openshift-pipelines 命名空间都会丢失,包括您配置了它的 secret。
第 3 章 在 TektonConfig 自定义资源中自定义配置 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift Pipelines 中,您可以使用 TektonConfig 自定义资源 (CR) 自定义以下配置:
- 配置 Red Hat OpenShift Pipelines control plane
- 更改默认服务帐户
- 禁用服务监控器
- 禁用集群任务和管道模板
- 禁用 Tekton Hub 的集成
- 禁用自动创建 RBAC 资源
- 修剪任务运行和管道运行
3.1. 先决条件 复制链接链接已复制到粘贴板!
- 已安装 Red Hat OpenShift Pipelines Operator。
3.2. 配置 Red Hat OpenShift Pipelines control plane 复制链接链接已复制到粘贴板!
您可以通过编辑 TektonConfig 自定义资源 (CR) 中的配置字段来自定义 OpenShift Pipelines control plane。Red Hat OpenShift Pipelines Operator 会自动使用默认值添加配置字段,以便您可以使用 OpenShift Pipelines control plane。
流程
- 在 Web 控制台的 Administrator 视角中,进入到 Administration → CustomResourceDefinitions。
-
使用 Search by name 复选框搜索
tektonconfigs.operator.tekton.dev自定义资源定义 (CRD)。点 TektonConfig 查看 CRD 详情页面。 - 点 实例 选项卡。
-
点 config 实例查看
TektonConfigCR 详情。 - 点 YAML 标签。
根据您的要求编辑
TektonConfigYAML 文件。带有默认值的
TektonConfigCR 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.1. 带有默认值的可修改字段 复制链接链接已复制到粘贴板!
以下列表包含 TektonConfig CR 中所有可修改字段的默认值:
running-in-environment-with-injected-sidecars(默认为true):如果管道在不使用注入的 sidecar 的集群中运行的管道(如 Istio)将此字段设置为false。将它设置为false可缩短管道运行启动所需的时间。注意对于使用注入的 sidecar 的集群,将此字段设置为
false可能会导致意外行为。-
await-sidecar-readiness(默认:true): 将此字段设置为false以阻止 OpenShift Pipelines 在开始操作前等待TaskRunsidecar 容器运行。这允许在不支持downwardAPI卷类型的环境中运行任务。 -
default-service-account(默认:pipeline):此字段包含用于TaskRun和PipelineRun资源的默认服务帐户名称,如果没有指定。 require-git-ssh-secret-known-hosts(默认为false):将此字段设置为true需要任何 Git SSH secret 都必须包含known_hosts字段。- 有关配置 Git SSH secret 的更多信息,请参阅附加资源部分中的为 Git 配置 SSH 身份验证。
-
enable-tekton-oci-bundles(默认:false): 将此字段设置为true以启用名为 Tekton OCI 捆绑包的实验性 alpha 功能。 embedded-status(默认为both):此字段有三个可接受值:-
full: 启用在PipelineRun状态中嵌入的所有Run和TaskRun状态 -
minimal:使用名称、类型和 API 版本等信息为 'PipelineRun' 状态中的每个运行和任务运行生成ChildReferences字段的信息。 both: 引用full和minimal两者的值注意embedded-status字段已弃用,并将在以后的发行版本中删除。另外,管道默认嵌入状态将改为minimal。
-
enable-api-fields(默认:stable):设置此字段决定启用哪些功能。可接受的值为stable、beta或alpha。注意Red Hat OpenShift Pipelines 不支持
alpha值。-
enable-provenance-in-status(默认:false):将此字段设置为true以启用TaskRun和PipelineRun状态中的provenance字段。provenance字段包含有关任务运行和管道运行中使用的资源的元数据,如从中获取远程任务或管道定义的源。 -
enable-custom-tasks(默认为true):将此字段设置为false,以禁用管道中的自定义任务。 -
disable-creds-init(默认为false):将此字段设置为true,以防止 OpenShift Pipelines 扫描附加的服务帐户并将任何凭证注入步骤。 -
disable-affinity-assistant(默认为true):将此字段设置为false,为每个共享持久性卷声明工作区的TaskRun资源启用关联性协助功能。
指标选项
您可以在 TektonConfig CR 中修改以下 metrics 字段的默认值:
-
metrics.taskrun.duration-type和metrics.pipelinerun.duration-type(默认:histogram):设置这些字段决定了任务或管道运行的持续时间类型。可接受的值是gauge或histogram。 -
metrics.taskrun.level(默认:task):此字段决定了任务运行指标的级别。可接受的值为taskrun,task, 或namespace。 -
metrics.pipelinerun.level(默认为pipeline):此字段决定了管道运行指标的级别。可接受的值为pipelinerun、pipeline或namespace。
3.2.2. 可选的配置字段 复制链接链接已复制到粘贴板!
以下字段没有默认值,只有在配置它们时才会考虑它们。默认情况下,Operator 不会在 TektonConfig 自定义资源 (CR) 中添加和配置这些字段。
-
default-timeout-minutes:此字段为TaskRun和PipelineRun资源设置默认超时时间(如果没有在创建它们时指定)。如果任务运行或管道运行需要的时间超过其执行设置的分钟数,则任务运行或管道运行会超时并取消。例如,default-timeout-minutes: 60代表将默认值设为 60 分钟。 -
default-managed-by-label-value:此字段包含提供给app.kubernetes.io/managed-by标签的默认值,如果未指定,它被应用到所有TaskRunpod。例如,default-managed-by-label-value: tekton-pipelines。 -
default-pod-template:此字段设置默认TaskRun和PipelineRunpod 模板(如果没有指定)。 -
default-cloud-events-sink:此字段设置TaskRun和PipelineRun资源的默认CloudEventssink(如果未指定)。 -
default-task-run-workspace-binding:此字段包含Task资源已声明,但TaskRun资源没有明确声明的工作区的默认工作区配置。 -
default-affinity-assistant-pod-template:此字段设置用于关联性助手 pod 的默认PipelineRunpod 模板(如果没有指定)。 -
default-max-matrix-combinations-count:此字段包含从列表中生成的默认最大组合数(如果未指定)。
3.3. 更改 OpenShift Pipelines 的默认服务帐户 复制链接链接已复制到粘贴板!
您可以通过编辑 .spec.pipeline 和 .spec.trigger 规格中的 default-service-account 字段来更改 OpenShift Pipelines 的默认服务帐户。默认服务帐户名称为 pipeline。
示例
3.4. 禁用服务监控器 复制链接链接已复制到粘贴板!
您可以禁用作为 OpenShift Pipelines 一部分的服务监控器,以公开遥测数据。要禁用服务监控器,请在 TektonConfig 自定义资源 (CR) 的 .spec.pipeline 规格中将 enableMetrics 参数设置为 false :
示例
3.5. 禁用集群任务和管道模板 复制链接链接已复制到粘贴板!
默认情况下,TektonAddon 自定义资源 (CR) 在集群中安装 clusterTasks 和 pipelineTemplates 资源,以及集群中的 OpenShift Pipelines。
您可以通过在 .spec.addon 规格中将参数值设置为 false 来禁用 clusterTasks 和 pipelineTemplates 资源的安装。另外,您可以禁用 communityClusterTasks 参数。
示例
3.6. 禁用 Tekton Hub 的集成 复制链接链接已复制到粘贴板!
您可以通过在 TektonConfig 自定义资源 (CR) 中将 enable-devconsole-integration 参数设置为 false 来禁用 web 控制台 Developer 视角中的 Tekton Hub 集成。
禁用 Tekton Hub 示例
3.7. 禁用自动创建 RBAC 资源 复制链接链接已复制到粘贴板!
Red Hat OpenShift Pipelines Operator 的默认安装会为集群中的所有命名空间创建多个基于角色的访问控制(RBAC)资源,但与 ^(openshift|kube)-* 正则表达式模式匹配的命名空间除外。在这些 RBAC 资源中,pipelines-scc-rolebinding 安全性上下文约束(SCC)角色绑定资源是一个潜在的安全问题,因为关联的 pipelines-scc SCC 具有 RunAsAny 特权。
要在安装 Red Hat OpenShift Pipelines Operator 后禁用集群范围的 RBAC 资源,集群管理员可在集群级 TektonConfig 自定义资源(CR)中将 createRbacResource 参数设置为 false。
TektonConfig CR 示例
作为集群管理员或具有适当权限的用户,当您为所有命名空间禁用自动创建 RBAC 资源时,默认的 ClusterTask 资源无法正常工作。要使 ClusterTask 资源正常工作,您必须手动为每个预期的命名空间创建 RBAC 资源。
3.8. 自动修剪任务运行和管道运行 复制链接链接已复制到粘贴板!
过时的 TaskRun 和 PipelineRun 对象及其执行的实例占用了可用于活跃运行的物理资源。为了优化这些资源,Red Hat OpenShift Pipelines 提供了注解,集群管理员可以使用它们来自动修剪不同命名空间中未使用的对象及其实例。
通过指定注解配置自动修剪会影响整个命名空间。您不能选择性地自动修剪一个命名空间中的单个任务运行或管道运行。
3.8.1. 自动修剪任务运行和管道运行的注解 复制链接链接已复制到粘贴板!
要自动修剪任务运行和管道运行,您可以在命名空间中创建以下注解:
-
operator.tekton.dev/prune.schedule:如果此注解的值与TektonConfig自定义资源定义中指定的值不同,则会在该命名空间中创建新的 cron 作业。 -
operator.tekton.dev/prune.skip:设置为true时,配置它的命名空间不会被修剪。 -
operator.tekton.dev/prune.resources:此注解接受以逗号分隔的资源列表。要修剪单一资源,如管道运行,将此注解设置为"pipelinerun"。要修剪多个资源,如任务运行和管道运行,将此注解设置为"taskrun, pipelinerun"。 -
operator.tekton.dev/prune.keep:使用此注解保留资源而不进行修剪。 operator.tekton.dev/prune.keep-since:使用此注解来根据其存在的时间来保留资源。此注解的值必须等于资源的年龄(以分钟为单位)。例如,若要保留在五天内创建的资源,请将keep-since设置为7200。注意keep和keep-since注释是互斥的。对于任何资源,您只能配置其中一个。-
operator.tekton.dev/prune.strategy:将此注解的值设置为keep或keep-since。
例如,请考虑以下注解,这些注解会保留在最后五天中创建的所有任务运行和管道运行,并删除旧的资源:
auto-pruning 注解示例
...
annotations:
operator.tekton.dev/prune.resources: "taskrun, pipelinerun"
operator.tekton.dev/prune.keep-since: 7200
...
...
annotations:
operator.tekton.dev/prune.resources: "taskrun, pipelinerun"
operator.tekton.dev/prune.keep-since: 7200
...