검색

3.7. vSphere의 레지스트리 설정

download PDF

3.7.1. 설치 중 제거된 이미지 레지스트리

공유 가능한 개체 스토리지를 제공하지 않는 플랫폼에서 OpenShift Image Registry Operator는 자체적으로 Removed로 부트스트랩합니다. 이를 통해 openshift-installer가 이러한 플랫폼 유형에서 설치를 완료할 수 있습니다.

설치 후 managementStateRemoved에서 Managed로 전환하도록 Image Registry Operator 구성을 편집해야 합니다. 이 작업이 완료되면 스토리지를 구성해야 합니다.

3.7.2. 이미지 레지스트리의 관리 상태 변경

이미지 레지스트리를 시작하려면 Image Registry Operator 구성의 managementStateRemoved에서 Managed로 변경해야 합니다.

절차

  • managementState Image Registry Operator 구성을 Removed에서 Managed로 변경합니다. 예를 들면 다음과 같습니다.

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'

3.7.3. 이미지 레지스트리 스토리지 구성

기본 스토리지를 제공하지 않는 플랫폼에서는 처음에 Image Registry Operator를 사용할 수 없습니다. 설치한 후에 스토리지를 사용하도록 레지스트리를 구성하여 Registry Operator를 사용 가능하도록 만들어야 합니다.

프로덕션 클러스터에 필요한 영구 볼륨을 구성하는 과정의 지침이 표시됩니다. 해당하는 경우, 프로덕션 환경 외 클러스터에서만 사용할 수 있는 저장 위치로서 빈 디렉터리를 구성하는 과정의 지침이 표시됩니다.

업그레이드 중에 Recreate 롤아웃 전략을 사용하여 이미지 레지스트리의 블록 스토리지 유형 사용을 허용하기 위한 추가 지침이 제공됩니다.

3.7.3.1. VMware vSphere용 레지스트리 스토리지 구성

클러스터 관리자는 설치한 후 스토리지를 사용하도록 레지스트리를 구성해야 합니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있어야 합니다.
  • VMware vSphere에 클러스터가 있어야 합니다.
  • Red Hat OpenShift Data Foundation과 같은 클러스터용 영구 스토리지 프로비저닝.

    중요

    OpenShift Container Platform은 복제본이 하나만 있는 경우 이미지 레지스트리 스토리지에 대한 ReadWriteOnce 액세스를 지원합니다. ReadWriteOnce 액세스에서는 레지스트리가 Recreate 롤아웃 전략을 사용해야 합니다. 두 개 이상의 복제본으로 고 가용성을 지원하는 이미지 레지스트리를 배포하려면 ReadWriteMany 액세스가 필요합니다.

  • "100Gi" 용량이 필요합니다.
중요

테스트 결과, RHEL의 NFS 서버를 핵심 서비스용 스토리지 백엔드로 사용하는 데 문제가 있는 것으로 나타납니다. 여기에는 OpenShift Container Registry and Quay, 스토리지 모니터링을 위한 Prometheus, 로깅 스토리지를 위한 Elasticsearch가 포함됩니다. 따라서 RHEL NFS를 사용하여 핵심 서비스에서 사용하는 PV를 백업하는 것은 권장되지 않습니다.

마켓플레이스의 다른 NFS 구현에는 이러한 문제가 나타나지 않을 수 있습니다. 이러한 OpenShift Container Platform 핵심 구성 요소에 대해 완료된 테스트에 대한 자세한 내용은 개별 NFS 구현 공급업체에 문의하십시오.

프로세스

  1. 스토리지를 사용하도록 레지스트리를 구성하기 위해 configs.imageregistry/cluster 리소스에서 spec.storage.pvc를 변경합니다.

    참고

    공유 스토리지를 사용하는 경우 보안 설정을 검토하여 외부 액세스를 방지합니다.

  2. 레지스트리 pod가 없는지 확인합니다.

    $ oc get pod -n openshift-image-registry -l docker-registry=default

    출력 예

    No resourses found in openshift-image-registry namespace

    참고

    출력에 레지스트리 Pod가 있는 경우 이 절차를 계속할 필요가 없습니다.

  3. 레지스트리 구성을 확인합니다.

    $ oc edit configs.imageregistry.operator.openshift.io

    출력 예

    storage:
      pvc:
        claim: 1

    1
    image-registry-storage 영구 볼륨 클레임 (PVC)을 자동으로 생성할 수 있도록 claim 필드를 비워 둡니다. PVC는 기본 스토리지 클래스를 기반으로 생성됩니다. 그러나 기본 스토리지 클래스는 RADOS 블록 장치(RBD)와 같은 RWO(ReadWriteOnce) 볼륨을 제공할 수 있으므로 두 개 이상의 복제본으로 복제할 때 문제가 발생할 수 있습니다.
  4. clusteroperator 상태를 확인합니다.

    $ oc get clusteroperator image-registry

    출력 예

    NAME             VERSION                              AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    image-registry   4.7                                  True        False         False      6h50m

3.7.3.2. 프로덕션 환경 외 클러스터에서 이미지 레지스트리의 스토리지 구성

이미지 레지스트리 Operator에 대한 스토리지를 구성해야 합니다. 프로덕션 환경 외 클러스터의 경우, 이미지 레지스트리를 빈 디렉터리로 설정할 수 있습니다. 이렇게 하는 경우 레지스트리를 다시 시작하면 모든 이미지가 손실됩니다.

프로세스

  • 이미지 레지스트리 스토리지를 빈 디렉터리로 설정하려면 다음을 수행하십시오.

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'
    주의

    프로덕션 환경 외 클러스터에 대해서만 이 옵션을 구성하십시오.

    Image Registry Operator가 구성 요소를 초기화하기 전에 이 명령을 실행하면 oc patch 명령이 실패하며 다음 오류가 발생합니다.

    Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found

    몇 분 후에 명령을 다시 실행하십시오.

3.7.3.3. VMware vSphere용 블록 레지스트리 스토리지 구성

클러스터 관리자로서 업그레이드 중에 이미지 레지스트리가 vSphere VMDK(Virtual Machine Disk)와 같은 블록 스토리지 유형을 사용할 수 있도록 허용하기 위해 Recreate 롤아웃 전략을 사용할 수 있습니다.

중요

블록 스토리지 볼륨이 지원되지만 프로덕션 클러스터에서 이미지 레지스트리와 함께 사용하는 것은 권장되지 않습니다. 레지스트리가 블록 스토리지에 구성된 설치는 레지스트리가 둘 이상의 복제본을 가질 수 없기 때문에 가용성이 높지 않습니다.

프로세스

  1. 다음 명령을 입력하여 이미지 레지스트리 스토리지를 블록 스토리지 유형으로 설정하고, Recreate 롤아웃 전략을 사용하도록 레지스트리를 패치하고, 복제본 1 개로 실행합니다.

    $ oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'
  2. 블록 스토리지 장치에 PV를 프로비저닝하고 해당 볼륨의 PVC를 생성합니다. 요청된 블록 볼륨은 RWO(ReadWriteOnce) 액세스 모드를 사용합니다.

    1. VMware vSphere PersistentVolumeClaim 개체를 정의하려면 다음 내용이 포함된 pvc.yaml 파일을 생성합니다.

      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: image-registry-storage 1
        namespace: openshift-image-registry 2
      spec:
        accessModes:
        - ReadWriteOnce 3
        resources:
          requests:
            storage: 100Gi 4
      1
      PersistentVolumeClaim 개체를 표시하는 고유한 이름입니다.
      2
      PersistentVolumeClaim 오브젝트의 네임스페이스로 openshift-image-registry입니다.
      3
      영구 볼륨 클레임의 액세스 모드입니다. ReadWriteOnce를 사용하면 단일 노드에서 읽기 및 쓰기 권한으로 볼륨을 마운트할 수 있습니다.
      4
      영구 볼륨 클레임의 크기입니다.
    2. 다음 명령을 입력하여 파일에서 PersistentVolumeClaim 오브젝트를 생성합니다.

      $ oc create -f pvc.yaml -n openshift-image-registry
  3. 올바른 PVC를 참조하도록 레지스트리 구성을 편집하려면 다음 명령을 입력합니다.

    $ oc edit config.imageregistry.operator.openshift.io -o yaml

    출력 예

    storage:
      pvc:
        claim: 1

    1
    사용자 정의 PVC를 생성하면 image-registry-storage PVC의 기본 자동 생성을 위해 claim 필드를 비워 둘 수 있습니다.

올바른 PVC를 참조하도록 레지스트리 스토리지를 구성하는 방법은 vSphere 용 레지스트리 구성을 참조하십시오.

3.7.3.4. 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. 다음 명령을 입력하여 경로 호스트를 가져옵니다.

    $ route_host=$(oc get route ocs-storagecluster-cephobjectstore -n openshift-storage --template='{{ .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. 다음 명령을 입력하여 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.7.3.5. 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/$(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
  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.7.4. 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.7.5. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.