3.10.6. 연결이 끊긴 설치를 위한 프라이빗 레지스트리 구성


연결이 끊긴 설치 프로세스를 사용하여 cephadm 을 설치하고 프라이빗 네트워크에 스토리지 클러스터를 부트스트랩할 수 있습니다. 연결이 끊긴 설치는 설치에 프라이빗 레지스트리를 사용합니다. 배포 중에 Red Hat Ceph Storage 노드가 인터넷에 액세스할 수 없는 경우 다음 절차를 사용하십시오.

인증 및 자체 서명된 인증서를 사용하여 보안 프라이빗 레지스트리를 설정하려면 다음 절차를 따르십시오. 인터넷 액세스 및 로컬 클러스터에 대한 액세스 권한이 있는 노드에서 다음 단계를 수행합니다.

참고

프로덕션에 비보안 레지스트리를 사용하는 것은 권장되지 않습니다.

사전 요구 사항

  • 인터넷이 연결된 VM(가상 머신) 또는 서버를 하나 이상 실행합니다.
  • Red Hat Ceph Storage 8.0의 경우 Red Hat Enterprise Linux 9.4, 9.5 또는 9.6은 AppStream에 번들로 번들로 제공됩니다. Red Hat Ceph Storage 8.1의 경우 Red Hat Enterprise Linux 8.1, 9.5 또는 9.6은 AppStream에 번들로 번들로 제공됩니다.
  • registry.redhat.io 에 대한 로그인 액세스
  • 모든 노드에 대한 루트 수준 액세스.

프로세스

  1. 공용 네트워크와 클러스터 노드에 모두 액세스할 수 있는 노드에 로그인합니다.
  2. 노드를 등록하고 메시지가 표시되면 적절한 Red Hat 고객 포털 인증 정보를 입력합니다.

    [root@admin ~]# subscription-manager register

  3. 최신 서브스크립션 데이터를 가져옵니다.

    [root@admin ~]# subscription-manager refresh

  4. Red Hat Ceph Storage에 사용 가능한 모든 서브스크립션을 나열합니다.

    [root@admin ~]# subscription-manager list --available --all --matches="*Ceph*"

    Red Hat Ceph Storage에 사용 가능한 서브스크립션 목록에서 Pool ID를 복사합니다.

  5. 서브스크립션을 연결하여 소프트웨어 인타이틀먼트에 대한 액세스 권한을 얻습니다.

    구문

    subscription-manager attach --pool=POOL_ID

    POOL_ID 를 이전 단계에서 확인한 풀 ID로 바꿉니다.

  6. 기본 소프트웨어 리포지토리를 비활성화하고 서버 및 추가 리포지토리를 활성화합니다.

    Red Hat Enterprise Linux 9

    [root@admin ~]# subscription-manager repos --disable=*
    [root@admin ~]# subscription-manager repos --enable=rhel-9-for-x86_64-baseos-rpms
    [root@admin ~]# subscription-manager repos --enable=rhel-9-for-x86_64-appstream-rpms

  7. podmanhttpd-tools 패키지를 설치합니다.

    예제

    [root@admin ~]# dnf install -y podman httpd-tools

  8. 프라이빗 레지스트리의 폴더를 생성합니다.

    예제

    [root@admin ~]# mkdir -p /opt/registry/{auth,certs,data}

    레지스트리는 /opt/registry 에 저장되고 디렉터리는 레지스트리를 실행하는 컨테이너에 마운트됩니다.

    • auth 디렉터리는 레지스트리가 인증에 사용하는 htpasswd 파일을 저장합니다.
    • certs 디렉터리는 레지스트리가 인증에 사용하는 인증서를 저장합니다.
    • data 디렉터리는 레지스트리 이미지를 저장합니다.
  9. 프라이빗 레지스트리에 액세스하기 위한 인증 정보를 생성합니다.

    구문

    htpasswd -bBc /opt/registry/auth/htpasswd PRIVATE_REGISTRY_USERNAME PRIVATE_REGISTRY_PASSWORD

    • b 옵션은 명령줄의 암호를 제공합니다.
    • B 옵션은 Bcrypt 암호화를 사용하여 암호를 저장합니다.
    • c 옵션은 htpasswd 파일을 생성합니다.
    • PRIVATE_REGISTRY_USERNAME을 프라이빗 레지스트리에 대해 생성할 사용자 이름으로 교체합니다.
    • PRIVATE_REGISTRY_PASSWORD를 프라이빗 레지스트리 사용자 이름에 생성할 암호로 바꿉니다.

      [root@admin ~]# htpasswd -bBc /opt/registry/auth/htpasswd myregistryusername myregistrypassword1

  10. 자체 서명된 인증서를 생성합니다.

    구문

    openssl req -newkey rsa:4096 -nodes -sha256 -keyout /opt/registry/certs/domain.key -x509 -days 365 -out /opt/registry/certs/domain.crt -addext "subjectAltName = DNS:LOCAL_NODE_FQDN"

    • LOCAL_NODE_FQDN을 프라이빗 레지스트리 노드의 정규화된 호스트 이름으로 교체합니다.

      참고

      인증서의 각 옵션에 대한 메시지가 표시됩니다. CN= 값은 노드의 호스트 이름이며 DNS 또는 /etc/hosts 파일에서 확인할 수 있어야 합니다.

      [root@admin ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout /opt/registry/certs/domain.key -x509 -days 365 -out /opt/registry/certs/domain.crt -addext "subjectAltName = DNS:admin.lab.redhat.com"

      참고

      자체 서명된 인증서를 생성할 때 적절한 SAN(주체 대체 이름)을 사용하여 인증서를 생성해야 합니다. 적절한 SAN이 포함되지 않은 인증서에 대해 TLS 확인이 필요한 Podman 명령은 다음 오류를 반환합니다. x509: certificate relies on legacy Common Name field, use SANs or temporarily enable Common Name matching with GODEBUG=x509ignoreCN=0

  11. skopeo가 파일 확장자 .cert인 .cert인 인증서를 찾을 수 있도록 domain.cert에 대한 심볼릭 링크를 만듭니다.

    예제

    [root@admin ~]# ln -s /opt/registry/certs/domain.crt /opt/registry/certs/domain.cert

  12. 프라이빗 레지스트리 노드의 신뢰할 수 있는 목록에 인증서를 추가합니다.

    구문

    cp /opt/registry/certs/domain.crt /etc/pki/ca-trust/source/anchors/
    update-ca-trust
    trust list | grep -i "LOCAL_NODE_FQDN"

    LOCAL_NODE_FQDN을 프라이빗 레지스트리 노드의 FQDN으로 바꿉니다.

    예제

    [root@admin ~]# cp /opt/registry/certs/domain.crt /etc/pki/ca-trust/source/anchors/
    [root@admin ~]# update-ca-trust
    [root@admin ~]# trust list | grep -i "admin.lab.redhat.com"
    
        label: admin.lab.redhat.com

  13. 인증서를 설치하기 위해 프라이빗 레지스트리에 액세스하는 노드에 복사하고 신뢰할 수 있는 목록을 업데이트합니다.

    예제

    [root@admin ~]# scp /opt/registry/certs/domain.crt root@host01:/etc/pki/ca-trust/source/anchors/
    [root@admin ~]# ssh root@host01
    [root@host01 ~]# update-ca-trust
    [root@host01 ~]# trust list | grep -i "admin.lab.redhat.com"
    
        label: admin.lab.redhat.com

  14. 로컬 보안 프라이빗 레지스트리를 시작합니다.

    구문

    podman run --restart=always --name NAME_OF_CONTAINER \
    -p 5000:5000 -v /opt/registry/data:/var/lib/registry:z \
    -v /opt/registry/auth:/auth:z \
    -v /opt/registry/certs:/certs:z \
    -e "REGISTRY_AUTH=htpasswd" \
    -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
    -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
    -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \
    -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \
    -e REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED=true \
    -d registry:2

    NAME_OF_CONTAINER 를 컨테이너에 할당할 이름으로 교체합니다.

    예제

    [root@admin ~]# podman run --restart=always --name myprivateregistry \
    -p 5000:5000 -v /opt/registry/data:/var/lib/registry:z \
    -v /opt/registry/auth:/auth:z \
    -v /opt/registry/certs:/certs:z \
    -e "REGISTRY_AUTH=htpasswd" \
    -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
    -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
    -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \
    -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \
    -e REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED=true \
    -d registry:2

    이는 포트 5000에서 개인 레지스트리를 시작하고 레지스트리를 실행하는 컨테이너에 레지스트리 디렉터리의 볼륨을 마운트합니다.

  15. 로컬 레지스트리 노드에서 registry.redhat.io가 컨테이너 레지스트리 검색 경로에 있는지 확인합니다.

    1. /etc/containers/registries.conf 파일을 편집하려면 이를 열고 registry.redhat.iounqualified-search-registries 목록에 추가합니다.

      unqualified-search-registries = ["registry.redhat.io", "registry.access.redhat.com", "registry.fedoraproject.org", "registry.centos.org", "docker.io"]

  16. Red Hat Customer Portal 인증 정보를 사용하여 registry.redhat.io에 로그인합니다.

    구문

    podman login registry.redhat.io

  17. Red Hat 고객 포털에서 다음 Red Hat Ceph Storage 8 이미지, Prometheus 이미지 및 대시보드 이미지를 프라이빗 레지스트리로 복사합니다.

    Expand
    표 3.2. 모니터링 스택의 사용자 정의 이미지 세부 정보
    스택 구성 요소 모니터링이미지 세부 정보

    Prometheus

    registry.redhat.io/openshift4/ose-prometheus:v4.15

    Grafana

    registry.redhat.io/rhceph/grafana-rhel9:latest

    node-exporter

    registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.15

    AlertManager

    registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.15

    HAProxy

    registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest

    Keepalived

    registry.redhat.io/rhceph/keepalived-rhel9:latest

    SNMP Gateway

    registry.redhat.io/rhceph/snmp-notifier-rhel9:latest

    OAuth2 프록시

    registry.redhat.io/rhceph/oauth2-proxy:v7.6

    구문

    podman run -v /CERTIFICATE_DIRECTORY_PATH:/certs:Z -v /CERTIFICATE_DIRECTORY_PATH/domain.cert:/certs/domain.cert:Z  --rm registry.redhat.io/rhel9/skopeo:8.5-8 skopeo copy  --remove-signatures --src-creds RED_HAT_CUSTOMER_PORTAL_LOGIN:RED_HAT_CUSTOMER_PORTAL_PASSWORD --dest-cert-dir=./certs/ --dest-creds PRIVATE_REGISTRY_USERNAME:PRIVATE_REGISTRY_PASSWORD docker://registry.redhat.io/SRC_IMAGE:SRC_TAG docker://LOCAL_NODE_FQDN:5000/DST_IMAGE:DST_TAG

    • CERTIFICATE_DIRECTORY_PATH를 자체 서명된 인증서의 디렉터리 경로로 바꿉니다.
    • RED_HAT_CUSTOMER_PORTAL_LOGINRED_HAT_CUSTOMER_PORTAL_PASSWORD를 Red Hat Customer Portal 인증 정보로 교체합니다.
    • PRIVATE_REGISTRY_USERNAMEPRIVATE_REGISTRY_PASSWORD를 프라이빗 레지스트리 인증 정보로 교체합니다.
    • SRC_IMAGESRC_TAG를 registry.redhat.io에서 복사할 이미지의 이름 및 태그로 교체합니다.
    • DST_IMAGEDST_TAG를 프라이빗 레지스트리에 복사할 이미지의 이름 및 태그로 바꿉니다.
    • LOCAL_NODE_FQDN을 프라이빗 레지스트리의 FQDN으로 바꿉니다.

      [root@admin ~]#  podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/rhceph/rhceph-8-rhel9:latest docker://admin.lab.redhat.com:5000/rhceph/rhceph-8-rhel9:latest
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/openshift4/ose-prometheus-node-exporter:v4.12 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus-node-exporter:v4.12
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/rhceph/grafana-rhel9:latest docker://admin.lab.redhat.com:5000/rhceph/grafana-rhel9:latest
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/openshift4/ose-prometheus:v4.12 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus:v4.12
      
      [root@admin ~]# podman run -v /opt/registry/certs:/certs:Z -v /opt/registry/certs/domain.cert:/certs/domain.cert:Z --rm registry.redhat.io/rhel9/skopeo skopeo copy --remove-signatures --src-creds myusername:mypassword1 --dest-cert-dir=./certs/ --dest-creds myregistryusername:myregistrypassword1 docker://registry.redhat.io/openshift4/ose-prometheus-alertmanager:v4.12 docker://admin.lab.redhat.com:5000/openshift4/ose-prometheus-alertmanager:v4.12

  18. curl 명령을 사용하여 이미지가 로컬 레지스트리에 있는지 확인합니다.

    구문

    curl -u PRIVATE_REGISTRY_USERNAME:PRIVATE_REGISTRY_PASSWORD https://LOCAL_NODE_FQDN:5000/v2/_catalog

    예제

    [root@admin ~]# curl -u myregistryusername:myregistrypassword1 https://admin.lab.redhat.com:5000/v2/_catalog
    
    {"repositories":["openshift4/ose-prometheus","openshift4/ose-prometheus-alertmanager","openshift4/ose-prometheus-node-exporter","rhceph/rhceph-8-dashboard-rhel9","rhceph/rhceph-8-rhel9"]}

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동