1.2. 准备安装 Tekton 结果
在安装 Tekton 结果前,您必须完成几个准备步骤。
1.2.1. 使用 SSL 证书准备 secret 复制链接链接已复制到粘贴板!
Tekton Results 使用 HTTPS 协议提供 REST API,这需要 SSL 证书。使用此证书提供 secret。如果您有一个由证书颁发机构(CA)提供的现有证书,请使用此证书,否则创建自签名证书。
先决条件
-
已安装
openssl命令行工具。
流程
如果您没有 CA 提供的证书,请输入以下命令来创建自签名证书:
$ openssl req -x509 \ -newkey rsa:4096 \ -keyout key.pem \ -out cert.pem \ -days 365 \ -nodes \ -subj "/CN=tekton-results-api-service.openshift-pipelines.svc.cluster.local" \ -addext "subjectAltName = DNS:tekton-results-api-service.openshift-pipelines.svc.cluster.local"将
tekton-results-api-service.openshift-pipelines.svc.cluster.local替换为您计划用于 Tekton Results API 的路由端点。输入以下命令从证书创建传输安全层(TLS) secret:
$ oc create secret tls -n openshift-pipelines tekton-results-tls --cert=cert.pem --key=key.pem如果要使用 CA 提供的现有证书,请将
cert.pem替换为包含此证书的文件名称。
1.2.2. 使用数据库凭证准备 secret 复制链接链接已复制到粘贴板!
Tekton Results 使用 PostgreSQL 数据库来存储数据。您可以将安装配置为使用自动安装的 PostgreSQL 服务器,该服务器使用 Tekton Results 或已在部署中存在的外部 PostgreSQL 服务器。在这两种情况下,为机密提供数据库凭据。
流程
完成以下步骤之一:
如果您不需要使用外部 PostgreSQL 服务器,请输入以下命令,使用名为
result的数据库用户以及openshift-pipelines命名空间中的随机密码:$ oc create secret generic tekton-results-postgres \ --namespace=openshift-pipelines \ --from-literal=POSTGRES_USER=result \ --from-literal=POSTGRES_PASSWORD=$(openssl rand -base64 20)注意在这个命令中,在后续逗号中,如果您为 OpenShift Pipelines 配置了自定义目标命名空间,请使用此命名空间的名称而不是
openshift-pipelines。如果要使用外部 PostgreSQL 数据库服务器来存储 Tekton Results 数据,请输入以下命令创建带有此服务器的凭证的 secret:
$ oc create secret generic tekton-results-postgres \ --namespace=openshift-pipelines \ --from-literal=POSTGRES_USER=<user> \1 --from-literal=POSTGRES_PASSWORD=<password>2 将
<user> 替换为 Tekton Results 必须使用的 PostgreSQL 用户的用户名。将<password> 替换为同一帐户的密码。
1.2.3. 为日志信息准备存储或 LokiStack 转发 复制链接链接已复制到粘贴板!
Tekton Results 使用单独的存储来记录与管道运行和任务运行相关的信息。您可以配置以下存储类型之一:
- Red Hat OpenShift Pipelines 集群中的持久性卷声明(PVC)
- Google Cloud Storage
- S3 存储桶存储
另外,您可以在 OpenShift Container Platform 集群上安装 LokiStack 和 OpenShift Logging,并配置将日志信息转发到 LokiStack。此选项为更高的负载提供更好的可扩展性。
在 OpenShift Pipelines 1.16 中,Tekton Results 能够在 PVC、Google Cloud Storage 和 S3 存储桶存储上原生存储日志信息的功能已弃用,计划在以后的发行版本中删除。
可以使用 Tekton Results 命令行界面和 API 提供日志记录信息,无论您配置的日志信息存储或 LokiStack 转发的类型都无关。
流程
完成以下流程之一:
要使用 PVC,请完成以下步骤:
使用 PVC 的以下定义,创建名为
pvc.yaml的文件:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: tekton-logs spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi输入以下命令应用定义:
$ oc apply -n openshift-pipelines -f pvc.yaml
要使用 Google Cloud Storage,请完成以下步骤:
-
使用
gcloud命令创建应用凭据文件。有关在文件中提供应用程序凭证的说明,请参阅 Google Cloud 文档中的使用 gcloud CLI 提供的用户凭证。 输入以下命令从应用程序凭证文件创建 secret:
$ oc create secret generic gcs-credentials \ --from-file=$HOME/.config/gcloud/application_default_credentials.json \ -n openshift-pipelines根据需要调整应用程序凭证文件的路径和文件名。
-
使用
要使用 S3 存储桶存储,请完成以下步骤:
使用以下内容创建名为
s3_secret.yaml的文件:apiVersion: v1 kind: Secret metadata: name: my_custom_secret namespace: tekton-pipelines type: Opaque stringData: S3_BUCKET_NAME: bucket11 S3_ENDPOINT: https://example.localhost.com2 S3_HOSTNAME_IMMUTABLE: "false" S3_REGION: region-13 S3_ACCESS_KEY_ID: "1234"4 S3_SECRET_ACCESS_KEY: secret_key5 S3_MULTI_PART_SIZE: "5242880"输入以下命令从文件创建 secret:
$ oc create secret generic s3-credentials \ --from-file=s3_secret.yaml -n openshift-pipelines
要配置 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: matchLabels: app.kubernetes.io/managed-by: tekton-pipelines 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,以集群管理员用户身份使用 OpenShift CLI (oc)登录到 OpenShift Container Platform 集群,然后输入以下命令:$ oc apply -n openshift-logging ClusterLogForwarder.yaml