Red Hat Training

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

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

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

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

이렇게 하면 외부 네트워크 연결을 혼잡하지 않고 배포 프로세스를 가속화할 수 있는 내부 네트워크 내에서 컨테이너 이미지의 네트워크 트래픽을 유지합니다.

절차

  1. 로컬 Undercloud 레지스트리의 주소를 찾습니다. 주소는 다음 패턴을 사용합니다.

    <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)에서 언더클라우드로 이미지를 가져옵니다.
    • overcloud_images.yaml - 언더클라우드의 최종 이미지 위치가 포함됩니다. 배포와 함께 이 파일을 포함합니다.
  5. 원격 레지스트리에서 컨테이너 이미지를 가져와서 언더클라우드 레지스트리로 푸시합니다.

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

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

    참고

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

  6. 이미지가 이제 Undercloud의 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

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