1.2. 配置 Tekton 结果
安装 OpenShift Pipelines 后,Tekton Results 会被默认启用。
但是,如果要存储和访问管道运行的日志信息和任务运行,您必须配置此信息转发到 LokiStack。
您可以选择为 Tekton Results 完成额外的配置。
1.2.1. 为日志信息配置 LokiStack 转发 复制链接链接已复制到粘贴板!
如果要使用 Tekton Results 查询任务运行的日志信息,您必须在 OpenShift Container Platform 集群上安装 LokiStack 和 OpenShift Logging,并将日志信息转发到 LokiStack。
如果没有为日志信息配置 LokiStack 转发,Tekton Results 不会存储此信息,或者从命令行界面或 API 提供它。
先决条件
-
已安装 OpenShift CLI (
oc)实用程序。 - 以集群管理员用户身份登录 OpenShift Container Platform 集群。
流程
要配置 LokiStack 转发,请完成以下步骤:
- 在 OpenShift Container Platform 集群中,使用 Loki Operator 安装 LokiStack,同时安装 OpenShift Logging Operator。
根据您安装的 OpenShift Logging 版本 6 或版本 5,为
ClusterLogForwarder自定义资源(CR)创建一个ClusterLogForwarder.yaml清单文件,包含以下 YAML 清单之一:如果安装了 OpenShift Logging 版本 6,
ClusterLogForwarderCR 的 YAML 清单apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging spec: inputs: - application: selector: matchExpressions: - key: app.kubernetes.io/managed-by operator: In values: ["tekton-pipelines", "pipelinesascode.tekton.dev"] name: only-tekton type: application managementState: Managed outputs: - lokiStack: labelKeys: application: ignoreGlobal: true labelKeys: - log_type - kubernetes.namespace_name - openshift_cluster_id authentication: token: from: serviceAccount target: name: logging-loki namespace: openshift-logging name: default-lokistack tls: ca: configMapName: openshift-service-ca.crt key: service-ca.crt type: lokiStack pipelines: - inputRefs: - only-tekton name: default-logstore outputRefs: - default-lokistack serviceAccount: name: collector如果安装了 OpenShift Logging 版本 5,
ClusterLogForwarderCR 的 YAML 清单apiVersion: "logging.openshift.io/v1" kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging spec: inputs: - name: only-tekton application: selector: matchLabels: app.kubernetes.io/managed-by: tekton-pipelines pipelines: - name: enable-default-log-store inputRefs: [ only-tekton ] outputRefs: [ default ]输入以下命令在
openshift-logging命名空间中创建ClusterLogForwarderCR:$ oc apply -n openshift-logging ClusterLogForwarder.yaml使用以下命令编辑
TektonConfig自定义资源(CR):$ oc edit TektonConfig config在
结果spec 中进行以下更改:apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: loki_stack_name: logging-loki1 loki_stack_namespace: openshift-logging2
1.2.2. 配置外部数据库服务器 复制链接链接已复制到粘贴板!
Tekton Results 使用 PostgreSQL 数据库来存储数据。默认情况下,安装包含一个内部 PostgreSQL 实例。您可以将安装配置为使用部署中已存在的外部 PostgreSQL 服务器。
流程
输入以下命令,使用凭证创建 secret 以连接到 PostgreSQL 服务器:
$ oc create secret generic tekton-results-postgres \ --namespace=openshift-pipelines \ --from-literal=POSTGRES_USER=<user> \ --from-literal=POSTGRES_PASSWORD=<password>使用以下命令编辑
TektonConfig自定义资源(CR):$ oc edit TektonConfig config在
结果spec 中进行以下更改:apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: is_external_db: true db_host: database.example.com1 db_port: 53422
1.2.3. 为 Tekton 结果配置保留策略 复制链接链接已复制到粘贴板!
默认情况下,Tekton Results 存储管道运行、任务运行、事件和日志无限期存储。这会导致存储资源的不必要的使用,并可能会影响您的数据库性能。
您可以在集群级别为 Tekton Results 配置保留策略,以删除旧的结果及其关联的记录和日志。
流程
使用以下命令编辑
TektonConfig自定义资源(CR):$ oc edit TektonConfig config在
结果spec 中进行以下更改:apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: options: configMaps: config-results-retention-policy: data: runAt: "3 5 * * 0"1 maxRetention: "30"2