3.2. 개체 스토리지 설정
지원되는 개체 스토리지를 설정할 때 다음 구성 매개변수를 사용할 수 있습니다.
개체 저장소를 사용하려면 지원되는 개체 저장소를 설정하고 TempoStack
또는 TempoMonolithic
인스턴스를 배포하기 전에 개체 저장소 자격 증명에 대한 비밀을 생성해야 합니다.
스토리지 공급자 |
---|
시크릿 매개변수 |
|
MinIO |
MinIO Operator 를 참조하십시오.
|
Amazon S3 |
|
보안 토큰 서비스(STS)가 포함된 Amazon S3 |
|
Microsoft Azure Blob Storage |
|
GCP(Google Cloud Platform)의 Google Cloud Storage |
|
3.2.1. 보안 토큰 서비스를 사용하여 Amazon S3 스토리지 설정 링크 복사링크가 클립보드에 복사되었습니다!
보안 토큰 서비스(STS)와 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 Amazon S3 스토리지를 설정할 수 있습니다. 선택적으로 CCO(Cloud Credential Operator)를 사용할 수도 있습니다.
Amazon S3 스토리지 및 STS와 함께 분산 추적 플랫폼을 사용하는 것은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- AWS CLI의 최신 버전을 설치했습니다.
- CCO를 사용하려면 클러스터에 CCO를 설치하고 구성해야 합니다.
프로세스
- AWS S3 버킷을 생성합니다.
다음 단계에서 생성할 AWS IAM 역할과
TempoStack
또는TempoMonolithic
인스턴스의 서비스 계정 간에 신뢰 관계(trust relationship)를 설정하기 위해, AWS Identity and Access Management (AWS IAM) 정책용trust.json
파일을 다음과 같이 생성하십시오.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 컨테이너 플랫폼에서 다음과 같이 키를 사용하여 개체 저장소 비밀을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 개체 저장소 시크릿이 생성되면 다음과 같이 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 저장소를 설정할 수 있습니다.
Azure 저장소 및 STS와 함께 분산 추적 플랫폼을 사용하는 것은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- Azure CLI의 최신 버전을 설치했습니다.
- Azure 스토리지 계정을 만들었습니다.
- Azure Blob 스토리지 컨테이너를 만들었습니다.
프로세스
다음 명령을 실행하여 Azure 관리 ID를 만듭니다.
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 Query Frontend를 제외한 Distributed Tracing Platform의 모든 컴포넌트에서 사용할 수 있도록, OpenShift Container Platform 서비스 계정에 대한 페더레이션 ID 자격 증명을 생성하십시오. 다음 명령을 실행하여 이 작업을 수행할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 페더레이션 ID 자격 증명을 사용하면 OpenShift Container Platform 서비스 계정에서 시크릿을 저장하거나 Azure 서비스 주체 ID를 사용하지 않고도 Azure 관리 ID로 인증할 수 있습니다.
- 2
- 페더레이션 자격 증명에 대해 선택한 이름입니다.
- 3
- 클러스터에 대한 OpenID Connect(OIDC) 공급자의 URL입니다.
- 4
- 다음 형식을 따르는 클러스터의 서비스 계정 주체:
system:serviceaccount:<namespace>:tempo-<tempostack_instance_name>
. - 5
- 페더레이션 ID 자격 증명을 위해 발급된 토큰의 유효성을 검사하는 데 사용될 예상 대상입니다. 일반적으로 이는
api://AzureADTokenExchange
로 설정됩니다.
작은 정보다음 명령을 실행하면 클러스터의 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 Distributed Tracing Platform의 Query Frontend 구성 요소에서 사용할 OpenShift Container Platform 서비스 계정에 대한 페더레이션 ID 자격 증명을 만듭니다. 다음 명령을 실행하여 이 작업을 수행할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 Azure 관리 ID의 Azure 서비스 주체 ID에 Storage Blob Data Contributor 역할을 할당합니다. 다음 명령을 실행하여 이 작업을 수행할 수 있습니다.
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 관리 ID의 Azure 서비스 주체 ID입니다.
작은 정보다음 명령을 실행하면
<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의 클라이언트 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 워크로드 ID 페더레이션(WIF)에 대한 OpenShift Container Platform 시크릿을 만듭니다. 다음 명령을 실행하여 이 작업을 수행할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 개체 저장소 시크릿이 생성되면 다음과 같이 Distributed Tracing Platform 인스턴스의 관련 사용자 지정 리소스를 업데이트합니다.
TempoStack
사용자 정의 리소스 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이전 단계에서 만든 시크릿입니다.
TempoMonolithic
사용자 정의 리소스 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이전 단계에서 만든 시크릿입니다.
3.2.3. 보안 토큰 서비스를 사용하여 Google Cloud 스토리지 설정 링크 복사링크가 클립보드에 복사되었습니다!
Google Cloud CLI를 사용하여 보안 토큰 서비스(STS)로 Google Cloud Storage(GCS)를 설정할 수 있습니다.
GCS 및 STS와 함께 분산 추적 플랫폼을 사용하는 것은 기술 미리 보기 기능에 불과합니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
- 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단계의 명령 출력입니다.
TempoStack
사용자 정의 리소스에서 사용할 스토리지 시크릿의key.json
키에 대한 자격 증명 파일을 만듭니다. 다음 명령을 실행하여 이 작업을 수행할 수 있습니다.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 다음 명령을 실행하여 분산 추적 플랫폼에 대한 저장소 시크릿을 만듭니다.
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 개체 저장소 시크릿이 생성되면 다음과 같이 Distributed Tracing Platform 인스턴스의 관련 사용자 지정 리소스를 업데이트합니다.
TempoStack
사용자 정의 리소스 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이전 단계에서 만든 시크릿입니다.
TempoMonolithic
사용자 정의 리소스 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이전 단계에서 만든 시크릿입니다.
3.2.4. IBM Cloud Object Storage 설정 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift CLI( oc
)를 사용하여 IBM Cloud Object Storage를 설정할 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc
)의 최신 버전을 설치했습니다. 자세한 내용은 Configure: 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에서 다음 명령을 실행하여 버킷 자격 증명으로 비밀을 만듭니다.
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에서 다음과 같이 키를 사용하여 개체 저장소 비밀을 만듭니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform에서
TempoStack
사용자 정의 리소스의 스토리지 섹션을 다음과 같이 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- IBM Cloud Storage 액세스 및 비밀 키가 포함된 비밀의 이름입니다.