3.8.2. Red Hat OpenShift Data Foundation에서 Noobaa 스토리지를 사용하도록 이미지 레지스트리 Operator 구성
Red Hat OpenShift Data Foundation은 OpenShift 이미지 레지스트리에 사용할 수 있는 여러 스토리지 유형을 통합합니다.
- 공유 및 분산 파일 시스템 및 온프레미스 오브젝트 스토리지인 Ceph
- NooBaa: 멀티클라우드 오브젝트 게이트웨이를 제공
이 문서에서는 Noobaa 스토리지를 사용하도록 이미지 레지스트리를 구성하는 절차를 간략하게 설명합니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
ocCLI를 설치했습니다. - 오브젝트 스토리지 및 Noobaa 오브젝트 스토리지를 제공하기 위해 OpenShift Data Foundation Operator 를 설치했습니다.
프로세스
openshift-storage.noobaa.io스토리지 클래스를 사용하여 오브젝트 버킷 클레임을 생성합니다. 예를 들면 다음과 같습니다.cat <<EOF | oc apply -f - apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: noobaatest namespace: openshift-storage1 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