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 스토리지를 사용하도록 Image Registry Operator 구성

Red Hat OpenShift Data Foundation은 OpenShift 이미지 레지스트리에 사용할 수 있는 여러 스토리지 유형을 통합합니다.

  • 공유 및 분산 파일 시스템 및 온-프레미스 오브젝트 스토리지인 Ceph
  • NooBaa, Multicloud Object Gateway 제공

이 문서에서는 Ceph RGW 스토리지를 사용하도록 이미지 레지스트리를 구성하는 절차를 간략하게 설명합니다.

전제 조건

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • oc CLI를 설치했습니다.
  • 오브젝트 스토리지 및 Ceph RGW 오브젝트 스토리지를 제공하기 위해 OpenShift Data Foundation Operator 를 설치했습니다.

절차

  1. 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 네임스페이스를 사용할 수 있습니다.
  2. 다음 명령을 입력하여 버킷 이름을 가져옵니다.

    $ bucket_name=$(oc get obc -n openshift-storage rgwbucket -o jsonpath='{.spec.bucketName}')
  3. 다음 명령을 입력하여 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)
  4. 다음 명령을 입력하여 openshift-image-registry 프로젝트에서 새 버킷의 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
  5. 다음 명령을 입력하여 buckethost 값을 가져옵니다.

    $ route_host=$(oc get objectbucket $bucket_name -n openshift-storage -o=jsonpath='{.spec.endpoint.bucketHost}')
  6. 다음 명령을 입력하여 Ingress 인증서를 사용하는 구성 맵을 생성합니다.

    $ 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
  7. 다음 명령을 입력하여 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 스토리지를 사용하도록 Image Registry Operator 구성

Red Hat OpenShift Data Foundation은 OpenShift 이미지 레지스트리에 사용할 수 있는 여러 스토리지 유형을 통합합니다.

  • 공유 및 분산 파일 시스템 및 온-프레미스 오브젝트 스토리지인 Ceph
  • NooBaa, Multicloud Object Gateway 제공

이 문서에서는 Noobaa 스토리지를 사용하도록 이미지 레지스트리를 구성하는 절차에 대해 간단히 설명합니다.

전제 조건

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • oc CLI를 설치했습니다.
  • 오브젝트 스토리지 및 Noobaa 오브젝트 스토리지를 제공하기 위해 OpenShift Data Foundation Operator 를 설치했습니다.

절차

  1. 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 네임스페이스를 사용할 수 있습니다.
  2. 다음 명령을 입력하여 버킷 이름을 가져옵니다.

    $ bucket_name=$(oc get obc -n openshift-storage noobaatest -o jsonpath='{.spec.bucketName}')
  3. 다음 명령을 입력하여 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)
  4. 다음 명령을 입력하여 openshift-image-registry 프로젝트에서 새 버킷의 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
  5. 다음 명령을 입력하여 경로 호스트를 가져옵니다.

    $ route_host=$(oc get route s3 -n openshift-storage -o=jsonpath='{.spec.host}')
  6. 다음 명령을 입력하여 Ingress 인증서를 사용하는 구성 맵을 생성합니다.

    $ 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
  7. 다음 명령을 입력하여 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 스토리지를 사용하도록 Image Registry Operator 구성

Red Hat OpenShift Data Foundation은 OpenShift 이미지 레지스트리에 사용할 수 있는 여러 스토리지 유형을 통합합니다.

  • 공유 및 분산 파일 시스템 및 온-프레미스 오브젝트 스토리지인 Ceph
  • NooBaa, Multicloud Object Gateway 제공

이 문서에서는 CephFS 스토리지를 사용하도록 이미지 레지스트리를 구성하는 절차에 대해 간단히 설명합니다.

참고

CephFS는 PVC(영구 볼륨 클레임) 스토리지를 사용합니다. Ceph RGW 또는 Noobaa와 같은 다른 옵션이 있는 경우 이미지 레지스트리 스토리지에 PVC를 사용하지 않는 것이 좋습니다.

전제 조건

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
  • oc CLI를 설치했습니다.
  • 오브젝트 스토리지 및 CephFS 파일 스토리지를 제공하기 위해 OpenShift Data Foundation Operator 를 설치했습니다.

절차

  1. 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
  2. 다음 명령을 입력하여 CephFS 파일 시스템 스토리지를 사용하도록 이미지 레지스트리를 구성합니다.

    $ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","pvc":{"claim":"registry-storage-pvc"}}}}' --type=merge

3.8.4. 추가 리소스