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 时,按如下所示更新分布式 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 存储。
使用带有 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 服务帐户创建一个联邦身份凭证,供分布式 Trac 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 服务帐户创建一个联邦身份凭证,供分布式平台的 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 时,按如下所示更新分布式 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 的分布式跟踪平台只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(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 步中的命令的输出。
为 storage 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 运行以下命令,为分布式 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 时,按如下所示更新分布式 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 名称。