3.2. 오브젝트 스토리지 구성
Operator가 스토리지를 관리하거나 직접 관리하는지 여부에 관계없이 Red Hat Quay를 설치하기 전에 오브젝트 스토리지를 구성해야 합니다.
Operator가 스토리지 관리를 담당하는 경우 NooBaa / RHOCS Operator 설치 및 구성에 대한 정보는 Managed 스토리지 의 섹션을 참조하십시오.
별도의 스토리지 솔루션을 사용하는 경우 Operator를 구성할 때 objectstorage 를 관리되지 않음 으로 설정합니다. 다음 섹션을 참조하십시오. 기존 스토리지 구성에 대한 자세한 내용은 관리되지 않는 스토리지입니다.
3.2.1. 관리되지 않는 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
관리되지 않는 스토리지에 대한 일부 구성 예는 편의를 위해 이 섹션에 제공됩니다. 오브젝트 스토리지 설정에 대한 자세한 내용은 Red Hat Quay 구성 가이드를 참조하십시오.
3.2.1.1. AWS S3 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
DISTRIBUTED_STORAGE_CONFIG:
s3Storage:
- S3Storage
- host: s3.us-east-2.amazonaws.com
s3_access_key: ABCDEFGHIJKLMN
s3_secret_key: OL3ABCDEFGHIJKLMN
s3_bucket: quay_bucket
storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- s3Storage
3.2.1.2. Google Cloud 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
DISTRIBUTED_STORAGE_CONFIG:
googleCloudStorage:
- GoogleCloudStorage
- access_key: GOOGQIMFB3ABCDEFGHIJKLMN
bucket_name: quay-bucket
secret_key: FhDAYe2HeuAKfvZCAGyOioNaaRABCDEFGHIJKLMN
storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- googleCloudStorage
3.2.1.3. Azure 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
DISTRIBUTED_STORAGE_CONFIG:
azureStorage:
- AzureStorage
- azure_account_name: azure_account_name_here
azure_container: azure_container_here
storage_path: /datastorage/registry
azure_account_key: azure_account_key_here
sas_token: some/path/
endpoint_url: https://[account-name].blob.core.usgovcloudapi.net
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- azureStorage
- 1
- Azure 스토리지의
endpoint_url매개변수는 선택 사항이며 Microsoft Azure Government (MAG) 끝점에서 사용할 수 있습니다. 비워 두면endpoint_url이 일반 Azure 리전에 연결됩니다.Red Hat Quay 3.7부터 MAG Blob 서비스의 기본 끝점을 사용해야 합니다. MAG Blob 서비스의 보조 끝점을 사용하면 다음과 같은 오류가 발생합니다.
AuthenticationErrorDetail:Cannot find the claimed account when trying to GetProperties for the account whusc8-secondary.
3.2.1.4. Ceph / RadosGW 스토리지 / Hitachi HCP 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
DISTRIBUTED_STORAGE_CONFIG:
radosGWStorage:
- RadosGWStorage
- access_key: access_key_here
secret_key: secret_key_here
bucket_name: bucket_name_here
hostname: hostname_here
is_secure: 'true'
port: '443'
storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- default
3.2.1.5. Swift 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
DISTRIBUTED_STORAGE_CONFIG:
swiftStorage:
- SwiftStorage
- swift_user: swift_user_here
swift_password: swift_password_here
swift_container: swift_container_here
auth_url: https://example.org/swift/v1/quay
auth_version: 1
ca_cert_path: /conf/stack/swift.cert"
storage_path: /datastorage/registry
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- swiftStorage
3.2.1.6. NooBaa 관리되지 않는 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에 따라 NooBaa를 관리되지 않는 스토리지 구성으로 배포합니다.
절차
-
스토리지
오브젝트 버킷 클레임으로 이동하여 {product-title} 콘솔에 NooBaa 오브젝트 버킷 클레임 을 생성합니다. - 액세스 키, 버킷 이름, 끝점(hostname) 및 시크릿 키를 포함하여 오브젝트 버킷 클레임 데이터 세부 정보를 검색합니다.
오브젝트 버킷 클레임에 대한 정보를 사용하여
config.yaml구성 파일을 생성합니다.DISTRIBUTED_STORAGE_CONFIG: default: - RHOCSStorage - access_key: WmrXtSGk8B3nABCDEFGH bucket_name: my-noobaa-bucket-claim-8b844191-dc6c-444e-9ea4-87ece0abcdef hostname: s3.openshift-storage.svc.cluster.local is_secure: true port: "443" secret_key: X9P5SDGJtmSuHFCMSLMbdNCMfUABCDEFGH+C5QD storage_path: /datastorage/registry DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] DISTRIBUTED_STORAGE_PREFERENCE: - default
오브젝트 버킷 클레임 구성에 대한 자세한 내용은 오브젝트 버킷 클레임을 참조하십시오.
3.2.2. 관리형 스토리지 링크 복사링크가 클립보드에 복사되었습니다!
Operator에서 Quay의 오브젝트 스토리지를 관리하려면 클러스터에서 ObjectBucketClaim API를 통해 오브젝트 스토리지를 제공할 수 있어야 합니다. Red Hat OpenShift Data Foundation (ODF) Operator를 사용하면 다음과 같은 두 가지 지원 옵션을 사용할 수 있습니다.
로컬 Kubernetes
PersistentVolume스토리지에서 지원하는 Multi-Cloud Object Gateway의 독립 실행형 인스턴스- 고가용성이 아님
- Quay 서브스크립션에 포함
- ODF에 별도의 서브스크립션이 필요하지 않음
스케일 아웃 오브젝트 서비스 및 Ceph를 사용하는 ODF 프로덕션 배포
- 고가용성
- ODF에 대한 별도의 서브스크립션이 필요합니다.
독립 실행형 인스턴스 옵션을 사용하려면 아래에서 계속 읽습니다. ODF의 프로덕션 배포는 공식 문서를 참조하십시오.
오브젝트 스토리지 디스크 공간은 50GiB를 사용하여 Operator에서 자동으로 할당합니다. 이 숫자는 중소 규모의 Red Hat Quay 설치에 사용할 수 있는 스토리지 용량을 나타내지만 사용 사례에는 충분하지 않을 수 있습니다. RHOCS 볼륨의 크기 조정은 현재 Operator에서 처리되지 않습니다. 자세한 내용은 관리 스토리지 크기 조정에 대한 아래 섹션을 참조하십시오.
3.2.2.1. 독립 실행형 오브젝트 게이트웨이 정보 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Quay 서브스크립션의 일부로 사용자는 Red Hat OpenShift Data Foundation Operator (이전의 OpenShift Container Storage Operator라고도 함)의 MCG( Multi-Cloud Object Gateway ) 구성 요소를 사용할 수 있습니다. 이 게이트웨이 구성 요소를 사용하면 Kubernetes PersistentVolume기반 블록 스토리지로 지원하는 Quay에 S3 호환 오브젝트 스토리지 인터페이스를 제공할 수 있습니다. 사용법은 Operator가 관리하는 Quay 배포와 아래에 설명된 대로 MCG 인스턴스의 정확한 사양으로 제한됩니다.
Red Hat Quay는 로컬 파일 시스템 스토리지를 지원하지 않으므로 사용자는 Kubernetes PersistentVolume 스토리지와 함께 게이트웨이를 활용하여 지원되는 배포를 제공할 수 있습니다. PersistentVolume 은 오브젝트 스토리지의 백업 저장소로 게이트웨이 인스턴스에 직접 마운트되며 모든 블록 기반 StorageClass 가 지원됩니다.
PersistentVolume 의 특성상 고가용성 솔루션이 아니며 Red Hat OpenShift Data Foundation(ODF)과 같은 스케일 아웃 스토리지 시스템을 대체하지 않습니다. 게이트웨이의 단일 인스턴스만 실행되고 있습니다. 일정 변경, 업데이트 또는 계획되지 않은 다운타임으로 인해 게이트웨이를 실행 중인 Pod를 사용할 수 없게 되면 연결된 Quay 인스턴스가 일시적으로 저하됩니다.
3.2.2.1.1. 독립 실행형 오브젝트 게이트웨이 생성 링크 복사링크가 클립보드에 복사되었습니다!
ODF (이전 OpenShift Container Storage) Operator를 설치하고 단일 인스턴스 Multi-Cloud Gateway 서비스를 구성하려면 다음 단계를 따르십시오.
-
OpenShift 콘솔을 열고 Operator
OperatorHub를 선택한 다음 OpenShift Data Foundation Operator를 선택합니다. - 설치를 선택합니다. 모든 기본 옵션을 수락하고 다시 설치를 선택합니다.
1분 이내에 Operator는 네임스페이스
openshift-storage를 설치하고 생성합니다.Status열이Succeeded로 표시되면 완료되었는지 확인할 수 있습니다.When the installation of the ODF Operator is complete, you are prompted to create a storage system. Do not follow this instruction. Instead, create NooBaa object storage as outlined the following steps.NooBaa 오브젝트 스토리지를 생성합니다. 다음 YAML을
noobaa.yaml이라는 파일에 저장합니다.apiVersion: noobaa.io/v1alpha1 kind: NooBaa metadata: name: noobaa namespace: openshift-storage spec: dbResources: requests: cpu: '0.1' memory: 1Gi dbType: postgres coreResources: requests: cpu: '0.1' memory: 1Gi그러면 Multi-cloud Object Gateway 의 단일 인스턴스 배포가 생성됩니다.
다음 명령을 사용하여 구성을 적용합니다.
$ oc create -n openshift-storage -f noobaa.yaml noobaa.noobaa.io/noobaa created몇 분 후 MCG 인스턴스가 프로비저닝을 완료했음을 확인할 수 있습니다(
PHASE열이Ready로 설정됨).$ oc get -n openshift-storage noobaas noobaa -w NAME MGMT-ENDPOINTS S3-ENDPOINTS IMAGE PHASE AGE noobaa [https://10.0.32.3:30318] [https://10.0.32.3:31958] registry.redhat.io/ocs4/mcg-core-rhel8@sha256:56624aa7dd4ca178c1887343c7445a9425a841600b1309f6deace37ce6b8678d Ready 3d18h다음으로 게이트웨이에 대한 백업 저장소를 구성합니다. 다음 YAML을
noobaa-pv-backing-store.yaml파일에 저장합니다.noobaa-pv-backing-store.yaml
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: noobaa-pv-backing-store namespace: openshift-storage spec: pvPool: numVolumes: 1 resources: requests: storage: 50Gi1 storageClass: STORAGE-CLASS-NAME2 type: pv-pool다음 명령을 사용하여 구성을 적용합니다.
$ oc create -f noobaa-pv-backing-store.yaml backingstore.noobaa.io/noobaa-pv-backing-store created이렇게 하면 게이트웨이에 대한 백업 저장소 구성이 생성됩니다. Quay의 모든 이미지는 위의 구성으로 생성된
PersistentVolume의 게이트웨이를 통해 오브젝트로 저장됩니다.마지막으로 다음 명령을 실행하여 Operator에서 발행한 모든
ObjectBucketClaim의PersistentVolume백업 저장소를 기본으로 설정합니다.$ oc patch bucketclass noobaa-default-bucket-class --patch '{"spec":{"placementPolicy":{"tiers":[{"backingStores":["noobaa-pv-backing-store"]}]}}}' --type merge -n openshift-storage
이렇게 하면 Red Hat Quay에 대한 Multi-Cloud Object Gateway 인스턴스 설정이 완료됩니다. 이 구성은 Red Hat OpenShift Data Foundation이 설치된 클러스터에서 병렬로 실행할 수 없습니다.