3.8. Red Hat OpenShift Data Foundation의 레지스트리 설정
Red Hat OpenShift Data Foundation 스토리지를 사용하도록 베어 메탈 및 vSphere에 OpenShift 이미지 레지스트리를 구성하려면 OpenShift Data Foundation을 설치한 다음 Ceph 또는 Noobaa를 사용하여 이미지 레지스트리를 구성해야 합니다.
3.8.1. Red Hat OpenShift Data Foundation에서 Ceph RGW 스토리지를 사용하도록 이미지 레지스트리 Operator 구성
Red Hat OpenShift Data Foundation은 OpenShift 이미지 레지스트리에 사용할 수 있는 여러 스토리지 유형을 통합합니다.
- 공유 및 분산 파일 시스템 및 온-프레미스 개체 스토리지인 Ceph
- NooBaa: 멀티클라우드 오브젝트 게이트웨이를 제공
이 문서에서는 Ceph RGW 스토리지를 사용하도록 이미지 레지스트리를 구성하는 절차를 간략하게 설명합니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
oc
CLI를 설치했습니다. - OpenShift Data Foundation Operator 를 설치하여 오브젝트 스토리지 및 Ceph RGW 오브젝트 스토리지를 제공합니다.
프로세스
ocs-storagecluster-ceph-rgw
스토리지 클래스를 사용하여 오브젝트 버킷 클레임을 생성합니다. 예를 들면 다음과 같습니다.cat <<EOF | oc apply -f - apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: rgwbucket namespace: openshift-storage 1 spec: storageClassName: ocs-storagecluster-ceph-rgw generateBucketName: rgwbucket EOF
- 1
- 또는
openshift-image-registry
네임스페이스를 사용할 수 있습니다.
다음 명령을 입력하여 버킷 이름을 가져옵니다.
$ bucket_name=$(oc get obc -n openshift-storage rgwbucket -o jsonpath='{.spec.bucketName}')
다음 명령을 입력하여 AWS 인증 정보를 가져옵니다.
$ AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage rgwbucket -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 --decode)
$ AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage rgwbucket -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}' | base64 --decode)
다음 명령을 입력하여
openshift-image-registry project
에서 새 버킷에 대한 AWS 자격 증명으로image-registry-private-configuration-user
시크릿을 생성합니다.$ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registry
다음 명령을 입력하여
경로
호스트를 가져옵니다.$ route_host=$(oc get route ocs-storagecluster-cephobjectstore -n openshift-storage --template='{{ .spec.host }}')
다음 명령을 입력하여 수신 인증서를 사용하는 구성 맵을 생성합니다.
$ oc extract secret/router-certs-default -n openshift-ingress --confirm
$ oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt -n openshift-config
다음 명령을 입력하여 Ceph RGW 오브젝트 스토리지를 사용하도록 이미지 레지스트리를 구성합니다.
$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=merge
3.8.2. Red Hat OpenShift Data Foundation에서 Noobaa 스토리지를 사용하도록 이미지 레지스트리 Operator 구성
Red Hat OpenShift Data Foundation은 OpenShift 이미지 레지스트리에 사용할 수 있는 여러 스토리지 유형을 통합합니다.
- 공유 및 분산 파일 시스템 및 온-프레미스 개체 스토리지인 Ceph
- NooBaa: 멀티클라우드 오브젝트 게이트웨이를 제공
이 문서에서는 Noobaa 스토리지를 사용하도록 이미지 레지스트리를 구성하는 절차를 간략하게 설명합니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
oc
CLI를 설치했습니다. - OpenShift Data Foundation Operator 를 설치하여 오브젝트 스토리지 및 Noobaa 오브젝트 스토리지를 제공합니다.
프로세스
openshift-storage.noobaa.io
스토리지 클래스를 사용하여 오브젝트 버킷 클레임을 생성합니다. 예를 들면 다음과 같습니다.cat <<EOF | oc apply -f - apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: noobaatest namespace: openshift-storage 1 spec: storageClassName: openshift-storage.noobaa.io generateBucketName: noobaatest EOF
- 1
- 또는
openshift-image-registry
네임스페이스를 사용할 수 있습니다.
다음 명령을 입력하여 버킷 이름을 가져옵니다.
$ bucket_name=$(oc get obc -n openshift-storage noobaatest -o jsonpath='{.spec.bucketName}')
다음 명령을 입력하여 AWS 인증 정보를 가져옵니다.
$ AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_ACCESS_KEY_ID:" | head -n1 | awk '{print $2}' | base64 --decode)
$ AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_SECRET_ACCESS_KEY:" | head -n1 | awk '{print $2}' | base64 --decode)
다음 명령을 입력하여
openshift-image-registry project
에서 새 버킷에 대한 AWS 자격 증명으로image-registry-private-configuration-user
시크릿을 생성합니다.$ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registry
다음 명령을 입력하여 경로 호스트를 가져옵니다.
$ route_host=$(oc get route s3 -n openshift-storage -o=jsonpath='{.spec.host}')
다음 명령을 입력하여 수신 인증서를 사용하는 구성 맵을 생성합니다.
$ oc extract secret/$(oc get ingresscontroller -n openshift-ingress-operator default -o json | jq '.spec.defaultCertificate.name // "router-certs-default"' -r) -n openshift-ingress --confirm
$ oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt -n openshift-config
다음 명령을 입력하여 Nooba 오브젝트 스토리지를 사용하도록 이미지 레지스트리를 구성합니다.
$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=merge
3.8.3. Red Hat OpenShift Data Foundation에서 CephFS 스토리지를 사용하도록 이미지 레지스트리 Operator 구성
Red Hat OpenShift Data Foundation은 OpenShift 이미지 레지스트리에 사용할 수 있는 여러 스토리지 유형을 통합합니다.
- 공유 및 분산 파일 시스템 및 온-프레미스 개체 스토리지인 Ceph
- NooBaa: 멀티클라우드 오브젝트 게이트웨이를 제공
이 문서에서는 CephFS 스토리지를 사용하도록 이미지 레지스트리를 구성하는 절차를 간략하게 설명합니다.
CephFS는 PVC(영구 볼륨 클레임) 스토리지를 사용합니다. Ceph RGW 또는 Noobaa와 같은 다른 옵션을 사용할 수 있는 경우 이미지 레지스트리 스토리지에 PVC를 사용하지 않는 것이 좋습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
oc
CLI를 설치했습니다. - 오브젝트 스토리지 및 CephFS 파일 스토리지를 제공하기 위해 OpenShift Data Foundation Operator 를 설치했습니다.
프로세스
cephfs
스토리지 클래스를 사용할 PVC를 생성합니다. 예를 들면 다음과 같습니다.cat <<EOF | oc apply -f - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: registry-storage-pvc namespace: openshift-image-registry spec: accessModes: - ReadWriteMany resources: requests: storage: 100Gi storageClassName: ocs-storagecluster-cephfs EOF
다음 명령을 입력하여 CephFS 파일 시스템 스토리지를 사용하도록 이미지 레지스트리를 구성합니다.
$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","pvc":{"claim":"registry-storage-pvc"}}}}' --type=merge