Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

5.5. 언더클라우드를 로컬 레지스트리로 사용

오버클라우드 컨테이너 이미지를 저장하도록 언더클라우드에서 로컬 레지스트리를 구성할 수 있습니다.

director를 사용하여 registry.redhat.io 에서 각 이미지를 가져와서 언더클라우드에서 실행되는 docker-distribution 레지스트리로 각 이미지를 푸시할 수 있습니다. director를 사용하여 오버클라우드 생성 프로세스 중에 노드가 언더클라우드 docker-distribution 레지스트리에서 관련 이미지를 가져옵니다.

이렇게 하면 내부 네트워크 내에 컨테이너 이미지에 대한 네트워크 트래픽이 유지되므로 외부 네트워크 연결을 제한하지 않고 배포 프로세스의 속도를 높일 수 있습니다.

절차

  1. 로컬 언더클라우드 레지스트리의 주소를 찾습니다. 주소는 다음 패턴을 사용합니다.

    <REGISTRY_IP_ADDRESS>:8787

    이전에 undercloud.conf 파일의 local_ip 매개변수로 설정한 언더클라우드의 IP 주소를 사용합니다. 아래 명령의 경우 주소는 192.168.24.1:8787 이라고 합니다.

  2. registry.redhat.io 에 로그인합니다.

    (undercloud) $ docker login registry.redhat.io --username $RH_USER --password $RH_PASSWD
  3. 이미지를 로컬 레지스트리에 업로드하는 템플릿과 해당 이미지를 참조할 환경 파일을 생성합니다.

    (undercloud) $ openstack overcloud container image prepare \
      --namespace=registry.redhat.io/rhosp13 \
      --push-destination=192.168.24.1:8787 \
      --prefix=openstack- \
      --tag-from-label {version}-{release} \
      --output-env-file=/home/stack/templates/overcloud_images.yaml \
      --output-images-file /home/stack/local_registry_images.yaml
    • 옵션 서비스에 대한 환경 파일을 포함하려면 -e 옵션을 사용합니다.
    • 사용자 지정 역할 파일을 포함하려면 -r 옵션을 사용합니다.
    • Ceph Storage를 사용하는 경우 추가 매개변수를 포함하여 Ceph Storage 컨테이너 이미지 위치 --set ceph_namespace,--set ceph_image,--set ceph_tag.
  4. 다음 두 파일이 생성되었는지 확인합니다.

    • local_registry_images.yaml: 원격 소스의 컨테이너 이미지 정보가 포함됩니다. 이 파일을 사용하여 Red Hat Container Registry(registry.redhat.io)에서 언더클라우드로 이미지를 가져옵니다.
    • undercloud의 최종 이미지 위치가 포함된 overcloud_images.yaml. 배포와 함께 이 파일을 포함합니다.
  5. 원격 레지스트리에서 컨테이너 이미지를 가져와서 언더클라우드 레지스트리로 푸시합니다.

    (undercloud) $ openstack overcloud container image upload \
      --config-file  /home/stack/local_registry_images.yaml \
      --verbose

    네트워크 및 언더클라우드 디스크에 따라 필요한 이미지를 가져오는 데 시간이 다소 걸릴 수 있습니다.

    참고

    컨테이너 이미지는 약 10GB의 디스크 공간을 사용합니다.

  6. 이제 이미지가 언더클라우드의 docker-distribution 레지스트리에 저장됩니다. 언더클라우드의 docker-distribution 레지스트리에서 이미지 목록을 보려면 다음 명령을 실행합니다.

    (undercloud) $  curl http://192.168.24.1:8787/v2/_catalog | jq .repositories[]
    참고

    _catalog 리소스 자체는 100개의 이미지만 표시합니다. 더 많은 이미지를 표시하려면 더 많은 수의 이미지를 표시하려면 _catalog 리소스와 함께 ?n=<interger> 쿼리 문자열을 사용합니다.

    (undercloud) $  curl http://192.168.24.1:8787/v2/_catalog?n=150 | jq .repositories[]

    특정 이미지의 태그 목록을 보려면 skopeo 명령을 사용합니다.

    (undercloud) $ curl -s http://192.168.24.1:8787/v2/rhosp13/openstack-keystone/tags/list | jq .tags

    태그된 이미지를 확인하려면 skopeo 명령을 사용합니다.

    (undercloud) $ skopeo inspect --tls-verify=false docker://192.168.24.1:8787/rhosp13/openstack-keystone:13.0-44

레지스트리 구성이 준비되었습니다.