3.2. 对象存储设置
在设置受支持的对象存储时,您可以使用以下配置参数。
					使用对象存储需要在部署 TempoStack 或 TempoMonolithic 实例前设置受支持的对象存储并为对象存储凭据创建一个 secret。
				
| 存储供应商 | 
|---|
| Secret 参数 | 
| 
								 
								 
								 
								 
								 | 
| MinIO | 
| 请参阅 MinIO Operator。 
								 
								 
								 
								 
								 | 
| Amazon S3 | 
| 
								 
								 
								 
								 
								 | 
| 带有安全令牌服务(STS)的 Amazon S3 | 
| 
								 
								 
								 
								 | 
| Microsoft Azure Blob Storage | 
| 
								 
								 
								 
								 | 
| Google Cloud Storage on Google Cloud Platform (GCP) | 
| 
								 
								 
								 | 
3.2.1. 使用安全令牌服务设置 Amazon S3 存储
您可以使用安全令牌服务 (STS) 和 AWS 命令行界面(AWS CLI) 设置 Amazon S3 存储。另外,您还可以使用 Cloud Credential Operator (CCO)。
将 Distributed Tracing Platform 与 Amazon S3 存储和 STS 一起使用只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
- 已安装 AWS CLI 的最新版本。
- 如果要使用 CCO,已在集群中安装并配置了 CCO。
流程
- 创建 AWS S3 存储桶。
- 为 AWS Identity and Access Management (AWS IAM) 策略创建以下 - trust.json文件,用于设置 AWS IAM 角色之间的信任关系,您要在下一步中创建的,以及- TempoStack或- TempoMonolithic实例的服务帐户:- trust.json- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 提示- 您还可以运行以下命令来获取 OIDC 供应商的值: - oc get authentication cluster -o json | jq -r '.spec.serviceAccountIssuer' | sed 's~http[s]*://~~g' - $ oc get authentication cluster -o json | jq -r '.spec.serviceAccountIssuer' | sed 's~http[s]*://~~g'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 通过附加创建的 - trust.json策略文件来创建 AWS IAM 角色。您可以运行以下命令来完成此操作:- aws iam create-role \ --role-name "tempo-s3-access" \ --assume-role-policy-document "file:///tmp/trust.json" \ --query Role.Arn \ --output text- $ aws iam create-role \ --role-name "tempo-s3-access" \ --assume-role-policy-document "file:///tmp/trust.json" \ --query Role.Arn \ --output text- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 AWS IAM 策略附加到创建的 AWS IAM 角色。您可以运行以下命令来完成此操作: - aws iam attach-role-policy \ --role-name "tempo-s3-access" \ --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"- $ aws iam attach-role-policy \ --role-name "tempo-s3-access" \ --policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果不使用 CCO,请跳过这一步。如果使用 CCO,请为 Tempo Operator 配置云供应商环境。您可以运行以下命令来完成此操作: - oc patch subscription <tempo_operator_sub> \ -n <tempo_operator_namespace> \ --type='merge' -p '{"spec": {"config": {"env": [{"name": "ROLEARN", "value": "'"<role_arn>"'"}]}}}'- $ oc patch subscription <tempo_operator_sub> \- 1 - -n <tempo_operator_namespace> \- 2 - --type='merge' -p '{"spec": {"config": {"env": [{"name": "ROLEARN", "value": "'"<role_arn>"'"}]}}}'- 3 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 OpenShift Container Platform 中,使用键创建一个对象存储 secret,如下所示: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 创建对象存储 secret 时,按如下所示 Distributed Tracing Platform 实例的相关自定义资源: - TempoStack自定义资源示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - TempoMonolithic自定义资源示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
3.2.2. 使用安全令牌服务设置 Azure 存储
您可以使用 Azure 命令行界面 (Azure CLI) 使用安全令牌服务 (STS) 设置 Azure 存储。
将 Distributed Tracing Platform 与 Azure 存储和 STS 一起使用只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
- 已安装 Azure CLI 的最新版本。
- 您已创建了 Azure 存储帐户。
- 您已创建了 Azure blob 存储容器。
流程
- 运行以下命令来创建 Azure 管理的身份: - az identity create \ --name <identity_name> \ --resource-group <resource_group> \ --location <region> \ --subscription <subscription_id> - $ az identity create \ --name <identity_name> \- 1 - --resource-group <resource_group> \- 2 - --location <region> \- 3 - --subscription <subscription_id>- 4 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为 OpenShift Container Platform 服务帐户创建一个联邦身份凭证,供 Distributed Tracing Platform 的所有组件使用,但 Query Frontend 除外。您可以运行以下命令来完成此操作: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 提示- 您可以运行以下命令来获取集群的 OpenID Connect (OIDC) 签发者的 URL: - oc get authentication cluster -o json | jq -r .spec.serviceAccountIssuer - $ oc get authentication cluster -o json | jq -r .spec.serviceAccountIssuer- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为 OpenShift Container Platform 服务帐户创建一个联邦身份凭证,供 Distributed Tracing Platform 的 Query Frontend 组件使用。您可以运行以下命令来完成此操作: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 Storage Blob Data Contributor 角色分配给创建的 Azure 管理身份的 Azure 服务主体身份。您可以运行以下命令来完成此操作: - az role assignment create \ --assignee <assignee_name> \ --role "Storage Blob Data Contributor" \ --scope "/subscriptions/<subscription_id> - $ az role assignment create \ --assignee <assignee_name> \- 1 - --role "Storage Blob Data Contributor" \ --scope "/subscriptions/<subscription_id>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 您在第 1 步中创建的 Azure 管理身份的 Azure 服务主体身份。
 提示- 您可以运行以下命令来获取 - <assignee_name>值:- az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'" | jq -r --arg idName <identity_name> '.[] | select(.displayName == $idName) | .appId'` - $ az ad sp list --all --filter "servicePrincipalType eq 'ManagedIdentity'" | jq -r --arg idName <identity_name> '.[] | select(.displayName == $idName) | .appId'`- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 获取您在第 1 步中创建的 Azure 管理身份的客户端 ID: - CLIENT_ID=$(az identity show \ --name <identity_name> \ --resource-group <resource_group> \ --query clientId \ -o tsv) - CLIENT_ID=$(az identity show \ --name <identity_name> \- 1 - --resource-group <resource_group> \- 2 - --query clientId \ -o tsv)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为 Azure 工作负载身份联邦(WIF)创建 OpenShift Container Platform secret。您可以运行以下命令来完成此操作: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 创建对象存储 secret 时,按如下所示 Distributed Tracing Platform 实例的相关自定义资源: - TempoStack自定义资源示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 上一步中创建的 secret。
 - TempoMonolithic自定义资源示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 上一步中创建的 secret。
 
3.2.3. 使用安全令牌服务设置 Google Cloud 存储
您可以使用 Google Cloud CLI 使用安全令牌服务 (STS) 设置 Google Cloud Storage (GCS)。
使用带有 GCS 和 STS 的 Distributed Tracing Platform 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
- 已安装 Google Cloud CLI 的最新版本。
流程
- 在 Google Cloud Platform (GCP) 上创建 GCS 存储桶。
- 使用 Google Identity and Access Management (IAM) 创建或重复使用服务帐户: - SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts create <iam_service_account_name> \ --display-name="Tempo Account" \ --project <project_id> \ --format='value(email)' \ --quiet)- SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts create <iam_service_account_name> \- 1 - --display-name="Tempo Account" \ --project <project_id> \- 2 - --format='value(email)' \ --quiet)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将所需的 GCP 角色绑定到项目级别创建的服务帐户。您可以运行以下命令来完成此操作: - gcloud projects add-iam-policy-binding <project_id> \ --member "serviceAccount:$SERVICE_ACCOUNT_EMAIL" \ --role "roles/storage.objectAdmin"- $ gcloud projects add-iam-policy-binding <project_id> \ --member "serviceAccount:$SERVICE_ACCOUNT_EMAIL" \ --role "roles/storage.objectAdmin"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 检索与集群关联的 Google Cloud Workload Identity Pool 的 - POOL_ID值。如何检索这个值取决于您的环境,因此命令只是示例:- OIDC_ISSUER=$(oc get authentication.config cluster -o jsonpath='{.spec.serviceAccountIssuer}') \ &&- $ OIDC_ISSUER=$(oc get authentication.config cluster -o jsonpath='{.spec.serviceAccountIssuer}') \ && POOL_ID=$(echo "$OIDC_ISSUER" | awk -F'/' '{print $NF}' | sed 's/-oidc$//')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 添加 IAM 策略绑定。您可以运行以下命令来完成此操作: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- $SERVICE_ACCOUNT_EMAIL是第 2 步中的命令的输出。
 
- 为存储 secret 的 - key.json密钥创建一个凭据文件,供- TempoStack自定义资源使用。您可以运行以下命令来完成此操作:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令来获取正确的受众: - gcloud iam workload-identity-pools providers describe "$PROVIDER_NAME" --format='value(oidc.allowedAudiences[0])' - $ gcloud iam workload-identity-pools providers describe "$PROVIDER_NAME" --format='value(oidc.allowedAudiences[0])'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,为 Distributed Tracing Platform 创建存储 secret。 - oc -n <tempo_namespace> create secret generic gcs-secret \ --from-literal=bucketname="<bucket_name>" \ --from-literal=audience="<audience>" \ --from-file=key.json=<output_file_path> - $ oc -n <tempo_namespace> create secret generic gcs-secret \ --from-literal=bucketname="<bucket_name>" \- 1 - --from-literal=audience="<audience>" \- 2 - --from-file=key.json=<output_file_path>- 3 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 创建对象存储 secret 时,按如下所示 Distributed Tracing Platform 实例的相关自定义资源: - TempoStack自定义资源示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 上一步中创建的 secret。
 - TempoMonolithic自定义资源示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 上一步中创建的 secret。
 
3.2.4. 设置 IBM Cloud Object Storage
					您可以使用 OpenShift CLI (oc) 设置 IBM Cloud Object Storage。
				
先决条件
- 
							已安装最新版本的 OpenShift CLI (oc)。如需更多信息,请参阅配置:CLI 工具中的"使用 OpenShift CLI 入门"。
- 
							已安装最新版本的 IBM Cloud Command Line Interface (ibmcloud)。如需更多信息,请参阅 IBM Cloud Docs 中的"开始使用 IBM Cloud CLI"。
- 您已配置了 IBM Cloud Object Storage。如需更多信息,请参阅 IBM Cloud Docs 中的"删除计划并创建实例"。 - 您有一个 IBM Cloud Platform 帐户。
- 您已订购了一个 IBM Cloud Object Storage 计划。
- 您已创建了 IBM Cloud Object Storage 实例。
 
流程
- 在 IBM Cloud 上,创建一个对象存储存储桶。
- 在 IBM Cloud 中,运行以下命令来创建用于连接到对象存储存储桶的服务密钥: - ibmcloud resource service-key-create <tempo_bucket> Writer \ --instance-name <tempo_bucket> --parameters '{"HMAC":true}'- $ ibmcloud resource service-key-create <tempo_bucket> Writer \ --instance-name <tempo_bucket> --parameters '{"HMAC":true}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 IBM Cloud 中,运行以下命令来使用存储桶凭证创建 secret: - oc -n <namespace> create secret generic <ibm_cos_secret> \ --from-literal=bucket="<tempo_bucket>" \ --from-literal=endpoint="<ibm_bucket_endpoint>" \ --from-literal=access_key_id="<ibm_bucket_access_key>" \ --from-literal=access_key_secret="<ibm_bucket_secret_key>" - $ oc -n <namespace> create secret generic <ibm_cos_secret> \ --from-literal=bucket="<tempo_bucket>" \ --from-literal=endpoint="<ibm_bucket_endpoint>" \ --from-literal=access_key_id="<ibm_bucket_access_key>" \ --from-literal=access_key_secret="<ibm_bucket_secret_key>"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 OpenShift Container Platform 中,使用键创建一个对象存储 secret,如下所示: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 OpenShift Container Platform 中,设置 - TempoStack自定义资源中的 storage 部分,如下所示:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 包含 IBM Cloud Storage 访问和 secret 密钥的 secret 名称。